案例分享:汤臣倍健营销云数据集成到金蝶云星辰V2
在实际的系统对接项目中,高效、稳定的数据集成方案尤为重要。本次,我们将重点介绍如何通过轻易云数据集成平台,实现汤臣倍健营销云与金蝶云星辰V2之间的数据无缝对接。具体案例运行方案命名为“新版订单-出库单-广州闽福”。
确保没有漏单的问题解决
第一个挑战是如何确保从汤臣倍健营销云获取的订单数据在传输过程中不丢失。我们采用定时可靠抓取机制,通过调用 /api/openapi/v1/erp/order/honour/agreement/header
接口,定期获取新的订单数据,并且实现了增量更新,以防止重复抓取或遗漏。
批量写入和分页处理
面对大量的订单数据,需要快速地批量写入到金蝶云星辰V2,我们选择了分批处理策略。在每一次API调用时,根据接口返回的分页信息进行多次请求,直至所有页面的数据均被成功获取。同时,为处理并发限流问题,设计了自适应限流算法,实时检测和调整请求频率,从而保证系统稳定性。
数据格式差异及映射
汤臣倍健营销云与金蝶云星辰V2的数据结构存在较大差异。例如字段名称与单位表示不同,这就需要在集成中间层进行精细化的数据映射和转换。利用轻易云提供的映射工具,可以灵活定义字段对应关系,实现自动匹配。此外,还需注意特殊字段如日期格式、货币类型等,需要额外处理以符合目标系统要求。
实时监控与日志记录
为了确保整个数据传输过程中的透明性以及便于后续故障排查,我们引入了实时监控和日志记录功能。在每个对接环节,包括API请求发送、响应解析、数据转换等,都进行了详细记录。这不仅方便及时发现异常,也为业务分析提供了一手资料支持。
以上内容展示的是本次技术案例中的主要解决思路及方法,接下来将会详述具体实施步骤及代码示例。
调用汤臣倍健营销云接口获取并加工数据
在数据集成的生命周期中,第一步是调用源系统接口以获取原始数据。本文将详细探讨如何通过调用汤臣倍健营销云的接口/api/openapi/v1/erp/order/honour/agreement/header
来获取订单数据,并对其进行初步加工。
接口调用配置
首先,我们需要配置元数据,以便正确地调用该API接口。以下是元数据配置的详细信息:
{
"api": "/api/openapi/v1/erp/order/honour/agreement/header",
"effect": "QUERY",
"method": "POST",
"number": "no",
"id": "id",
"idCheck": true,
"request": [
{"field":"orgId","label":"组织ID","type":"string","describe":"111","value":"54d6f2b9a545415b8af313306abba8db"},
{"field":"page","label":"页码","type":"string","describe":"111","value":"1"},
{"field":"id","label":"订单id","type":"string","describe":"111"},
{"field":"applyerId","label":"要货方id","type":"string","describe":"111"},
{"field":"supplierId","label":"供货方id","type":"string","describe":"111"},
{"field":"no","label":"订单号","type":"string","describe":"111"},
{"field":"distributionType","label":"分销类型","type":"string","describe":"111"},
{"field":"distributorId","label":"分销商id","type":"string","describe":"111"},
{"field":"orderStatus","label":"订单状态","type":"string","describe":"111", "value": "WAIT_DELIVERY,PART_DELIVERY,ALL_DELIVERY,WAIT_OUT_STORAGE,PART_OUT_STORAGE,ALL_OUT_STORAGE,PART_CONFIRM,CONFIRM,AUDIT_SUCCESS,FINISH"},
{"field":"createDt","label":"创建时间","type":"string","describe":"111"},
{"field":"orderTypeCode","label":"订单类型,如普通订单、直运销售","type":"string","describe":"111"},
{"field": "isDeliveryFreezed", "label": "是否暂停发货", "type": "string", "describe": "111"},
{"field": "nature", "label": "单据类型1订单、2退货", "type": "string", "describe": "111", "value": "1"},
{"field": "relatedApplyerId", "label": "关联交易经销商id", "type": "string", "describe": "111"},
{"field": "saleDistribution", "label": "销售渠道", "type": "string", "describe":"111"},
{"field":
![打通钉钉数据接口](https://pic.qeasy.cloud/S25.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台:ETL转换与金蝶云星辰V2API接口对接技术案例
在数据集成生命周期的第二阶段,我们需要将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,转为目标平台金蝶云星辰V2 API接口所能够接收的格式,并最终写入目标平台。以下是详细的技术实现过程。
#### API接口配置
我们使用的API接口是`/jdy/v2/scm/sal_out_bound`,该接口用于处理出库单的数据写入。通过POST方法提交数据,确保每个字段都符合金蝶云星辰V2的要求。
#### 请求字段配置
1. **单据来源**
```json
{
"field": "bill_source",
"label": "单据来源,固定传入ISV",
"type": "string",
"describe": "单据来源,固定传入APP",
"value": "ISV"
}
单据来源固定传入值ISV
,用于标识数据来源。
-
出库日期
{ "field": "bill_date", "label": "出库日期,格式:2019-01-01", "type": "datetime", "describe": "出库日期,格式:2019-01-01", "value": "{{approveDt|date}}" }
使用模板语言将日期格式化为
YYYY-MM-DD
格式。 -
客户ID
{ "field": "customer_id", "label": "客户id", "type": "string", "describe": "客户信息", "value": "_findCollection find id from e4226d8c-6924-3a9d-8fd9-3503bbca47df where number={clientAppNo}" }
通过查询集合获取客户ID,以确保客户信息的准确性。
-
备注、联系人、联系方式、详细地址
{ "field": "remark", ... ... }
这些字段直接从源数据中提取并映射到目标API字段。
-
部门ID
{ "field": "dept_id", ... ... }
部门ID固定为
100000
,根据业务需求设置。 -
自定义字段 自定义字段包括营销云单号和下单人信息:
{ ... ... }
-
商品分录 商品分录是一个数组,每个商品条目包含多个子字段:
{ ... ... }
数据转换与写入
在数据转换过程中,我们需要特别注意以下几点:
- 日期格式化:确保所有涉及日期的字段都按照目标平台要求的格式进行转换。
- ID映射:通过集合查询确保所有ID字段(如客户ID、单位ID)都能正确映射。
- 商品分录处理:对于数组类型的数据,需要逐一处理每个商品条目,确保所有子字段都能正确映射和转换。
例如,对于商品分录中的数量字段:
{
...
...
}
我们使用模板语言从源数据中提取数量并进行转换。
实际案例应用
在实际应用中,我们可以通过以下步骤完成整个ETL过程:
- 提取数据:从源系统中提取原始数据。
- 清洗数据:根据业务规则清洗和过滤无效数据。
- 转换数据:按照目标API要求进行数据格式转换。
- 写入数据:通过API接口将转换后的数据写入金蝶云星辰V2系统。
通过上述步骤,我们可以高效地完成从源系统到目标系统的数据集成过程,实现不同系统间的数据无缝对接。