轻易云平台ETL转换:对接旺店通API接口实现

  • 轻易云集成顾问-陈洁琳

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

在本次技术案例中,我们将探讨如何使用轻易云平台,将用友U8系统中的其他出库数据无缝对接至旺店通·企业奇门,并实现高效、稳定的数据传输和处理。

首先,我们需要解决的是如何确保从用友U8系统中准确、及时地获取到所有类型的其他出库数据。我们采用了定时可靠的抓取机制,通过调用用友U8提供的API接口 /apilink/u8api 来执行这一任务。这一过程不仅保证了数据不漏单,还能根据实际需求进行分页抓取,避免接口限流问题。

在成功获取到原始数据后,下一步是快速且批量写入到目标系统——旺店通·企业奇门。为此,我们利用其专属写入API wdt.vip.wms.stockinout.order.push 实现大量数据的高效导入。此外,为应对可能的数据格式差异与映射问题,我们设计了一套定制化的数据转换规则,以确保每条记录都能够正确匹配并顺利进入目标数据库。

为了进一步提升对接过程中的稳定性和容错性,我们还增加了异常处理与错误重试机制。一旦检测到任意接口调用失败或响应超时,平台会自动尝试重新请求,并实时记录日志以便于后期追溯和排查。同样重要的是,对整个集成过程进行了全程监控,使得每一步操作都明确可见,并随时可以查看最新状态及历史记录。

通过这种细致严谨的方案配置,不仅实现了两大系统间的数据无缝对接,还显著提高了业务运作效率和透明度。在实际运行过程中,每天数千笔交易信息能够准时、准确地同步至旺店通·企业奇门,为客户提供强有力的数字支持。 如何开发金蝶云星空API接口

用友U8接口调用与数据加工技术案例

在轻易云数据集成平台中,调用用友U8接口获取并加工数据是生命周期的第一步。本文将详细探讨如何通过配置元数据来实现这一过程,重点关注接口调用和数据处理的技术细节。

调用用友U8接口获取数据

首先,我们需要通过配置元数据来定义如何调用用友U8的API接口。根据提供的元数据配置,我们使用/apilink/u8api作为API路径,并采用POST方法进行请求。

{
  "api": "/apilink/u8api",
  "effect": "QUERY",
  "method": "POST",
  "number": "id",
  "id": "id",
  "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}}"}
          ]
        },
        {
          ...
        }
      ]
    }
  ],
  ...
}

配置请求参数

在请求参数中,我们需要设置多个过滤条件,包括开始时间、结束时间和指定仓库。这些条件将用于筛选符合要求的数据记录。

  • 开始时间:字段名为dnverifytime,比较符号为>=,值为上次同步时间。
  • 结束时间:字段名为dnverifytime,比较符号为<=,值为当前时间。
  • 指定仓库:字段名为cwhcode,比较符号为in,值为特定仓库编号列表(如10,32,12,03)。

此外,还需要设置分页参数以控制每次请求的数据量和页码。

{
  ...
  {
    "field":"apicontext",
    ...
    {
      {"field":"pagesize","label":"分页大小","type":"string","value":"100"},
      {"field":"pageindex","label":"页码","type":"string","value":"1"}
    }
  }
}

数据清洗与转换

在获取到原始数据后,需要对其进行清洗和转换,以确保数据格式符合目标系统的要求。以下是一些常见的数据清洗操作:

  1. 字段映射:将源系统中的字段映射到目标系统中的对应字段。例如,将用友U8中的仓库编码映射到目标系统中的仓库ID。
  2. 数据类型转换:确保所有字段的数据类型一致。例如,将日期字符串转换为标准的日期格式。
  3. 异常数据处理:过滤掉不符合业务规则的数据记录,例如缺失关键字段或格式错误的数据。

写入目标系统

经过清洗和转换后的数据,需要写入到目标系统中。在轻易云平台中,这一步通常通过配置相应的写入接口来实现。根据元数据配置,可以使用以下接口:

  • 列表接口:用于批量写入多条记录,例如otherout/list
  • 详情接口:用于写入单条记录,例如otherout/get
{
  ...
  {
    {"field":"apiurl","label":"列表接口","type":"string","describe":"productin/list","value":"otherout/list"},
    {"field":"apidetail","label":"详情接口","type":"string","describe":"productin/get","value":"otherout/get"}
  }
}

通过上述步骤,我们可以实现从用友U8系统中获取并加工其他出库类型的数据,并将其无缝集成到目标系统中。这一过程不仅提高了数据处理的效率,还确保了业务流程的透明性和可追溯性。 打通钉钉数据接口

