从广元跃泰学到的采购入库数据的高效ETL集成实践

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

案例分享:采购入库同步-广元跃泰——汤臣倍健营销云数据集成到SQL Server

在本技术案例中,我们探讨了如何高效地将汤臣倍健营销云的采购入库数据同步至SQL Server数据库。通过调用/erp/api/order/query/purInWarehsOrder接口抓取营销云的数据,并使用SQL Server的API进行批量写入,实现了跨系统的数据无缝对接。

一、确保数据不漏单

为了保证从汤臣倍健营销云获取的数据不会遗漏,我们采用了定时可靠的抓取机制。通过轻易云平台内置的调度功能,设置定期任务,以固定时间间隔调用API接口 /erp/api/order/query/purInWarehsOrder,并实时监控每次调用结果。如果出现异常,将自动重试以确保数据完整性。

二、大量数据快速写入

针对大规模数据写入的问题,我们设计了一套高效的数据分片和批处理方案。首先,通过分页请求获取全量采购入库订单,合理设置分页参数以符合API限流策略;然后,利用并行处理技术,将多个分页请求异步执行,加速采集过程。在向SQL Server插入数据时,采用批量插入操作,同时优化数据库索引与事务设置,提高整体性能。

三、处理格式差异

由于汤臣倍健营销云返回的数据结构与 SQL Server 预定义表结构存在差异,因此,在存储过程中需要进行数据转换和映射。例如,对时间格式、数值精度及字符串长度等字段做适配处理。此外,为避免因字符编码不同产生乱码问题,还实现了统一编码转换逻辑。

此集成项目展示了我们在复杂业务场景下如何运用先进工具与最佳实践,实现跨平台、高效率、安全稳定的企业级解决方案。接下来,将深入解析具体配置步骤及关键技术细节。 如何对接金蝶云星空API接口

调用源系统汤臣倍健营销云接口获取并加工数据

在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过调用汤臣倍健营销云的/erp/api/order/query/purInWarehsOrder接口来获取采购入库数据,并对其进行初步加工。

接口调用配置

首先,我们需要配置API调用的元数据。以下是具体的配置细节:

  • API路径: /erp/api/order/query/purInWarehsOrder
  • 请求方法: POST
  • 分页设置: 每页30条记录
  • 过滤条件: 排除物料编号包含"F.A"的记录
  • ID检查: 启用

请求参数详解

为了确保数据请求的准确性和完整性,我们需要传递一系列参数:

  1. tenantId (经销商id): 必填项,用于标识具体的经销商。例如:34cc4109705e4c058b7b3b0352e57d31
  2. yxyNumber (营销云销售订单号): 可选项,传此参数时其他时间状态等条件无效。
  3. number (系统订单号): 可选项,传此参数时其他时间状态等条件无效。
  4. status (订单状态): 默认为已审核状态(值为1)。
  5. beginTime (开始时间): 基于更新时间查询,格式为YYYY-MM-DD HH:mm:ss。例如:{{LAST_SYNC_TIME|datetime}}
  6. endTime (结束时间): 同样基于更新时间查询,格式为YYYY-MM-DD HH:mm:ss。例如:{{CURRENT_TIME|datetime}}
  7. pageNo (页码): 默认值为1。
  8. pageSize (每页条数): 默认值为30。
  9. timeType (时间段标志): 查询时间段标识,默认值为1(最后更新时间)。

数据请求与清洗

在发起API请求后,我们将获得一个包含采购入库订单信息的数据集。为了确保数据质量,需要对返回的数据进行清洗和预处理:

  1. 过滤无效数据:

    • 根据元数据配置中的过滤条件,排除物料编号包含"F.A"的记录。
  2. 字段映射与转换:

    • 将API返回的数据字段映射到目标系统所需的字段。例如,将API中的id字段映射到目标系统中的order_id字段。
  3. 数据格式化:

    • 确保日期和时间字段符合目标系统的格式要求。例如,将日期格式统一转换为ISO 8601标准。

实践案例

假设我们需要同步某个经销商在特定时间段内所有已审核的采购入库订单。以下是一个具体的请求示例:

{
  "tenantId": "34cc4109705e4c058b7b3b0352e57d31",
  "status": "1",
  "beginTime": "2023-10-01 00:00:00",
  "endTime": "2023-10-31 23:59:59",
  "pageNo": "1",
  "pageSize": "30",
  "timeType": "1"
}

