逐步指导:利用ETL转换数据并写入旺店通·企业奇门API

  • 轻易云集成顾问-卢剑航

案例分享:用友U8数据集成到旺店通·企业奇门

在本次技术案例中,我们将探讨如何成功实现从用友U8系统到旺店通·企业奇门的数据集成,具体方案命名为“K 111 u8其他入库(所有类型)=> 其他入库”。该流程涉及大量复杂的步骤和技术细节,包括API接口调用、数据格式转换以及错误处理机制等。

首先,我们需要确保从用友U8系统中抓取的数据完整且无遗漏。通过定时调用用友U8提供的/apilink/u8api接口,可以可靠地获取所需的库存数据。为应对可能存在的大量数据和分页问题,设置合理的分页策略和请求限流机制尤为关键,以确保每次请求都能高效返回数据而不导致服务器资源过载。

接下来,我们面临着将获取的数据批量快速写入到旺店通·企业奇门的问题。对此,通过使用其提供的wdt.vip.wms.stockinout.order.push API,可以大幅提升写入速度。然而,这也要求我们提前解决两个重要挑战:一是要妥善处理两者之间的数据格式差异,使得每个字段能够正确映射;二是建立健全的异常处理与重试机制,以便在出现网络或服务故障时自动进行恢复操作。

准确性同样至关重要。在整个过程生命周期内,对各节点实施实时监控,并记录日志以便追溯任何潜在问题,不仅有助于加强业务透明度,也为后续优化提供了宝贵基础。此外,为充分满足特定业务需求,我们可以针对不同类型的入库单据进行定制化配置,从而最大程度上契合实际运营场景。

这一系列措施有力保障了从用友U8到旺店通·企业奇门的数据传输流程顺畅无阻,实现了高效率、高可靠性的系统集成目标。在以下章节中将详述各环节具体实现细节及代码示例,带领您逐步完成整个配置过程。

如何对接金蝶云星空API接口

调用源系统用友U8接口获取并加工数据的技术案例

在轻易云数据集成平台中,调用源系统用友U8接口是数据集成生命周期的第一步。本文将详细探讨如何通过配置元数据,从用友U8系统中获取并加工数据。

配置元数据

首先,我们需要配置元数据,以便正确调用用友U8的API接口。以下是一个典型的元数据配置示例:

{
  "api": "/apilink/u8api",
  "effect": "QUERY",
  "method": "POST",
  "number": "cbuscode",
  "id": "ccode",
  "name": "id",
  "idCheck": true,
  "request": [
    {
      "field": "data",
      "label": "消息体参数",
      "type": "object",
      "children": [
        {
          "field": "过滤条件_1",
          "label": "开始时间",
          "type": "object",
          "children": [
            {
              "field": "名称",
              "label": "字段",
              "type": "string",
              "value": "dnverifytime"
            },
            {
              "field": "比较符号",
              "label": "大于等于",
              "type": "string",
              "value": ">="
            },
            {
              "field": "值",
              "label": "短日期",
              "type": "string",
              "value":"{{LAST_SYNC_TIME|datetime}}"
            }
          ]
        },
        {
          ...
        }
      ]
    }
  ],
  ...
}

请求参数解析

在上述配置中,request字段定义了请求体的结构。具体包括以下几个部分:

  1. 过滤条件_1: 用于指定开始时间,字段名为dnverifytime,比较符号为>=,值为上次同步时间(使用占位符{{LAST_SYNC_TIME|datetime}})。
  2. 过滤条件_2: 用于指定仓库编号,字段名为cwhcode,比较符号为in,值为多个仓库编号(如:602,702,802,803)。
  3. 分页参数: 包括分页大小(pagesize)和页码(pageindex),分别设置为100和1。

调用API接口

根据元数据配置,我们可以构建请求体,并调用用友U8的API接口。以下是一个示例请求体:

{
  'data': {
    '过滤条件_1': {
      '名称': 'dnverifytime',
      '比较符号': '>=',
      '值': '2023-01-01'
    },
    '过滤条件_2': {
      '名称': 'cwhcode',
      '比较符号': 'in',
      '值': '602,702,802,803'
    },
    'apicontext': {
      'pagesize': '100',
      'pageindex': '1'
    }
  }
}

使用POST方法,将上述请求体发送到API接口/apilink/u8api/otherin/list

数据清洗与转换

获取到原始数据后,需要进行清洗与转换。这一步骤通常包括以下几项操作:

  1. 字段映射: 将原始数据中的字段映射到目标系统所需的字段。例如,将用友U8中的ccode映射到目标系统中的订单编号。
  2. 格式转换: 将日期、数值等字段转换为目标系统所需的格式。
  3. 数据校验: 检查数据完整性和有效性,例如确保所有必填字段都有值,并且值符合预期格式。