轻易云数据集成平台ETL转换:对接旺店通·企业奇门API接口

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)转换,以适配目标平台——旺店通·企业奇门API接口的格式,并最终写入目标平台。以下是详细的技术实现过程。

API接口配置

首先,我们需要了解目标API接口的元数据配置。根据提供的元数据配置,目标API为wdt.vip.wms.stockinout.order.push,采用POST方法进行数据推送,以下是具体字段及其描述:

  • api_outer_no: 接口外部单号,确保唯一性,避免重复推送。
  • warehouse_no: 仓库编号,用于区分不同仓库。
  • order_type: 出入类型,可选值为1(出库)或2(入库)。
  • logistics_fee: 邮资,默认为0。
  • other_fee: 其他费用。
  • province, city, district, address: 地址相关信息。
  • contact, mobile: 联系人信息。
  • remark: 备注信息。
  • auto_check: 自动审核标志,默认值为1。
  • goods_list: 货品明细节点,包括商家编码、入库数量等详细信息。

数据映射与转换

在进行ETL转换时,需要将源平台的数据字段映射到目标API所需的字段格式。以下是具体的映射关系和转换逻辑:

  1. 接口外部单号 (api_outer_no):

    • 来源字段:{ccode}
    • 描述:调用本接口时推送的唯一单据编号。
  2. 仓库编号 (warehouse_no):

    • 来源字段:{cwhcode}
    • 描述:代表仓库所有属性的唯一编码。
  3. 出入类型 (order_type):

    • 固定值:1
    • 描述:出库类型固定为1。
  4. 邮资 (logistics_fee):

    • 固定值:0
    • 描述:物流或者快递运输货物产生的费用。
  5. 其他费用 (other_fee):

    • 固定值:空
    • 描述:其他费用。
  6. 地址相关信息 (province, city, district, address):

    • 来源字段分别对应省、市、县(区)、详细地址。
  7. 联系人信息 (contact, mobile):

    • 来源字段分别为联系人姓名 {chandler} 和手机号。
  8. 备注 (remark):

    • 来源字段组合 {cmemo}-{cbuscode}
  9. 自动审核 (auto_check):

    • 固定值:1
    • 描述:自动审核标志。
  10. 货品明细节点 (goods_list): 包含以下子节点:

    • 商家编码 (spec_no): {body.cinvcode}
    • 入库数量 (num): {body.iquantity}
    • 货位编号 (position_no)
    • 价格 (price)
    • 批次 (batch_no)
    • 备注 (remark)
  11. 其他属性

    • 出库单号 (prop1): {cbuscode}
    • 部门 (prop2): {cdepname}
    • 出库类别 (prop3): 根据 {crdcode} 的不同取值进行条件判断和映射。
    • 出库日期 (prop4): {ddate}

实现步骤

  1. 提取源数据: 从源平台提取所需的数据字段,例如订单编号、仓库编号、联系人信息等。

  2. 数据清洗与转换: 根据上述映射关系,将提取的数据进行清洗和格式转换。例如,将订单编号映射为接口外部单号,将联系人姓名和手机号分别映射到对应的API字段中。

  3. 构建请求体: 根据目标API的要求,构建JSON格式的请求体。示例如下:

{
  "api_outer_no": "{ccode}",
  "warehouse_no": "{cwhcode}",
  "order_type": "1",
  "logistics_fee": "0",
  "other_fee": "",
  "province": "{province}",
  "city": "{city}",
  "district": "{district}",
  "address": "{address}",
  "contact": "{chandler}",
  "mobile": "{mobile}",
  "remark": "{cmemo}-{cbuscode}",
  "auto_check": "1",
  "goods_list": [
    {
      "spec_no": "{body.cinvcode}",
      "num": "{body.iquantity}"
      // ...其他子节点
    }
  ],
  "prop1": "{cbuscode}",
  "prop2": "{cdepname}",
  "prop3": "_function case when '{crdcode}'='206' then '组装出库' ... else '' end",
  "prop4": "{ddate}"
}
  1. 发送请求并处理响应: 使用HTTP POST方法将构建好的请求体发送到目标API接口,并处理返回结果。如果成功,则记录日志;如果失败,则记录错误信息并进行必要的重试或告警处理。

通过以上步骤,我们可以实现将源平台的数据经过ETL转换后,无缝对接到旺店通·企业奇门API接口,从而实现高效的数据集成和业务流程自动化。 打通金蝶云星空数据接口

更多系统对接方案