ETL转换:轻易云平台对接旺店通和金蝶云的实现方法

  • 轻易云集成顾问-叶威宏

通过轻易云平台实现旺店通·企业奇门数据对接金蝶云星空的技术方案

在复杂多变的市场环境中,企业常常需要高效整合不同来源的数据,以便迅速做出业务决策。本次案例分享聚焦于如何使用轻易云数据集成平台,将旺店通·企业奇门的数据无缝对接到金蝶云星空。采用的具体方案为“旺店通其他入库对接金蝶其他入库-P”,旨在展示从数据获取、处理到写入的一系列关键步骤和技术点。

首先,我们要解决的是确保整个集成过程中不漏单,并快速且稳定地向目标系统进行大量数据写入。为了实现这一目标,我们利用了旺店通提供的API接口——wdt.stockin.order.query来定时可靠地抓取其端的数据。这一过程需要特别关注接口调用中的分页问题以及限流策略,通过细致调试和优化,保障每一批次数据均能准确有效传输。

其次,在将抓取的数据写入金蝶云星空时,调用了其提供的batchSave API接口。在这个过程中,要特别注意两点:一是必须处理好两套系统间可能存在的数据格式差异,通过自定义字段映射与转换,使得数据能够顺利注入;二是在面对潜在异常情况时,实现完善的错误重试机制,以最大程度减少因网络波动或突发故障而造成的数据丢失。

此外,为了提升透明度和运维效率,我们配置了实时监控与日志记录功能,不仅可以实时查看当前任务执行状态,还能追踪并排查潜在问题。例如,当某一次批量操作失败时,可以立即获得详细日志信息,从而及时采取补救措施。

总之,本案例以精准、高效、可靠为核心,通过合理设计与精确实施,将不同系统间的信息壁垒巧妙打破,实现了业财一体化管理,提高整体运营效率及数据准确性。下一部分将具体探讨各个环节实施中的实际代码片段及配置细节。 如何开发钉钉API接口

使用旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据

在数据集成的生命周期中,调用源系统API是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockin.order.query,获取并加工入库单数据。

接口调用配置

首先,我们需要配置API接口调用的元数据。根据提供的元数据配置,我们可以看到该接口使用POST方法,并且支持分页查询。以下是具体的配置参数:

  • API名称: wdt.stockin.order.query
  • 请求方法: POST
  • 主要字段:
    • start_time: 开始时间,格式为yyyy-MM-dd HH:mm:ss,用于按最后修改时间增量获取数据。
    • end_time: 结束时间,格式为yyyy-MM-dd HH:mm:ss,同样用于按最后修改时间增量获取数据。
    • order_type: 源单据类别,此处我们设置为6(其他入库)。
    • status: 入库单状态,可选值包括10已取消、20编辑中、25待价格确认等。
    • warehouse_no: 仓库编号,用于区分不同仓库。
    • src_order_no: 上层单据编号,可以不传开始时间和结束时间。
    • stockin_no: 入库单号,同样可以不传开始时间和结束时间。

此外,还有分页参数:

  • 分页大小: page_size,默认值为50。
  • 页号: page_no,默认从0页开始。

请求示例

以下是一个典型的请求示例:

{
    "start_time": "{{LAST_SYNC_TIME|datetime}}",
    "end_time": "{{CURRENT_TIME|datetime}}",
    "order_type": "6",
    "status": "80",
    "warehouse_no": "WH001",
    "page_size": 50,
    "page_no": 0
}

在这个请求中,我们使用了动态变量来设置开始时间和结束时间,这些变量会在实际运行时被替换为具体的日期时间值。

数据处理与清洗

获取到原始数据后,需要对其进行清洗和转换,以便后续写入目标系统。常见的数据清洗操作包括:

  1. 字段映射:将源系统中的字段映射到目标系统中的对应字段。例如,将源系统中的stockin_id映射到目标系统中的id字段。
  2. 数据格式转换:将日期、数值等字段转换为目标系统所需的格式。例如,将日期格式从yyyy-MM-dd HH:mm:ss转换为目标系统所需的格式。
  3. 过滤无效数据:根据业务规则过滤掉不需要的数据。例如,只保留状态为“已完成”的入库单。

异常处理与补偿机制

在实际操作中,不可避免地会遇到各种异常情况,如网络故障、接口超时等。为了确保数据集成过程的可靠性,需要设计异常处理与补偿机制。

轻易云平台提供了定时任务(crontab)和补偿请求(takeOverRequest)功能。例如,当某次同步失败时,可以通过定时任务重新发起请求,并使用补偿请求中的参数来确保数据完整性:

