轻易云平台ETL:旺店通采购退货单到用友BIP采购入库单的转换

  • 轻易云集成顾问-吕修远

旺店通·企业奇门数据集成到用友BIP案例分享:采购退货单=>采购入库单(下推)-p

在本文中,我们将深入探讨如何通过轻易云数据集成平台,将旺店通·企业奇门的数据高效地对接到用友BIP系统,实现采购退货单至采购入库单的自动化下推。我们主要专注于处理大量数据的快速写入、接口分页及限流问题,以及异常处理和错误重试机制等技术细节。

为了实现这个数据集成方案,我们首先需要调用旺店通·企业奇门提供的API wdt.stockout.order.query.return 获取商品退货信息,然后通过用友BIP API /yonbip/scm/purinrecord/mergeSourceData/save 将这些数据批量写入到用友BIP中。在这一过程中,确保不漏单是至关重要的一环。我们采用定时抓取机制,可靠地从旺店通·企业奇门接口获取最新的数据,并实时监控和日志记录整个处理过程,以及时发现并解决潜在的问题。

由于旺店通·企业奇门与用友BIP之间存在一定的数据格式差异,因此我们还需进行必要的数据映射和转换。此外,为了提高系统性能和响应速度,在处理大规模数据时,我们会考虑分页抓取以及限流控制,避免因一次性请求过多导致接口超时或失败。

下面将详细介绍该案例实际运行中的具体配置方案与技术实现方法,包括接口调用、数据转换、异常处理等关键环节,以供参考。 金蝶与MES系统接口开发配置

使用轻易云数据集成平台调用旺店通·企业奇门接口获取并加工数据

在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockout.order.query.return来获取并加工采购退货单数据。

接口调用配置

首先,我们需要配置接口的元数据。以下是接口wdt.stockout.order.query.return的元数据配置:

{
  "api": "wdt.stockout.order.query.return",
  "method": "POST",
  "number": "order_no",
  "id": "stockout_id",
  "pagination": {
    "pageSize": 50
  },
  "idCheck": true,
  "request": [
    {
      "field": "start_time",
      "label": "开始时间",
      "type": "string",
      "value": "{{LAST_SYNC_TIME|datetime}}"
    },
    {
      "field": "end_time",
      "label": "结束时间",
      "type": "string",
      "describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss",
      "value": "{{CURRENT_TIME|datetime}}"
    },
    {
      "field": "warehouse_no",
      "label": "仓库编号",
      "type": "string"
    },
    {
      "field": "status",
      "label": "出库单状态",
      "type": "string",
      "describe":"出库单状态5:已取消,50:待审核,55:已审核,95:已发货,110:已完成(默认查已发货已完成单据)"
    },
    {
      "field":"page_no",
      "label":"页号",
      "type":"string",
      "value":"{PAGINATION_START_PAGE}"
    },
    {
      "field":"page_size",
      "label":"分页大小",
      "type":"string",
      “describe”:”每页返回的数据条数,输入值范围1~30,不传本参数,输入值默认为30,”,
      “value”:”{PAGINATION_PAGE_SIZE}”
    },
    {
       “field”:”src_order_no”,
       “label”:”上层单据编号”,
       “type”:”string”
     }
  ]
}

参数详解

  • start_timeend_time: 用于定义查询的时间范围。start_time通常设置为上次同步的时间点,而end_time则为当前时间,以确保获取到最新的数据。
  • warehouse_no: 指定仓库编号,用于过滤特定仓库的数据。
  • status: 出库单状态,可以根据需求过滤不同状态的出库单,例如已发货、已完成等。
  • page_nopage_size: 分页参数,用于控制每次请求返回的数据量和分页位置。

数据请求与清洗

在配置好元数据后,通过轻易云平台发起POST请求,从旺店通·企业奇门接口获取原始数据。以下是一个示例请求体:

{
  “start_time”: “2023-09-01 00:00:00”,
  “end_time”: “2023-09-30 23:59:59”,
  “warehouse_no”: “WH001”,
  “status”: “95,110”,
  “page_no”: “1”,
  “page_size”: “50”
}

该请求将返回指定时间范围内、特定仓库中、状态为“已发货”和“已完成”的采购退货单。

数据转换与写入

获取到原始数据后,需要对其进行清洗和转换,以便后续处理。例如,将日期格式统一、字段名称标准化等。这一步骤可以通过轻易云平台提供的可视化工具实现,无需编写复杂代码。

清洗后的数据可以直接写入目标系统,如ERP或数据库中。以下是一个示例转换规则:

{
   “order_id”: ”stockout_id”,
   ”order_number”: ”order_no”,
   ”warehouse_code”: ”warehouse_no”,
   ”status_code”: ”status”
}

通过上述规则,可以将原始字段映射到目标系统所需的字段格式。

实时监控与调试

