数据ETL:使用轻易云将信息写入旺店通WMS

  • 轻易云集成顾问-曾平安

金蝶云星空数据集成到旺店通WMS:调拨出库=>其他出库单-1

在跨系统业务流程中,金蝶云星空与旺店通WMS的数据集成是一项关键任务。本文将分享一个成功的技术案例,通过使用executeBillQuery接口从金蝶云星空抓取数据,并利用WDT_WMS_STOCKOUT_CREATE接口将数据写入旺店通WMS,实现调拨出库到其他出库单的对接。

首先,确保每一笔从金蝶云星空拉取的数据都完整无误,这时需要针对分页和限流问题进行处理。在API调用过程中,合理配置请求参数,以保障各页数据获取的一致性。同时,通过定时任务机制自动触发executeBillQuery接口,稳健地抓取最新库存变化信息,并实时记录日志以便监控整个过程。

其次,在大量数据写入至旺店通WMS时,为提升效率,我们采用批量处理方式。调用WDT_WMS_STOCKOUT_CREATE接口,将预先处理好的多条记录一次性交给目标系统,实现快速、可靠地完成出库单据的生成。此外,还需特别注意两平台之间的数据格式差异,必要时通过自定义映射规则保证字段匹配正确。

最后,为进一步完善整个集成流程设计,对接异常处理和错误重试机制是不可或缺的重要环节。一旦某次API调用失败,通过捕获异常并执行重试策略,可以有效提高系统间通信的稳定性和可靠性。目前实际运行的方案名称为“调拨出库=>其他出库单-1”,已成功应用于多个项目场景中,有效解决了企业在仓储管理上的痛点。

下面,我们将详细解析具体实施步骤及代码示例。 电商OMS与ERP系统接口开发配置

调用金蝶云星空接口executeBillQuery获取并加工数据

在轻易云数据集成平台中,调用源系统接口是数据集成生命周期的第一步。本文将详细探讨如何通过调用金蝶云星空的executeBillQuery接口来获取并加工数据。

接口配置与请求参数

首先,我们需要配置API接口的元数据。根据提供的元数据配置,我们可以看到executeBillQuery接口使用POST方法,并且包含多个请求参数和分页设置。以下是主要的请求参数及其作用:

  • FormId: 业务对象表单Id,必须填写金蝶的表单ID,例如:STK_TransferDirect
  • FieldKeys: 需查询的字段key集合,格式为数组,通过解析器转换为字符串。
  • FilterString: 过滤条件,用于筛选符合条件的数据,例如:FApproveDate>='{{MINUTE_AGO_30|datetime}}' and FSrcStockId.F_JZJ_CheckBox=1
  • StartRow: 开始行索引,用于分页查询。
  • Limit: 最大行数,也是分页参数之一。

请求示例

基于上述配置,我们构建一个请求示例:

{
  "FormId": "STK_TransferDirect",
  "FieldKeys": "FBillEntry_FEntryID,FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID.FNumber,FTransferBizType,FStockOutOrgId.FNumber,FTransferDirect,FNote,FBizType,FSaleOrgId.FNumber,FSettleOrgId.FNumber,FCustID.FNumber,FSUPPLIERID.FNumber,FThirdSrcId,FThirdSrcBillNo,FThirdSystem,FMaterialId.FNumber,FLot.fnumber,FSrcStockId.FNumber,FSrcStockLocId,FDestStockId.FNumber,FDestStockLocId,FQty,FPrice,FAmount,FBomId,FProduceDate,FExpiryDate,FMtoNo,FSrcStockStatusId,FDestStockStatusId,FOwnerId.FNumber,FOwnerOutId.FNumber,FSrcBillTypeId,FSrcSeq,FOrderNo,FNoteEntry,FSrcBillNo,FBFLowId,FConsignPrice,FTaxPrice,FTaxRate,FDestLot.fnumber,FQmEntryId,FConvertEntryId,FSOEntryId,FThirdSrcEntryId,FISFREE",
  "FilterString": "FApproveDate>='{{MINUTE_AGO_30|datetime}}' and FSrcStockId.F_JZJ_CheckBox=1",
  "StartRow": "0",
  "Limit": "100"
}

数据清洗与转换

获取到原始数据后,需要进行清洗和转换,以便后续处理和存储。以下是一些常见的数据清洗与转换操作:

  1. 字段映射与重命名:将原始字段映射到目标系统所需的字段,并进行重命名。例如,将FBillNo映射为目标系统中的OrderNumber
  2. 数据类型转换:确保所有字段的数据类型符合目标系统要求。例如,将日期字符串转换为标准日期格式。
  3. 缺失值处理:处理缺失值或异常值,例如填充默认值或删除不完整记录。

实际案例

假设我们从金蝶云星空获取了一批调拨出库单的数据,部分原始数据如下:

[
  {
    "FBillEntry_FEntryID": "1001",
    "FID": "2001",
    "FBillNo": "D20210901",
    "FDocumentStatus": "C",
    ...
  },
  {
    "FBillEntry_FEntryID": "1002",
    "FID": "2002",
    "FBillNo": "D20210902",
    "FDocumentStatus": "B",
    ...
  }
]

我们需要将这些数据清洗并转换为目标系统所需的格式:

[
  {
    "EntryID": "1001",
    "EntityKey": "2001",
    "OrderNumber": "D20210901",
    "DocumentStatus": "Completed",
    ...
  },
  {
    "EntryID": "1002",
    "EntityKey": "2002",
    "OrderNumber": "D20210902",
    ...
  }
]

