轻易云平台ETL转换操作:退货入库数据写入金蝶云星辰V2

  • 轻易云集成顾问-胡秀丛
### 汤臣倍健营销云与金蝶云星辰V2的数据集成案例分享 在现代企业的运营中,高效、无缝的数据集成至关重要。本文将探讨汤臣倍健营销云数据如何精确无误地集成到金蝶云星辰V2,具体方案名称为“退货入库-广州闽康”。这一案例展示了通过轻易云数据集成平台实现从获取、处理到写入全流程的技术细节。 首先,我们需要解决的是如何确保从汤臣倍健营销云获取的订单数据不漏单,并且能够高效地写入金蝶云星辰V2。为了实现这个目标,采用了定时可靠抓取机制,通过调用`/erp/api/order/query/saleReturnOrder`接口周期性拉取退货订单数据。 其次,为应对大量数据的快速处理需求,我们设计了一套批量数据处理及平滑限流策略。这不仅保证了大规模订单的及时同步,也预防了因接口请求频繁而导致的数据丢失或系统崩溃。此外,通过分页处理和并发控制,相应接口实现高效的数据读取和传输。 接下来是针对API交互过程中的细节问题。例如,不同系统间的数据格式差异需要特别注意。在实际操作中,对每条获取的信息进行必要转换,以适配金蝶云星辰V2 API `/jdy/v2/scm/sal_in_bound` 的要求。同时,对于可能出现的异常情况,建立起一套完善的错误重试机制以及日志记录功能,以便实时监控和后续分析。这些措施共同保障了整个流程顺畅、高效、安全运行。 简而言之,通过上述步骤,无论是在数据抓取、转换还是写入过程中,都能全面提升各环节效率及准确率,为两套系统之间搭建起高性能且稳定的数据桥梁。 ![金蝶云星空API接口配置](https://pic.qeasy.cloud/D22.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统汤臣倍健营销云接口获取并加工数据 在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用汤臣倍健营销云的`/erp/api/order/query/saleReturnOrder`接口,获取并加工退货入库数据。 #### 接口配置与请求参数 首先,我们需要配置元数据以便正确调用API接口。以下是元数据配置的详细信息: ```json { "api": "/erp/api/order/query/saleReturnOrder", "effect": "QUERY", "method": "POST", "number": "number", "id": "id", "idCheck": true, "request": [ {"field":"tenantId","label":"经销商id","type":"string","describe":"经销商id(必填,营销云id)如:34cc4109705e4c058b7b3b0352e57d31","value":"xxx"}, {"field":"yxyNumber","label":"营销云销售订单号","type":"string","describe":"如:YD1215710122031701,传此参数时,其他时间状态等条件无效"}, {"field":"number","label":"系统订单号","type":"string","describe":"如:XOUT0000000293,传此参数时,其他时间状态等条件无效"}, {"field":"status","label":"订单状态","type":"string","describe":"0:未审核 1:已审核(已出库)","value":"1"}, {"field":"beginTime","label":"开始时间","type":"string","describe":"timeType为空或者0,基于创建时间查询,timeType为1,基于更新时间查询,格式:0000-00-00或0000-00-00 00:00:00,如果不传单号此字段必填","value":"{{LAST_SYNC_TIME|datetime}}"}, {"field":"endTime","label":"结束时间","type":"string","describe":"timeType为空或者0,基于创建时间查询,timeType为1,基于更新时间查询,格式:0000-00-00或0000-00-00 00:00:00,如果不传单号此字段必填","value":"{{CURRENT_TIME|datetime}}"}, {"field":"pageNo","label":"页码","type":"string","describe":"默认1","value":"1"}, {"field":"pageSize","label":"每页条数","type":"string","describe":"默认30","value":"30"}, {"field":"timeType","label":"时间段标志","type":"string","describe":"查询时间段标识,0:创建时间(默认),1:最后更新时间","value":"1"} ], "autoFillResponse": true } ``` #### 请求参数详解 1. **tenantId**: 经销商ID,是一个必填项,用于标识具体的经销商。 2. **yxyNumber**: 营销云销售订单号,当提供此参数时,其它时间和状态条件将被忽略。 3. **number**: 系统订单号,同样地,当提供此参数时,其它条件将被忽略。 4. **status**: 订单状态,这里我们设置为`1`表示已审核(已出库)。 5. **beginTime**和**endTime**: 查询的起始和结束时间,根据`timeType`来决定是基于创建时间还是更新时间进行查询。 6. **pageNo**和**pageSize**: 分页参数,用于控制每次请求返回的数据量。 7. **timeType**: 时间段标志,用于指定查询的时间类型。 #### 数据请求与清洗 在完成元数据配置后,我们可以通过轻易云平台发起POST请求来获取退货入库数据。以下是一个示例请求体: ```json { "tenantId": "34cc4109705e4c058b7b3b0352e57d31", "status": "1", "beginTime": "{{LAST_SYNC_TIME|datetime}}", "endTime": "{{CURRENT_TIME|datetime}}", "pageNo": "1", "pageSize": "30", "timeType": "1" } ``` 通过这个请求,我们可以从汤臣倍健营销云获取到符合条件的退货入库订单数据。接下来,我们需要对这些原始数据进行清洗和转换,以便后续的数据处理和写入。 #### 数据清洗与转换 在轻易云平台上,可以使用内置的数据清洗工具对返回的数据进行处理。例如: - **字段映射**:将API返回的数据字段映射到目标系统所需的字段。例如,将`number`映射到目标系统中的订单编号字段。 - **数据格式转换**:将日期格式统一转换为目标系统所需的格式。 - **过滤无效数据**:去除不符合业务规则的数据,例如缺少关键字段的数据记录。 通过这些步骤,我们可以确保从源系统获取的数据是干净且符合业务需求的,为后续的数据写入打下坚实基础。 #### 实时监控与调试 在整个过程中,通过轻易云平台提供的实时监控功能,可以随时查看数据流动和处理状态。如果出现问题,可以利用平台提供的调试工具进行排查和修正,从而保证数据集成过程的顺利进行。 以上就是调用汤臣倍健营销云接口获取并加工退货入库数据的详细技术方案。通过合理配置元数据、精确构建请求参数以及有效进行数据清洗与转换,可以确保高效、准确地完成这一关键步骤。 ![如何对接钉钉API接口](https://pic.qeasy.cloud/S21.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台ETL转换配置案例:退货入库-广州闽康 在数据集成过程中,将源平台的数据转换为目标平台所能接收的格式是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台,将退货入库数据转换并写入金蝶云星辰V2 API接口。 #### 数据请求与清洗 首先,我们从源平台获取原始数据,并进行必要的清洗和预处理。此步骤确保数据质量,为后续的ETL(Extract, Transform, Load)过程打下基础。 #### 数据转换与写入 在本案例中,目标平台为金蝶云星辰V2,API接口路径为`/jdy/v2/scm/sal_in_bound`,采用POST方法提交数据。以下是具体的元数据配置及其解释: ```json { "api": "/jdy/v2/scm/sal_in_bound", "effect": "EXECUTE", "method": "POST", "number": "id", "id": "id", "name": "id", "idCheck": true, "request": [ { "field": "bill_source", "label": "来源", "type": "string", "value": "ISV" }, { "field": "bill_date", "label": "出库日期", "type": "string", "describe": "出库日期,格式:2019-01-01", "value": "{{auditTime|date}}" }, { "field": "customer_id", ... } ] } ``` ##### 核心字段解析 1. **bill_source**: 固定值"ISV",表示单据来源。 2. **bill_date**: 使用模板语法`{{auditTime|date}}`,将源数据中的审核时间转换为目标格式。 3. **customer_id**: 利用 `_findCollection` 函数,从特定集合中查找客户ID。 4. **remark**: 拼接字符串,包括备注信息和营销云单号。 5. **contact_address**, **contact_linkman**, **contact_phone**: 分别对应联系信息中的详细地址、联系人和联系方式。 ##### 商品分录(material_entity) 商品分录字段是一个数组,每个元素包含多个子字段: 1. **material_id**: 使用 `_findCollection` 函数查找商品ID。 2. **stock_id**: 固定值"1545740308606650368",表示仓库ID。 3. **qty**: 数量字段,使用模板语法 `{{itemList.opernumber}}` 提取。 4. **tax_price**: 含税单价,使用模板语法 `{{itemList.taxunitprice}}` 提取。 5. **is_free**: 固定值false,表示非赠品。 6. **unit_id**: 使用 `_findCollection` 函数查找单位ID。 7. **batch_no**, **comment**, **kf_date**, **valid_date**: 分别对应批次号、行备注、生产日期和有效日期,均使用模板语法提取。 ##### 自定义字段(custom_field) 自定义字段部分允许添加特定业务需求的额外信息,例如营销云单号: ```json { ... { "field": "custom_field__1__2uvgtgp4lsdr", "label": "营销云单号", "type": "string", "value": "{number}" } } ``` #### 实际操作步骤 1. 配置API接口路径和请求方法: ```json { ... "api": "/jdy/v2/scm/sal_in_bound", ... "method": "POST" } ``` 2. 设置请求体参数: ```json { ... { ... {"field":"bill_source","label":"来源","type":"string","value":"ISV"}, {"field":"bill_date","label":"出库日期","type":"string","describe":"出库日期,格式:2019-01-01","value":"{{auditTime|date}}"}, ... } } ``` 3. 配置商品分录数组: ```json { ... {"field":"material_entity","label":"商品分录","type":"array","describe":"商品分录","value":"itemList","children":[ {"field":"material_id","label":"商品id","type":"string","describe":"商品id","value":"_findCollection find id from ..."}, {"field":"stock_id","label":"仓库id","type":"string","describe":"仓库id","value":"1545740308606650368"}, ... ]} } ``` 通过上述配置,我们能够实现源平台到金蝶云星辰V2 API接口的数据无缝对接。该过程不仅确保了数据的准确性,还提高了业务处理效率。 ![金蝶与外部系统打通接口](https://pic.qeasy.cloud/T19.png~tplv-syqr462i7n-qeasy.image)