写入目标系统

经过清洗与转换的数据,可以通过轻易云平台提供的写入功能,写入到目标系统中。此过程通常包括以下步骤:

  1. 构建写入请求: 根据目标系统的API要求,构建写入请求体。
  2. 发送请求: 使用POST或PUT方法,将请求体发送到目标系统的API接口。
  3. 处理响应: 检查响应状态码和消息,以确认写入操作是否成功。如果失败,需要记录错误信息并进行相应处理。

通过以上步骤,我们实现了从用友U8系统获取并加工数据的全过程。这不仅提高了数据处理效率,还确保了数据的一致性和准确性。 如何开发用友BIP接口

使用轻易云数据集成平台进行ETL转换并写入旺店通·企业奇门API接口的技术案例

在数据集成过程中,将源平台的数据转换为目标平台所需的格式是关键步骤之一。本文将详细介绍如何利用轻易云数据集成平台,将源平台的数据进行ETL(Extract, Transform, Load)转换,并最终通过旺店通·企业奇门API接口写入目标平台。

数据请求与清洗

在数据请求与清洗阶段,我们已经从源系统中提取了原始数据,并进行了必要的清洗和预处理。接下来,我们将重点放在将这些清洗后的数据转换为目标系统所需的格式。

数据转换与写入

为了将数据成功写入旺店通·企业奇门API接口,我们需要按照其要求进行特定的字段映射和格式转换。以下是具体的元数据配置:

{
  "api": "wdt.vip.wms.stockinout.order.push",
  "effect": "EXECUTE",
  "method": "POST",
  "number": "api_outer_no",
  "id": "api_outer_no",
  "name": "api_outer_no",
  "idCheck": true,
  "request": [
    {
      "field": "api_outer_no",
      "label": "接口外部单号",
      "type": "string",
      "describe": "调用本接口时推送的唯一单据编号,避免重复推送数据",
      "value": "{crdcode}{ccode}"
    },
    {
      "field": "warehouse_no",
      "label": "仓库编号",
      "type": "string",
      "describe": "...",
      ...
    },
    ...
    {
      "field": "goods_list",
      ...
    }
  ],
  ...
}
接口外部单号(api_outer_no)

api_outer_no 是调用接口时推送的唯一单据编号,用于避免重复推送数据。我们可以通过拼接 {crdcode}{ccode} 来生成这个唯一编号。

仓库编号(warehouse_no)

warehouse_no 用于标识仓库的唯一编码。在我们的配置中,通过 {cwhcode} 来映射仓库编号,确保该字段能够正确区分不同类型的仓库。

出入类型(order_type)

order_type 表示出库或入库类型。在本案例中,我们设置为 2,表示入库操作。

联系人(contact)

contact 字段用于填写联系人姓名,通过 {chandler} 映射到源系统中的联系人信息。

自动审核(auto_check)

auto_check 设置为 1 表示自动审核,这样可以简化后续流程,提高效率。

货品明细节点(goods_list)

goods_list 是一个数组节点,包含了每个货品的详细信息。每个货品的信息包括商家编码、入库数量、价格等。这些字段通过相应的映射规则从源系统中提取并转换:

  • spec_no: 映射到 {body.cinvcode}
  • num: 映射到 {body.iquantity}
  • price: 可选字段,根据需要进行映射
  • batch_no: 可选字段,根据需要进行映射
  • remark: 可选字段,根据需要进行映射
来源单号(prop1)

prop1 映射到 {cbuscode},用于记录来源单号。

部门(prop2)

prop2 映射到 {cdepname},用于记录部门信息。

入库类别(prop3)

prop3 根据不同的 {crdcode} 值来确定具体的入库类别。例如:

_function case
when '{crdcode}'='101' then '外部采购'
when '{crdcode}'='102' then '普通采购'
...
else '' end
入库日期(prop4)

prop4 映射到 {ddate},用于记录入库日期。

实际操作步骤

  1. 配置元数据:根据上述配置,在轻易云数据集成平台中创建相应的元数据配置。
  2. 数据映射:利用轻易云的数据映射工具,将源系统中的字段与目标系统中的字段进行一一对应。
  3. ETL转换:执行ETL过程,将清洗后的源数据按照目标系统要求进行转换。
  4. API调用:通过轻易云的数据集成平台发起POST请求,将转换后的数据推送至旺店通·企业奇门API接口。
  5. 监控与验证:实时监控API调用状态,并验证数据是否成功写入目标系统。

通过上述步骤,我们可以高效地将源平台的数据转换并写入旺店通·企业奇门API接口,实现不同系统间的数据无缝对接。 打通企业微信数据接口

更多系统对接方案