通过上述请求,我们可以获取指定时间段内所有符合条件的采购入库订单,并对其进行进一步处理和分析。

数据转换与写入

在完成数据清洗后,需要将处理后的数据转换为目标系统可接受的格式,并写入目标数据库。这一步通常包括以下操作:

  1. 数据转换:

    • 使用轻易云平台提供的数据转换工具,将清洗后的数据转换为目标系统所需的格式。
  2. 批量写入:

    • 将转换后的数据批量写入目标数据库,以提高写入效率和可靠性。

通过以上步骤,我们可以实现从汤臣倍健营销云获取采购入库订单并进行初步加工,为后续的数据分析和业务决策提供可靠的数据支持。 用友与SCM系统接口开发配置

采购入库同步-广元跃泰: 数据转换与写入目标平台SQL Server的技术实现

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)处理,转为目标平台SQL Server API接口所能够接收的格式,并最终写入目标平台。以下是详细的技术实现过程。

数据提取与转换

首先,我们从源平台提取数据,并按照配置的元数据进行转换。元数据配置如下:

{
  "api": "insert",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "label": "主表参数",
      "field": "main_params",
      "type": "object",
      "children": [
        {"parent": "main_params", "label": "单号编号", "field": "djbh", "type": "string", "value": "{number}"},
        {"parent": "main_params", "label": "采购入库传CGC  销售退回传XHH", "field": "djlx", "type": "string", "value": "CGC"},
        {"parent": "main_params", "label": "日期", "field": "rq", "type": "string", "value":"{{auditTime|date}}"},
        {"parent": "main_params", "label": "时间",  ...
      ]
    },
    {
      ...
    }
  ],
  ...
}

主表参数转换

主表参数main_params包含了订单的基本信息,如单号编号、日期、时间等。我们需要将这些字段映射到SQL Server中的相应字段。

  • djbh: 单号编号,映射为SQL Server中的djbh字段。
  • djlx: 单据类型,固定值为"CGC",映射为SQL Server中的djlx字段。
  • rq: 日期,通过模板变量{{auditTime|date}}获取并格式化后,映射为SQL Server中的rq字段。
  • ontime: 时间,通过模板变量{{auditTime|time}}获取并格式化后,映射为SQL Server中的ontime字段。

其他字段如单位内码、含税金额、收货人等,也按照类似方式进行映射和转换。

扩展表参数转换

扩展表参数extend_params_1包含了订单明细信息,如商品内码、仓库编号、批号等。这些字段需要逐一映射到SQL Server中的相应字段。

  • spid: 商品内码,通过查找集合获取对应值,并映射到SQL Server中的spid字段。
  • ckid: 仓库编号,通过模板变量{{itemList.depotNo}}获取并映射到SQL Server中的ckid字段。
  • pihao: 批号,通过模板变量{{itemList._Flot}}获取并映射到SQL Server中的pihao字段。

其他字段如效期、生产日期、数量等,也按照类似方式进行映射和转换。

数据写入目标平台

在完成数据提取与转换后,我们需要将处理后的数据写入目标平台SQL Server。根据元数据配置,我们定义了两个主要的SQL语句:

  1. 主表插入语句:

    INSERT INTO gxkphz (djbh, djlx, rq, ontime, wldwid, hsje, shouhr, shhdz, lxdh, beizhu, webdjbh) 
    VALUES (:djbh, :djlx, :rq, :ontime, :wldwid, :hsje, :shouhr, :shhdz, :lxdh, :beizhu, :webdjbh)
  2. 扩展表插入语句:

    INSERT INTO gxkpmx (djbh, dj_sn, spid, ckid, pihao, sxrq, baozhiqi, shl, hshj, hsje,xgdjbh ,recnum,hzid ,ckname) 
    VALUES (:djbh,:dj_sn,:spid,:ckid,:pihao,:sxrq,:baozhiqi,:shl,:hshj,:hsje,:xgdjbh,:recnum,:hzid ,:ckname)

通过API接口调用,将上述SQL语句执行,将转换后的数据写入目标数据库中。API接口调用配置如下:

{
  ...
  {
    ...
    // 主表插入请求
    {
      ...
      // 扩展表插入请求
    }
  }
}

以上就是通过轻易云数据集成平台实现采购入库同步至广元跃泰系统,并将数据写入目标平台SQL Server的详细技术实现过程。通过合理配置和使用元数据,我们能够高效地完成复杂的数据集成任务。 用友与外部系统接口集成开发

更多系统对接方案