数据集成平台在企业业务流程自动化中的应用
采购入库同步-(佰嘉)广元跃泰:汤臣倍健营销云数据集成到SQL Server
在企业信息化建设中,数据的高效流转和准确对接是实现业务流程自动化的关键。本文将分享一个实际案例,展示如何通过轻易云数据集成平台,将汤臣倍健营销云的数据无缝集成到SQL Server中,实现采购入库信息的实时同步。
背景与挑战
在本次项目中,我们需要将汤臣倍健营销云中的采购入库数据,通过API接口/erp/api/order/query/purInWarehsOrder
抓取,并批量写入到SQL Server数据库中。这一过程中,需要解决以下几个技术难点:
- 高吞吐量的数据写入:确保大量数据能够快速且稳定地写入SQL Server。
- 实时监控与告警:提供集中监控和告警系统,实时跟踪数据集成任务的状态和性能。
- 分页与限流处理:应对汤臣倍健营销云API接口的分页和限流问题,确保数据抓取过程不漏单。
- 数据格式差异处理:解决汤臣倍健营销云与SQL Server之间的数据格式差异,实现定制化的数据映射对接。
方案设计
为了实现上述目标,我们采用了轻易云数据集成平台,其提供了全生命周期管理、可视化操作界面以及强大的监控和告警功能。具体方案设计如下:
-
高效抓取与写入:
- 利用轻易云平台支持的高吞吐量特性,从汤臣倍健营销云API接口定时可靠地抓取采购入库数据。
- 批量处理并快速写入到SQL Server,通过insert API进行大规模数据插入。
-
集中监控与异常处理:
- 实时监控整个数据集成过程,包括每个环节的数据流动和处理状态。
- 设置告警机制,当出现异常情况或错误时,及时通知相关人员并触发重试机制。
-
自定义转换逻辑与映射:
- 根据业务需求,自定义转换逻辑,对从汤臣倍健营销云获取的数据进行格式转换,以适应SQL Server的存储结构。
- 使用可视化的数据流设计工具,使得整个转换过程更加直观和易于管理。
通过以上方案设计,我们不仅实现了采购入库信息的精准同步,还提升了整体业务流程的透明度和效率。在后续章节中,我们将详细介绍具体实施步骤及技术细节。
调用汤臣倍健营销云接口获取并加工数据
在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过调用汤臣倍健营销云接口/erp/api/order/query/purInWarehsOrder
来获取采购入库数据,并进行初步的数据加工处理。
接口配置与请求参数
首先,我们需要配置元数据以便正确调用该API。以下是关键的元数据配置项:
- API路径:
/erp/api/order/query/purInWarehsOrder
- 请求方法:
POST
- 分页设置: 每页30条记录
- 过滤条件: 排除物料编号包含"F.A"的记录
- ID检查: 启用
具体的请求参数包括:
- tenantId(经销商id):必填项,用于标识经销商。
- yxyNumber(营销云销售订单号):可选项,传递此参数时其他时间状态等条件无效。
- number(系统订单号):可选项,传递此参数时其他时间状态等条件无效。
- status(订单状态):默认值为1,即已审核(已出库)。
- beginTime和endTime(时间范围):用于指定查询的时间范围,格式为
YYYY-MM-DD HH:mm:ss
。 - pageNo和pageSize(分页参数):默认值分别为1和30。
- timeType(时间段标志):默认为1,即基于最后更新时间查询。
这些参数确保了我们能够精确地获取所需的数据,并且可以根据业务需求进行灵活调整。
数据请求与清洗
在发起API请求后,我们会收到一个包含多条采购入库记录的响应。这些记录需要经过初步清洗,以确保数据质量和一致性。以下是一些常见的数据清洗步骤:
-
字段映射与转换:
- 将API返回的数据字段映射到目标系统所需的字段。例如,将
itemList.materialNumber
映射到目标系统中的物料编号字段。 - 对日期格式进行标准化处理,确保所有日期字段符合统一格式。
- 将API返回的数据字段映射到目标系统所需的字段。例如,将
-
过滤无效数据:
- 根据预设条件过滤掉不符合要求的数据,例如物料编号包含"F.A"的记录。
-
异常检测与处理:
- 检查每条记录是否存在缺失或异常值,并根据业务规则进行相应处理。例如,对于缺失关键字段的记录,可以选择丢弃或标记为待人工审核。
分页与限流处理
由于可能存在大量数据,我们需要实现分页机制以分批次获取数据。每次请求都会携带当前页码和每页条数,通过循环迭代逐页获取完整的数据集。同时,为了避免对源系统造成过大压力,需要考虑限流策略,例如设置合理的请求间隔时间。
{
"pageNo": "1",
"pageSize": "30"
}
在实际操作中,可以通过编写脚本或使用轻易云平台提供的自动化工具来实现这一过程,从而保证高效、稳定地完成数据抓取任务。
数据转换与写入准备
经过清洗后的数据,需要进一步转换以适应目标系统的数据结构。这一步通常涉及复杂的业务逻辑,例如计算派生字段、合并多表信息等。在轻易云平台上,可以利用其强大的自定义转换功能,通过拖拽式界面设计复杂的数据流图,实现各种转换需求。
最终,准备好的数据将被写入SQL Server数据库。在写入过程中,需要特别注意以下几点:
- 确保目标表结构与源数据一致,包括字段类型、长度等。
- 实现批量写入,提高效率并减少数据库连接次数。
- 设置事务控制,保证写入操作的一致性和完整性。
通过上述步骤,我们可以高效地从汤臣倍健营销云接口获取采购入库数据,并进行必要的数据加工处理,为后续的数据集成奠定坚实基础。
数据ETL转换与写入SQL Server的技术实现
在数据集成生命周期的第二步,关键任务是将已经从源平台获取的数据进行ETL(抽取、转换、加载)处理,并以SQL Server API接口能够接收的格式写入目标平台。以下将详细探讨这一过程中的技术细节和实现方法。
数据抽取与清洗
首先,从源平台抽取数据。假设我们已经通过轻易云数据集成平台完成了对汤臣倍健营销云系统的API接口调用,成功获取了采购入库单的数据。这些数据通常是以JSON格式返回的,需要进行初步清洗和验证,以确保数据完整性和准确性。
数据转换
在数据转换阶段,需要根据目标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":"时间","field":"ontime","type":"string","value":"{{auditTime|time}}"},
{"parent":"main_params","label":"单位内码","field":"wldwid","type":"string","value":"WLD00000927"},
{"parent":"main_params","label":"含税金额","field":"hsje","type":"string","value":"{{itemList.taxlastmoney}}"}
]
},
{
"label": "扩展表参数",
"field": "extend_params_1",
"type": "array",
"value": "itemList",
"children": [
{"parent": "extend_params_1", "label": "单号", "field": "djbh", "type": "string", "value": "{number}"},
{"parent": "extend_params_1", "label": "序号", "field": "dj_sn", "type": "string", "value": "{oSn}"},
{"parent": "extend_params_1",
...
}
]
}
],
...
}
通过上述配置,可以看出需要将源数据中的字段“number”映射到目标字段“djbh”,并且还涉及日期、时间等格式转换,如将auditTime
字段通过模板语言处理为日期和时间。
数据加载
在完成数据转换后,下一步是将数据加载到SQL Server中。这一步骤需要注意以下几点:
- 高效批量写入:利用SQL Server提供的批量插入功能,可以显著提高大规模数据写入的效率。
- 事务管理:确保数据一致性,在批量操作中使用事务管理,防止部分失败导致的数据不一致问题。
- 错误处理与重试机制:对于可能出现的数据写入失败情况,设计合理的错误处理和重试机制,以提高系统的可靠性。
以下是主表和扩展表插入SQL语句示例:
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);
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 Server平台的数据ETL转换与加载。在这个过程中,充分利用轻易云平台提供的可视化工具、批量操作支持、事务管理以及实时监控功能,大大提升了数据集成效率和可靠性。