利用轻易云实现金蝶云星辰V2的数据ETL转换与写入流程

  • 轻易云集成顾问-彭萍
### 汤臣倍健营销云数据集成到金蝶云星辰V2案例分享 在本案例中,我们将详细探讨如何高效实现汤臣倍健营销云与金蝶云星辰V2的系统对接。项目方案命名为“新版订单-出库单-(佰嘉)广州闽康”,其核心任务是确保从汤臣倍健营销云获取的订单数据能够快速、准确地写入到金蝶云星辰V2系统,并保证整个数据处理流畅无误。 首先,利用轻易云的数据集成平台,我们需要调用汤臣倍健营销云提供的API接口`/api/openapi/v1/erp/order/honour/agreement/header`,定时抓取最新的订单信息。为了避免漏单,可以设置精细化调度策略和错误重试机制,以确保每次抓取操作都能成功完成并记录日志。 然后,为了处理大量订单数据快速写入到金蝶云星辰V2,需要有效应用批量操作技术。通过轻易云的平台能力,可以优化数据传输路径,将所需信息批量推送至金蝶提供的API接口`/jdy/v2/scm/sal_out_bound`。这不仅提升了整体效率,还保障了大规模数据同步过程中的稳定性。 在具体实施过程中,还涉及到对分页和限流问题的解决。例如,当从汤臣倍健营销云读取多页结果时,需要精准控制分页逻辑,同时配合限流措施,从而维持网络请求平稳负载。这部分工作的成功实施有赖于详尽的信息反馈机制及实时监控功能,这些特性共同构筑起一个高可靠性的对接环境。 此外,两套系统之间的数据格式常存在差异,这就要求我们进行必要的数据映射和转换。在这个环节中,通过编写自定义脚本或使用现有工具,对不同字段进行对应调整,以适应各自系统要求,使得输入输出内容格式一致,进一步降低潜在异常风险。 最后,对于任何可能出现的问题,比如由于网络波动或其他原因导致的数据同步失败,可启用异常处理与错误重试流程,应及时捕捉异常事件,并采取二次尝试等措施以防止关键业务中断。这些综合手段最终确保“新版订单-出库单-(佰嘉)广州闽康”方案中的所有技术环节得到最优执行。 ![数据集成平台API接口配置](https://pic.qeasy.cloud/D4.png~tplv-syqr462i7n-qeasy.image) ### 调用汤臣倍健营销云接口获取并加工数据的技术案例 在数据集成生命周期的第一步中,我们需要调用源系统汤臣倍健营销云的接口`/api/openapi/v1/erp/order/honour/agreement/header`,以获取订单相关的数据,并进行初步的加工处理。本文将详细探讨这一过程中的技术细节和实现方法。 #### 接口调用与元数据配置 首先,我们需要根据提供的元数据配置来构建请求参数。以下是元数据配置的关键部分: ```json { "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 } ] } ] } ``` #### 数据转换与清洗 在进行数据转换时,我们需要特别注意以下几个关键字段: 1. **bill_date** - 出库日期,需要确保格式为`YYYY-MM-DD`。 2. **customer_id** - 客户ID,通过`_findCollection`函数从源数据中提取。 3. **material_entity** - 商品分录,这是一个数组类型,需要对每个商品进行详细的字段映射。 例如,对于`material_entity`中的每个商品,我们需要将源数据中的`extNo`、`quantity`、`price`等字段分别映射到目标API所需的字段中。 ```json { ... { field:"material_entity",... children:[ ... { field:"material_number", value:"{{details.extNo}}" }, { field:"qty", value:"{{details.quantity}}" }, { field:"tax_price", value:"{{details.price}}" }, ... ] } } ``` #### 数据写入目标平台 完成数据转换后,我们通过POST请求将处理后的数据发送至金蝶云星辰V2 API接口。以下是一个简化的请求示例: ```json { 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任务,并确保数据准确无误地写入目标系统。 ![如何对接金蝶云星空API接口](https://pic.qeasy.cloud/T29.png~tplv-syqr462i7n-qeasy.image)