汤臣倍健营销云数据集成到金蝶云星辰V2案例分享
在本案例中,我们将详细探讨如何高效实现汤臣倍健营销云与金蝶云星辰V2的系统对接。项目方案命名为“新版订单-出库单-(佰嘉)广州闽康”,其核心任务是确保从汤臣倍健营销云获取的订单数据能够快速、准确地写入到金蝶云星辰V2系统,并保证整个数据处理流畅无误。
首先,利用轻易云的数据集成平台,我们需要调用汤臣倍健营销云提供的API接口/api/openapi/v1/erp/order/honour/agreement/header
,定时抓取最新的订单信息。为了避免漏单,可以设置精细化调度策略和错误重试机制,以确保每次抓取操作都能成功完成并记录日志。
然后,为了处理大量订单数据快速写入到金蝶云星辰V2,需要有效应用批量操作技术。通过轻易云的平台能力,可以优化数据传输路径,将所需信息批量推送至金蝶提供的API接口/jdy/v2/scm/sal_out_bound
。这不仅提升了整体效率,还保障了大规模数据同步过程中的稳定性。
在具体实施过程中,还涉及到对分页和限流问题的解决。例如,当从汤臣倍健营销云读取多页结果时,需要精准控制分页逻辑,同时配合限流措施,从而维持网络请求平稳负载。这部分工作的成功实施有赖于详尽的信息反馈机制及实时监控功能,这些特性共同构筑起一个高可靠性的对接环境。
此外,两套系统之间的数据格式常存在差异,这就要求我们进行必要的数据映射和转换。在这个环节中,通过编写自定义脚本或使用现有工具,对不同字段进行对应调整,以适应各自系统要求,使得输入输出内容格式一致,进一步降低潜在异常风险。
最后,对于任何可能出现的问题,比如由于网络波动或其他原因导致的数据同步失败,可启用异常处理与错误重试流程,应及时捕捉异常事件,并采取二次尝试等措施以防止关键业务中断。这些综合手段最终确保“新版订单-出库单-(佰嘉)广州闽康”方案中的所有技术环节得到最优执行。
调用汤臣倍健营销云接口获取并加工数据的技术案例
在数据集成生命周期的第一步中,我们需要调用源系统汤臣倍健营销云的接口/api/openapi/v1/erp/order/honour/agreement/header
,以获取订单相关的数据,并进行初步的加工处理。本文将详细探讨这一过程中的技术细节和实现方法。
接口调用与元数据配置
首先,我们需要根据提供的元数据配置来构建请求参数。以下是元数据配置的关键部分:
{
"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":"88f30672ee924192a0ccce38b4c2a65c"},
{"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": "单据类型", "type": "string", "describe": "111", "value": "1"},
{"field": "relatedApplyerId", "label": "关联交易经销商id", "type": "string", "describe": "" },
{"field": "saleDistribution",
![电商OMS与WMS系统接口开发配置](https://pic.qeasy.cloud/S25.png~tplv-syqr462i7n-qeasy.image)
### 利用轻易云数据集成平台实现金蝶云星辰V2 API接口的数据ETL转换与写入
在数据集成过程中,将源平台的数据转换为目标平台所能接受的格式是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台将源平台的数据进行ETL转换,并最终写入金蝶云星辰V2 API接口。
#### 配置API接口元数据
首先,我们需要配置金蝶云星辰V2 API接口的元数据。以下是具体的配置项:
```json
{
"api": "/jdy/v2/scm/sal_out_bound",
"effect": "EXECUTE",
"method": "POST",
"number": "id",
"id": "id",
"name": "id",
"idCheck": true,
"request": [
{"field":"bill_source","label":"单据来源,固定传入ISV","type":"string","describe":"单据来源,固定传入APP","value":"ISV"},
{"field":"bill_date","label":"出库日期,格式:2019-01-01","type":"datetime","describe":"出库日期,格式:2019-01-01","value":"{{approveDt|date}}"},
{"field":"customer_id","label":"客户id","type":"string","describe":"客户信息","value":"_findCollection find id from 2571be32-59cc-3353-9ba0-2fb855f844d0 where number={clientAppNo}"},
{"field":"remark","label":"单据备注","type":"string","value":"{remark}"},
{"field":"contact_linkman","label":"联系信息-联系人","type":"string","value":"{contacts}"},
{"field":"contact_phone","label":"联系信息-联系方式","type":"string","value":"{phone}"},
{"field":"contact_address","label":"联系信息-详细地址","type":"string","value":"{shippingAddress}"},
{"field":"dept_id","label":"部门","type":"string","value":"100000"},
{
"field": "custom_field",
"label": "自定义字段",
"type": "object",
"children": [
{"field": "custom_field__1__2uvgd1jiapcazg", "label": "营销云单号", "type": "string", "value": "{no}"},
{"field": "custom_field__1__2xf8ohpvbytn", "label": "下单人", "type": "string", "value": "{salesmanName}"}
]
},
{
"field": "material_entity",
"label": "商品分录",
"type": "array",
"describe": "商品分录",
"value": "{{details}}",
"children":[
{"field": "material_number",
"label": "商品",
"type" : "string",
"describe" : "商品",
"value" : "{{details.extNo}}"
},
{"field" : "stock_id",
"label" : "仓库",
"type" : "string",
"describe" : "仓库",
"value" : 1535522410315392000
},
{"field" : "qty",
"label" : "数量",
"type" : "string",
"describe" : "数量",
"value" : "{{details.quantity}}"
},
{"field" : "unit_id",
"label ": 单位id,
类型: string,
描述: 单位(只能填商品关联的单位,来源于商品单位查询接口或商品详情中的baseunitid_id、fixunit1_id等),
值: _findCollection find base_unit_id from b5d1f599-d90a-3a38-bc95-1ea455bced41 where number={{details.extNo}}
},
{
field: tax_price,
label: 含税单价,
类型: string,
描述: 单价(如果在“系统参数”的“基础资料参数”中勾选了“商品价格为含税单价”,则price指示含税单价),
值: {{details.price}}
},
{
field: is_free,
label: 是否赠品,
类型: string,
描述: 是否赠品;true-是,false-否(默认),
值: false
},
{
field: batch_no,
label: 批次,
类型: string,
描述: 库位_id,
值: {{details._Flot}}
},
{
field: kf_date,
label: 生产日期,
类型: string,
描述: 生产日期,
值: {{details._Fmfg}}
},
{
field: valid_date,
label: 有效日期,
类型: string,
描述: 有效日期,
值:{{details._Fexp}}
},
{
field:kf_period,
label:保质期天数,
类型:string,
描述:保质期天数,
值:2
},
{
field:kf_type,
label:保质期类型,
类型:string,
描述:保质期类型,
值:3
}
]
}
]
}
数据转换与清洗
在进行数据转换时,我们需要特别注意以下几个关键字段:
- bill_date - 出库日期,需要确保格式为
YYYY-MM-DD
。 - customer_id - 客户ID,通过
_findCollection
函数从源数据中提取。 - material_entity - 商品分录,这是一个数组类型,需要对每个商品进行详细的字段映射。
例如,对于material_entity
中的每个商品,我们需要将源数据中的extNo
、quantity
、price
等字段分别映射到目标API所需的字段中。
{
...
{
field:"material_entity",...
children:[
...
{ field:"material_number", value:"{{details.extNo}}" },
{ field:"qty", value:"{{details.quantity}}" },
{ field:"tax_price", value:"{{details.price}}" },
...
]
}
}
数据写入目标平台
完成数据转换后,我们通过POST请求将处理后的数据发送至金蝶云星辰V2 API接口。以下是一个简化的请求示例:
{
method:"POST",...
data:{
bill_source:"ISV",...
bill_date:"2023-10-10",...
customer_id:"12345",...
material_entity:[
{ material_number:"ABC123", qty:"10", tax_price:"100.00"... },...
]
}
}
通过这种方式,我们可以确保源平台的数据经过ETL转换后,能够无缝对接到金蝶云星辰V2,从而实现高效的数据集成和业务流程自动化。
总之,通过轻易云数据集成平台的强大功能和灵活配置,我们能够高效地完成复杂的数据ETL任务,并确保数据准确无误地写入目标系统。