轻松实现调拨单数据从旺店通到金蝶云的ETL转换

  • 轻易云集成顾问-林峰

案例分享:调拨单同步——集成旺店通·企业奇门到金蝶云星空

在本技术案例中,我们将探讨如何实现旺店通·企业奇门的数据无缝集成到金蝶云星空,具体以"调拨单同步"为核心任务。通过灵活运用 wd.stock.transfer.query 和 batchSave API 接口,高效捕捉和传输数据,同时解决数据格式差异、分页限流问题及确保可靠性。

在实施过程中,我们专注于以下关键环节:

首先,通过调用 旺店通·企业奇门的 wdt.stock.transfer.query 接口,定时抓取最新的调拨单数据,并处理其分页与限流问题,保证接口调用过程中的高效率和稳定性。此外,为了避免漏单情况发生,在每次获取新数据后都会进行严格的数据完整性校验。

下一步是批量写入这些抓取的数据至 金蝶云星空 的 batchSave 接口。在这个过程中,需要特别关注两者之间的数据格式差异,并进行必要的转换和映射,以确保提交至金蝶系统的数据能够被正确解析和应用。

为了进一步提高系统对接的健壮性,我们还实现了完善的异常处理与错误重试机制。当出现意外情况导致接收或发送失败时,这些机制可以迅速响应并恢复操作,从而最大程度上减少由于不可控因素引发的数据丢失或重复问题。同时,对整个数据处理流程进行了实时监控与日志记录,实现全透明可视化追踪,有助于及时发现并解决潜在问题。

总之,此案例展示了一套从提取、转换到加载的一站式解决方案,不仅提高了业务操作效率,还确保了高质量、高可靠性的跨平台数据互联,为类似需求提供了一个可借鉴的重要示范。 金蝶与外部系统打通接口

调用旺店通·企业奇门接口wdt.stock.transfer.query获取并加工数据

在数据集成的生命周期中,调用源系统接口获取数据是至关重要的第一步。本文将深入探讨如何通过轻易云数据集成平台配置元数据,调用旺店通·企业奇门接口wdt.stock.transfer.query,并对获取的数据进行初步加工处理。

接口调用配置

首先,我们需要配置调用wdt.stock.transfer.query接口的元数据。该接口采用POST请求方式,主要用于查询调拨单信息。以下是具体的元数据配置:

{
  "api": "wdt.stock.transfer.query",
  "method": "POST",
  "number": "transfer_no",
  "id": "transfer_id",
  "pagination": {
    "pageSize": 100
  },
  "idCheck": true,
  "request": [
    {
      "field": "start_time",
      "label": "开始时间",
      "type": "datetime",
      "value": "{{LAST_SYNC_TIME|datetime}}"
    },
    {
      "field": "end_time",
      "label": "结束时间",
      "type": "datetime",
      "value": "{{CURRENT_TIME|datetime}}"
    },
    {
      "field": "from_warehouse_no",
      "label": "源仓库",
      "type": "string"
    },
    {
      "field": "to_warehouse_no",
      "label": "目标仓库",
      "type": "string"
    },
    {
      "field": "status",
      "label": "调拨单状态",
      "type": "string"
    }
  ],
  ...
}

请求参数解析

  1. 时间参数

    • start_timeend_time 用于指定查询的时间范围,分别对应上次同步时间和当前时间。这两个参数确保我们只获取到自上次同步以来的新数据。
    • 使用模板变量 {{LAST_SYNC_TIME|datetime}}{{CURRENT_TIME|datetime}} 动态生成时间值。
  2. 仓库参数

    • from_warehouse_noto_warehouse_no 分别表示源仓库和目标仓库编号,用于过滤特定仓库之间的调拨单。
  3. 状态参数

    • status 用于指定调拨单的状态,例如“已完成”、“进行中”等,以便根据业务需求筛选不同状态的调拨单。

分页处理

由于可能存在大量数据,我们需要进行分页处理。分页参数包括:

  • page_size: 每页返回的数据条数,默认设置为100。
  • page_no: 当前页号,从1开始递增。

这些参数确保我们能够逐页获取所有符合条件的数据,而不会遗漏任何一条记录。

{
  ...
  ,"otherRequest":[
    {"field":"page_size","label":"分页大小","type":"string","value":"{PAGINATION_PAGE_SIZE}"},
    {"field":"page_no","label":"页号","type":"string","value":"{PAGINATION_START_PAGE}"}
  ]
}

数据清洗与转换

在成功获取到调拨单数据后,需要对其进行初步清洗和转换,以便后续处理和写入目标系统。常见的数据清洗操作包括:

  1. 字段映射:将源系统中的字段名映射为目标系统中的字段名。例如,将transfer_no映射为目标系统中的订单编号字段。
  2. 格式转换:将日期、金额等字段转换为目标系统所需的格式。例如,将日期字符串转换为标准的ISO日期格式。
  3. 数据过滤:根据业务规则过滤掉不需要的数据。例如,只保留状态为“已完成”的调拨单。

实时监控与错误处理

在整个过程中,实时监控和错误处理也是不可或缺的一部分。轻易云平台提供了实时监控功能,可以随时查看数据流动和处理状态。一旦出现错误,可以通过日志和告警机制及时发现并解决问题。