在这个过程中,我们进行了字段重命名(如将FBillNo重命名为OrderNumber),并对状态码进行了转换(如将状态码C转换为描述性状态“Completed”)。

总结

通过调用金蝶云星空的executeBillQuery接口,我们能够高效地获取所需的数据,并通过一系列清洗和转换操作,使其符合目标系统的要求。这一步骤是整个数据集成生命周期中的关键环节,为后续的数据处理和写入奠定了坚实基础。 用友BIP接口开发配置

使用轻易云数据集成平台将数据转换并写入旺店通WMSAPI接口

在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并将其转为目标平台能够接收的格式。本文将详细探讨如何使用轻易云数据集成平台,将调拨出库单的数据转换为旺店通WMSAPI接口所能接收的格式,并最终写入目标平台。

元数据配置解析

在进行ETL转换之前,我们需要理解元数据配置。这次我们处理的是调拨出库单,目标平台是旺店通WMS,使用的API接口是WDT_WMS_STOCKOUT_CREATE,请求方法为POST

元数据配置如下:

{
  "api": "WDT_WMS_STOCKOUT_CREATE",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "method": "merge",
    "field": "FBillNo",
    "bodyName": "details",
    "header": ["FBillNo", "FDate", "FSrcStockId_FNumber"],
    "body": ["FMaterialId_FNumber", "FBillEntry_FEntryID", "FQty", "FLot", "FProduceDate", "FExpiryDate"]
  },
  "request": [
    {
      "label": "出库单信息",
      "field": "deliveryOrder",
      "type": "object",
      "children": [
        {"parent": "deliveryOrder", "label": "出库单号", "field": "deliveryOrderCode", "type": "string", 
"value":"{FBillNo}"},
        {"parent": "deliveryOrder", 
"label":"出库单类型","field":"orderType","type":"string","value":"DBCK"},
        {"parent":"deliveryOrder","label":"出库单创建时间","field":"createTime","type":"string","value":"{FDate}"},
        {"parent":"deliveryOrder","label":"仓库编码","field":"warehouseCode","type":"string","value":"{FSrcStockId_FNumber}"}
      ]
    },
    {
      "label": 
"单据信息",
      "
field
":
"orderLines
",
      "
type
":
"array
",
      "
value
":
"
details
",
      "
children
":[
        {
          "
parent
":
"
orderLines
",
          "
label
":
"
orderLine
",
          "
field
":
"
orderLine
",
          "
type
":
"
object
",
          "
children
":[
            {
              "
parent
":
"
orderLine
",
              "
label
":
"
商家编码
",
              "
field
":
"
itemCode
",
              "
type
":
"
string
",
              "
value
":
"
{{details.FMaterialId_FNumber}}
"
            },
            {
              "
parent
":
"
orderLine
",
              "
label
":
"
单据行号
",
              "
field
":
"
orderLineNo
",
              "
type
":
"
string
,
"value":"{{details.FBillEntry_FEntryID}}"},
            {"parent":"orderLine","label":"应发商品数量","field":"planQty","type":"string","value":"{{details.FQty}}"},
            {"parent":"orderLines","label":"批次","field":"batchCode","type":"string","value":"{{details.FLot}}"},
            {"parent":"orderLines","label":"生产日期","field":"productDate","type":"string","value":"{{details.FProduceDate|date}}"},
            {"parent":"orderLines","label":"过期日期","field":"expireDate","type":"string","value":"{{details.FExpiryDate|date}}"}
          ]
        }
      ]
    }
  ]
}

数据转换与写入过程

  1. 提取源数据:首先,我们从源系统提取调拨出库单的数据,这些数据包含了出库单号、创建时间、仓库编码等信息,以及具体商品的信息如商家编码、数量、批次等。

  2. 转换数据格式:根据元数据配置,将提取到的数据字段映射到目标系统所需的字段。例如:

    • 出库单号(FBillNo)映射为deliveryOrderCode
    • 创建时间(FDate)映射为createTime
    • 仓库编码(FSrcStockId_FNumber)映射为warehouseCode
    • 商品信息中的商家编码(FMaterialId_FNumber)映射为itemCode
  3. 构建请求体:按照元数据配置中的结构,构建符合旺店通WMSAPI接口要求的请求体。具体示例如下:

    {
    deliveryOrder: {
    deliveryOrderCode: '123456',
    orderType: 'DBCK',
    createTime: '2023-10-01T12:00:00Z',
    warehouseCode: 'WH001'
    },
    orderLines: [
    {
      orderLine: {
        itemCode: 'ITEM001',
        orderLineNo: '1',
        planQty: '100',
        batchCode: 'BATCH001',
        productDate: '2023-09-01',
        expireDate: '2024-09-01'
      }
    }
    ]
    }
  4. 发送请求:使用HTTP POST方法,将构建好的请求体发送到旺店通WMSAPI接口。确保请求成功后,记录响应结果以便后续追踪和问题排查。

技术要点

  • 字段映射:确保每个字段都正确映射到目标系统所需的字段,避免因字段错误导致的数据传输失败。
  • 日期格式处理:注意日期格式的转换,例如生产日期和过期日期需要按照目标系统要求进行格式化。
  • 批量处理:对于大量数据,可以考虑批量处理以提高效率,但需确保每个批次的数据完整性和一致性。

通过上述步骤,我们可以高效地将源平台的数据转换并写入到旺店通WMSAPI接口中,实现不同系统间的数据无缝对接。这不仅提升了业务流程的自动化程度,还确保了数据的一致性和准确性。 打通金蝶云星空数据接口

更多系统对接方案