从火鸡仓到金蝶云星辰:跨系统数据转换与同步实操

  • 轻易云集成顾问-谢楷斌

销售出库-火鸡仓:从旺店通·企业奇门到金蝶云星辰V2的数据集成案例分享

在这个技术案例中,我们将深入探讨如何通过高效的技术手段,将旺店通·企业奇门系统中的销售出库数据成功集成到金蝶云星辰V2平台。此方案名为“销售出库-火鸡仓”,主要聚焦于实现准确无误的数据传递和处理,确保各环节的顺畅对接。

首先,我们需要解决的是如何可靠地调用wdt.stockout.order.query.trade接口,从旺店通·企业奇门系统中抓取销售出库数据。这涉及批量获取、分页处理及限流控制等多项技术挑战,为了保证不漏单且高效运行,需要采用定时任务以及异常重试机制。在这一过程中,自定义的数据转换逻辑至关重要,以适应不同系统间的数据格式差异,实现数据的一致性。

随后,是将获取到的大量订单数据写入到金蝶云星辰V2的API接口 /jdy/v2/scm/sal_out_bound 中,这要求我们具备强大的数据写入能力。同时,还需借助轻易云提供的集中监控和告警功能,对整个数据流动与状态进行实时跟踪,及时发现并处理潜在问题,以提升整体作业效率。

此外,在实际操作中,通过可视化的数据流设计工具,不仅能使复杂的集成流程更容易理解管理,还能有效优化配置资源,提高业务透明度。长远来看,此方案不仅实现了当前需求,更为后续扩展及调整提供了坚实基础。 数据集成平台API接口配置

调用源系统旺店通·企业奇门接口wdt.stockout.order.query.trade获取并加工数据

在数据集成的生命周期中,第一步是调用源系统接口以获取原始数据。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockout.order.query.trade来获取销售出库数据,并进行初步的数据清洗和加工。

接口配置与请求参数

首先,我们需要配置接口的元数据,以确保能够正确地调用和处理数据。以下是元数据配置的关键部分:

{
  "api": "wdt.stockout.order.query.trade",
  "effect": "QUERY",
  "method": "POST",
  "number": "order_no",
  "id": "stockout_id",
  "condition": [
    [{"field": "status", "logic": "eq", "value": "105"}],
    [{"field": "status", "logic": "eq", "value": "95"}],
    [{"field": "status", "logic": "eq", "value": "110"}]
  ],
  ...
}

该配置表明我们将使用POST方法调用wdt.stockout.order.query.trade接口,查询条件包括状态为105(部分打款)、95(已发货)和110(已完成)的订单。

请求参数详解

为了实现增量获取,我们需要设置开始时间和结束时间,这两个参数分别对应上次同步时间和当前时间:

{
  "field": "start_time",
  "label": "开始时间",
  "type": "datetime",
  "describe": "增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
  "value": "{{LAST_SYNC_TIME|datetime}}"
},
{
  "field": "end_time",
  "label": "结束时间",
  "type": "datetime",
  ...
}

此外,我们还需要指定其他关键参数,如状态、仓库编号等:

{
  ...
  {
    "field": "status",
    ...
    {"value":"95,105,110,113"}
  },
  {
    ...
    {"field":"warehouse_no","label":"仓库编号","type":"string","describe":"代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置),用于获取指定仓库单据数据信息(不支持一次推送多个仓库编号)","value":"WH2024052601"}
  }
}

这些参数确保我们能够准确地过滤出所需的数据。

数据请求与分页处理

由于可能存在大量数据,我们需要实现分页处理。分页参数包括每页返回的数据条数page_size和页号page_no

{
  ...
  {
    ...
    {"field":"page_size","label":"分页大小","type":"string","describe":"每页返回的数据条数,输入值范围1~100,不传本参数,输入值默认为40,使用举例单击这里","value":"{PAGINATION_PAGE_SIZE}"}
  },
  {
    ...
    {"field":"page_no","label":"页号","type":"string","describe":"不传值默认从0页开始","value":"{PAGINATION_START_PAGE}"}
  }
}

通过设置这两个参数,我们可以逐页请求并处理数据,确保不会遗漏任何记录。

数据清洗与加工