通过上述步骤,我们可以高效地调用旺店通·企业奇门接口获取调拨单数据,并对其进行初步加工,为后续的数据转换与写入做好准备。这不仅提升了业务透明度和效率,也确保了数据集成过程的可靠性和准确性。 如何对接金蝶云星空API接口

使用轻易云数据集成平台实现调拨单同步到金蝶云星空的ETL转换

在数据集成生命周期的第二步,我们将已经集成的源平台数据进行ETL转换,转为目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。以下是具体的技术实现细节。

API接口配置

根据元数据配置,我们需要调用金蝶云星空的batchSave接口,使用POST方法提交数据。该接口要求的数据格式和字段如下:

  • FBillNo: 单据编号,对应源数据中的transfer_no
  • FBillTypeID: 单据类型,固定值ZJDB01_SYS
  • FBizType: 业务类型,固定值NORMAL
  • FTransferDirect: 调拨方向,固定值GENERAL
  • FTransferBizType: 调拨类型,固定值InnerOrgTransfer
  • FStockOutOrgId: 调出库存组织,对应固定值100
  • FOwnerOutIdHead: 调出货主,对应固定值100
  • FStockOrgId: 调入库存组织,对应固定值100
  • FDate: 日期,对应源数据中的created
  • FNote: 备注,对应源数据中的remark

明细信息(FBillEntry)

明细信息是一个数组,每个元素包含以下字段:

  • FMaterialId: 物料编码,对应源数据中的details_list.goods_no
  • FCMKBarCode: 零售条形码,无需转换,直接从源数据获取。
  • FQty: 调拨数量,对应源数据中的details_list.num
  • FLot: 调出批号,对应源数据中的details_list.batch_no
  • FSrcStockId: 调出仓库,对应源数据中的from_warehouse_no
  • FDestStockId: 调入仓库,对应源数据中的to_warehouse_no
  • FNoteEntry: 备注,对应源数据中的 details_list.remark.
  • FISFREE: 赠品,无需转换,直接从源数据获取。

其他请求参数

除了上述字段外,还需要配置一些其他请求参数:

  • FormId: 业务对象表单Id,固定值为 STK_TransferDirect.
  • IsAutoSubmitAndAudit: 提交并审核,布尔值为 true.
  • IsVerifyBaseDataField: 验证基础资料,布尔值为 true.
  • Operation: 执行的操作,固定值为 Save.

数据清洗与转换

在进行ETL转换时,需要特别注意以下几点:

  1. 字段映射:确保每个字段都正确映射到目标平台所需的字段。例如,将 transfer_no 映射到 FBillNo, 将 created 映射到 FDate.
  2. 数据类型:确保每个字段的数据类型符合目标平台的要求。例如,将日期字段格式化为字符串类型,将数值字段保持为字符串格式等。
  3. 固定值填充:对于某些字段,如 FBillTypeID, FBizType, 等,需要填充预定义的固定值。

实际案例

假设我们有以下源平台的数据:

{
    "transfer_no": "TB20231001",
    "created": "2023-10-01",
    "remark": "月度调拨",
    "details_list": [
        {
            "goods_no": "P001",
            "num": "10",
            "batch_no": "B001",
            "from_warehouse_no": "WH001",
            "to_warehouse_no": "WH002",
            "remark": ""
        },
        {
            "goods_no": "P002",
            "num": "20",
            "batch_no": "B002",
            "from_warehouse_no": "WH001",
            "to_warehouse_no": "WH003",
            "remark": ""
        }
    ]
}

经过ETL转换后,应生成如下符合金蝶云星空API接口要求的数据格式:

{
    "FormId": "STK_TransferDirect",
    "IsAutoSubmitAndAudit": true,
    "IsVerifyBaseDataField": true,
    "Operation": {
        "rowsKey":"array",
        rows:[
          {
              FBillNo:"TB20231001", 
              FBillTypeID:"ZJDB01_SYS", 
              FBizType:"NORMAL", 
              FTransferDirect:"GENERAL", 
              FTransferBizType:"InnerOrgTransfer", 
              FStockOutOrgId:"100", 
              FOwnerOutIdHead:"100", 
              FStockOrgId:"100", 
              FDate:"2023-10-01", 
              FNote:"月度调拨", 
              FBillEntry:[
                  {
                      FMaterialId:"P001", 
                      FCMKBarCode:null, 
                      FQty:"10", 
                      FLot:"B001", 
                      FSrcStockId:"WH001", 
                      FDestStockId:"WH002", 
                      FNoteEntry:null, 
                      FISFREE:null
                  },
                  {
                      FMaterialId:"P002", 
                      FCMKBarCode:null, 
                      FQty:"20", 
                      FLot:"B002", 
                      FSrcStockId:"WH001", 
                      FDestStockId:"WH003", 
                      FNoteEntry:null, 
                      FISFREE:null
                  }
              ]
          }
      ]
    }
}

通过轻易云的数据集成平台,我们可以轻松实现上述ETL转换过程,并将处理后的数据通过API接口写入金蝶云星空系统。这不仅提高了业务流程的自动化程度,也确保了不同系统之间的数据一致性和准确性。 打通用友BIP数据接口

更多系统对接方案