轻易云平台提供实时监控功能,可以随时查看数据流动和处理状态。一旦出现异常,可以快速定位问题并进行调试。例如,如果某个字段的数据类型不匹配,可以在监控界面中查看详细错误信息,并及时修正。

综上所述,通过轻易云数据集成平台,我们能够高效地调用旺店通·企业奇门接口,获取并加工采购退货单数据,为后续的数据处理和业务决策提供可靠支持。 打通钉钉数据接口

轻易云数据集成平台ETL转换:采购退货单到采购入库单

在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台用友BIP API接口所能够接收的格式,最终写入目标平台。本文将详细探讨如何通过轻易云数据集成平台配置元数据,实现采购退货单到采购入库单的转换和写入。

接口配置与请求参数

为了将采购退货单的数据转换并写入到用友BIP系统,我们需要调用/yonbip/scm/purinrecord/mergeSourceData/save API接口。该接口支持POST方法,并且需要确保请求的幂等性。以下是具体的请求参数配置:

  1. resubmitCheckKey

    • 字段类型: string
    • 描述: 保证请求的幂等性,该值由客户端生成,并且必须是全局唯一的长度不能超过32位。
    • 示例值: {order_no}_1
  2. mergeSourceData

    • 字段类型: string
    • 描述: 固定值传入true。
    • 示例值: true
  3. needCalcLines

    • 字段类型: string
    • 描述: 表体行计算标识,固定值传入true。
    • 示例值: true
  4. calcLinesKey

    • 字段类型: string
    • 描述: 表体行计算依据,固定值传入oriTaxUnitPrice
    • 示例值: oriTaxUnitPrice
  5. code

    • 字段类型: string
    • 描述: 单据编号,以系统编码规则配置为准。
    • 示例值: {order_no}
  6. vouchdate

    • 字段类型: string
    • 描述: 单据日期,格式为YYYYMMDD。
    • 示例值: {{consign_time|date}}
  7. bustype

    • 字段类型: string
    • 描述: 交易类型id或交易类型code。
    • 示例值: A20003
  8. warehouse

    • 字段类型: string
    • 描述: 仓库id或仓库code。
    • 示例值: {warehouse_no}
  9. memo

    • 字段类型: string
    • 描述: 备注信息。
    • 示例值: {remark}
  10. _status

    • 字段类型: string
    • 描述: 操作标识,新增时传入Insert。
    • 示例值: Insert

子表配置

对于采购入库单子表(purInRecords),我们需要配置以下字段:

  1. makeRuleCode

    • 字段类型:string
    • 描述:生单规则编码,固定值为st_purchaseorder_return
    • 示例值:st_purchaseorder_return
  2. 其他子表字段包括:

    [
        {
            "field": "sourceid",
            "label": "上游单据主表id",
            "type": "string",
            "value": "_mongoQuery 39bc45c8-c417-37df-8f20-d136f76b1a7a findField=content.new_id where={\"content.code\":{\"$eq\":\"{pr_api_outer_no}\"},\"content.product_cCode\":{\"$eq\":\"{{details_list.goods_no}}\"}}"
        },
        {
            "field": "sourceautoid",
            "label": "上游单据子表id",
            "type": "string",
            "value": "_mongoQuery 39bc45c8-c417-37df-8f20-d136f76b1a7a findField=content.new_purchaseOrders_id where={\"content.code\":{\"$eq\":\"{pr_api_outer_no}\"},\"content.product_cCode\":{\"$eq\":\"{{details_list.goods_no}}\"}}"
        },
        {
            "field": "qty",
            "label": "数量",
            "type": "string",
            "describe": "默认上游带入,若传入数量请确保表体行计算标识needCalcLines=true,并确认calcLinesKey是否符合实际业务场景。",
            "value": "_function {{details_list.goods_count}}*(-1)"
        },
        {
            "field": "oriUnitPrice",
            "label": "无税单价",
            "type": "string",
            "describe": "仅在表头参数表体行计算标识needCalcLines=true,且calcLinesKey指定当前字段为计算依据时生效。",
            "value": "{{details_list.sell_price}}"
        },
        {
            "field": "oriTaxUnitPrice",
            "label": "含税单价",
            "type": "string",
            "describe": "",
            // 使用MongoDB查询获取含税单价信息
            // 示例代码中省略了具体实现细节,请根据实际情况补充完整
        },
        {
            // 其他必要的子表字段配置...
        }
    ]

实现步骤

  1. 配置API接口及其请求参数,将上述元数据配置填充至轻易云数据集成平台中。
  2. 确保所有必需的参数均已正确映射并验证其有效性。
  3. 执行ETL过程,通过API接口将转换后的数据写入用友BIP系统。

通过以上步骤,我们能够实现从采购退货单到采购入库单的数据转换和写入。这不仅提高了数据处理效率,还保证了数据的一致性和准确性。 钉钉与MES系统接口开发配置

更多系统对接方案