在获取到原始数据后,需要进行初步的清洗和加工。轻易云平台提供了自动填充响应功能autoFillResponse: true,这使得我们能够快速将API响应映射到目标字段中。

例如,对于订单编号和出库单号,可以直接从响应中提取并保存:

{
  ...
  {"name":"order_no"},
  {"idCheck":true},
}

此外,还可以根据业务需求对特定字段进行转换或格式化,例如日期格式转换、状态码映射等。

实时监控与错误处理

在整个过程中,通过轻易云平台的实时监控功能,可以随时查看数据流动和处理状态。如果出现错误,可以快速定位并解决问题。例如,如果某个请求失败,可以根据错误日志重新发送请求或调整参数。

通过上述步骤,我们成功地调用了旺店通·企业奇门接口获取销售出库数据,并进行了初步的数据清洗和加工,为后续的数据转换与写入奠定了基础。 打通用友BIP数据接口

将源平台数据转换为金蝶云星辰V2API接口格式并写入目标平台

在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL转换,使其符合金蝶云星辰V2API接口的格式,并最终写入目标平台。本文将详细探讨如何利用轻易云数据集成平台进行这一过程。

元数据配置解析

首先,我们需要理解元数据配置中的各个字段及其含义。以下是一个典型的元数据配置示例:

{
  "api": "/jdy/v2/scm/sal_out_bound",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "bill_source",
      "label": "单据来源,固定传入ISV",
      "type": "string",
      "describe": "单据来源,固定传入APP",
      "value": "ISV"
    },
    {
      "field": "bill_date",
      "label": "出库日期,格式:2019-01-01",
      "type": "datetime",
      "describe": "出库日期,格式:2019-01-01",
      "value": "{consign_time}"
    },
    {
      "field": "bill_no",
      ...
    }
  ]
}

数据请求与清洗

在ETL过程中,首先要确保从源系统获取的数据是干净且结构化的。假设我们已经完成了数据请求和清洗步骤,接下来我们将重点放在数据转换和写入阶段。

数据转换

为了使源平台的数据符合金蝶云星辰V2API接口的要求,我们需要进行以下几步操作:

  1. 字段映射

    • bill_source 固定传入值 ISV
    • bill_date{consign_time} 转换为目标格式。
    • bill_no 对应 {order_no}
    • customer_number 对应 {shop_no}
  2. 嵌套对象处理

    • custom_field 包含两个子字段:
      • custom_field__4__2obgp309axx5_number 对应 {shop_no}
      • custom_field__1__3trygs3uh415 对应 {src_trade_no}
  3. 数组处理

    • material_entity 是一个数组,每个元素包含多个子字段:
      • material_number 对应 {{details_list.goods_no}}
      • stock_number 对应 {warehouse_no}
      • qty 对应 {{details_list.goods_count}}
      • unit_id 使用 _mongoQuery 查询获取。
      • tax_price 使用 _function round({{details_list.total_amount}}/{{details_list.goods_count}},6) 计算得出。

数据写入

完成数据转换后,我们使用HTTP POST方法将数据写入金蝶云星辰V2API接口。以下是一个示例请求:

{
  "bill_source": "ISV",
  "bill_date": "{consign_time}",
  ...
}

通过轻易云提供的全异步、多种异构系统支持,我们可以确保数据在不同系统间无缝对接,实现高效的数据流动。

实际案例应用

假设我们有一批销售出库单,需要从火鸡仓系统转移到金蝶云星辰V2。我们会按照上述步骤进行ETL转换,并通过API接口将转换后的数据写入目标系统。

  1. 准备请求体
{
  ...
}
  1. 发送请求

使用HTTP客户端(如Postman)或编程语言(如Python)发送POST请求,将准备好的JSON数据发送到 /jdy/v2/scm/sal_out_bound 接口。

import requests

url = 'https://api.kingdee.com/jdy/v2/scm/sal_out_bound'
headers = {'Content-Type': 'application/json'}
data = {
  ...
}

response = requests.post(url, json=data, headers=headers)
print(response.json())

通过上述步骤,我们成功地将火鸡仓的销售出库单转移到了金蝶云星辰V2平台,实现了跨系统的数据集成与同步。 打通金蝶云星空数据接口

更多系统对接方案