{
    "crontab": "2 11 * * *",
    "takeOverRequest": [
        {
            "id": "start_timeKthE5",
            "field": "start_time",
            "label": "开始时间",
            "type": "datetime",
            "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
            "value": "{{DAYS_AGO_2|datetime}}"
        }
    ]
}

这个配置表示每天11点02分执行一次任务,如果上次同步失败,则使用两天前的开始时间重新发起请求。

通过以上步骤,我们可以高效地调用旺店通·企业奇门接口获取入库单数据,并进行必要的数据清洗和转换,为后续的数据写入打下坚实基础。 如何对接企业微信API接口

使用轻易云数据集成平台实现旺店通其他入库对接金蝶云星空API接口的ETL转换

在数据集成生命周期的第二步中,关键任务是将已经从源平台(如旺店通)获取的数据进行ETL转换,使其符合目标平台(金蝶云星空API接口)的格式要求,并最终写入目标平台。本文将详细探讨这一过程中的技术细节和实现方法。

1. 数据请求与清洗

在数据请求阶段,我们已经从旺店通获取了其他入库单的数据。这些数据包括单据编号、库存组织、日期、供应商、部门、备注以及明细信息等。接下来,我们需要对这些数据进行清洗和转换,以确保其符合金蝶云星空API接口的要求。

2. 数据转换与写入

在数据转换阶段,我们使用轻易云数据集成平台提供的元数据配置来实现ETL过程。以下是具体的配置和操作步骤:

API 接口配置

我们使用金蝶云星空的batchSave API接口,该接口通过POST方法提交请求,并支持批量保存功能。以下是元数据配置的详细说明:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillNo","label":"单据编号","type":"string","value":"{stockin_no}"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTRKD01_SYS"},
    {"field":"FStockOrgId","label":"库存组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{warehouse_name}","mapping":{"target":"64aba448d165da66451f90c3","direction":"positive"}},
    {"field":"FDate","label":"日期","type":"string","value":"{stockin_time}"},
    {"field":"FSUPPLIERID","label":"供应商","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
    {"field":"FDEPTID","label":"部门","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
    {"field":"FNOTE","label":"备注","type":"string","value":"旺店通其他入库单"},
    {"field":"FEntity","label":"明细信息","type":"array",
      "children":[
        {"field":"FMATERIALID","label":"物料编码","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{{details_list.goods_no}}"},
        {"field":"FCMKBarCode","label":"零售条形码","type":"","parent":""},
        {"field":""}
      ]
    },
    {"field":"","label":"","type":"","value":""}
  ],
  "otherRequest":[
    {"field":"","label":"","type":"","value":""},
    {"field":"","label":"","type":"","value":""},
    {"field":"","label":"","type":"","value":""}
  ]
}
请求参数解析
  1. FBillNo(单据编号):直接从源数据中提取stockin_no字段。
  2. FBillTypeID(单据类型):固定值为QTRKD01_SYS,并使用ConvertObjectParser解析为目标系统所需格式。
  3. FStockOrgId(库存组织):从源数据中的warehouse_name字段提取,并通过映射关系转换为目标系统所需格式。
  4. FDate(日期):直接从源数据中提取stockin_time字段。
  5. FSUPPLIERID(供应商):使用ConvertObjectParser解析源数据中的供应商信息。
  6. FDEPTID(部门):同样使用ConvertObjectParser解析部门信息。
  7. FNOTE(备注):固定值为“旺店通其他入库单”。
  8. FEntity(明细信息):这是一个数组字段,包含多个子字段,如物料编码、零售条形码、收货仓库和实收数量等。这些子字段分别从源数据中的相应字段提取,并进行必要的格式转换。
提交请求

在完成所有字段的解析和转换后,我们通过POST方法向金蝶云星空的API接口提交请求。以下是一个示例请求体:

{
  "FormId": "STK_MISCELLANEOUS",
  "IsVerifyBaseDataField": false,
  "Operation": "Save",
  "IsAutoSubmitAndAudit": false,
  "Model": {
    "FBillNo": "{stockin_no}",
    ...
    ...
  }
}

总结

通过以上步骤,我们成功地将旺店通其他入库单的数据进行ETL转换,使其符合金蝶云星空API接口的格式要求,并最终写入目标平台。在这个过程中,轻易云数据集成平台提供了强大的元数据配置能力,使得复杂的数据转换和集成任务变得更加简单高效。 金蝶与MES系统接口开发配置

更多系统对接方案