ETL转换实战:轻易云平台整合汤臣倍健与金蝶云系统

  • 轻易云集成顾问-何语琴
### 汤臣倍健营销云数据集成到金蝶云星辰V2:新版订单-出库单(杭州汤臣倍健)的技术实战 在企业信息化过程中,确保不同系统之间的数据高效、可靠地对接是一项极具挑战性的任务。本文将分享一个实际运行的案例,新版订单-出库单(杭州汤臣倍健),详细讲解如何通过轻易云数据集成平台实现汤臣倍健营销云与金蝶云星辰V2的无缝对接。 #### 数据抓取及接口调用 为了保证数据不漏单且及时准确,我们首先从汤臣倍健营销云获取订单数据。其提供的数据API为`/api/openapi/v1/erp/order/honour/agreement/header`,该接口支持分页和限流。因此,在设计抓取流程时,我们充分考虑了这些特性,并设置定时任务以稳定频率进行数据抓取,从源头上避免遗漏。 ```json { "url": "/api/openapi/v1/erp/order/honour/agreement/header", "method": "GET", "headers": { "Content-Type": "application/json" }, "params": { "pageSize": 100, "pageNo": "{currentPage}" } } ``` #### 数据快速写入与映射处理 获得原始数据后,我们必须将其批量写入至金蝶云星辰V2的出库单模块,其对应的数据API是`/jdy/v2/scm/sal_out_bound`。由于两个系统的数据格式存在差异,这一步骤显得尤为关键。在映射过程中,通过配置字段对应关系,并利用脚本处理可能出现的不匹配问题,实现了顺利写入。 ```json { "url": "/jdy/v2/scm/sal_out_bound", "method": "POST", ... } ``` #### 异常处理与重试机制 在网络请求中,不可避免会遇到接口响应异常或暂时不可用的问题。为了提高整个流程的鲁棒性,我们针对每个步骤都设立了完善的异常捕获和错误重试机制。一旦出现错误,会记录日志并发起重试请求,以最大程度保障业务连续性。 #### 日志监控与实时监控 最后,为确保整个集成过程透明化,每个操作环节都进行了完整日志记录,同时借助实时监控功能,可以随时查看当前进展和历史执行情况。这不仅便于后续排查问题,也让业务方对整体流程有更直观的了解。 以上介绍仅为本次案例的一部分,具体实施细节将在下文逐步展开。在此基础上,各环节紧密衔接,共同构 ![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/D36.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":"1ead1e9ee336439aa28b6d8bfab6b884"}, {"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_FINANCE_AUDIT,WAIT_DELIVERY,PART_DELIVERY,ALL_DELIVERY,WAIT_OUT_STORAGE,PART_OUT_STORAGE,ALL_OUT_STORAGE,PART_CONFIRM,CONFIRM,AUDIT_SUCCESS,FINISH,CLOSE"}, {"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", ![如何对接用友BIP接口](https://pic.qeasy.cloud/S19.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现ETL转换并写入金蝶云星辰V2API接口 在数据集成过程中,将源平台的数据通过ETL(Extract, Transform, Load)转换为目标平台所能接受的格式是关键步骤。本文将详细探讨如何使用轻易云数据集成平台,将已集成的源平台数据转换为金蝶云星辰V2API接口所能接收的格式,并最终写入目标平台。 #### 数据请求与清洗 在进行ETL转换之前,首先需要从源系统中提取数据并进行初步清洗。这一步骤确保了数据的准确性和一致性,为后续的转换和写入奠定基础。假设我们已经完成了这一步骤,接下来将重点放在数据转换与写入上。 #### 数据转换与写入 为了将数据成功写入金蝶云星辰V2API接口,我们需要按照其要求对数据进行转换。以下是具体的元数据配置及其应用: 1. **API接口配置** ```json { "api": "/jdy/v2/scm/sal_out_bound", "effect": "EXECUTE", "method": "POST", "number": "id", "id": "id", "name": "id", "idCheck": true } ``` 该配置指定了API接口路径、请求方法以及主键字段等信息,是整个ETL过程的核心。 2. **请求参数配置** 请求参数是根据金蝶云星辰V2API接口要求定义的,以下是主要字段及其描述: - `bill_source`: 固定传入值`ISV`,表示单据来源。 - `bill_date`: 出库日期,格式为`YYYY-MM-DD`。 - `bill_no`: 单据编码。 - `customer_id`: 客户ID,通过查找表获取。 - `remark`: 单据备注。 - `contact_linkman`, `contact_phone`, `contact_address`: 联系信息。 - `dept_id`: 部门ID,固定值。 - `custom_field`: 自定义字段,这里包含一个营销云备注字段。 - `material_entity`: 商品分录,是一个数组,包含多个商品条目。 3. **商品分录字段** 商品分录字段较为复杂,需要特别注意每个子字段的配置: - `material_number`: 商品编号。 - `stock_id`: 仓库ID,固定值。 - `qty`: 数量,通过模板表达式获取。 - `unit_id`: 单位ID,通过查找表获取。 - `tax_price`: 含税单价,通过模板表达式获取。 - `is_free`: 是否赠品,默认值为`false`。 - `batch_no`, `kf_date`, `valid_date`, `kf_period`, `kf_type`: 批次信息、生产日期、有效日期、保质期天数和类型等信息。 - `dis_amount`: 折扣额,通过函数计算得出。 - `cess`: 税率。 4. **示例请求体** 下面是一个示例请求体,通过元数据配置生成: ```json { "bill_source": "ISV", "bill_date": "{{approveDt|date}}", "bill_no": "{no}", "customer_id": "_findCollection find id from b41660e7-fa00-318f-bbee-1395e229ee6b where number={clientAppNo}", "remark": "{remark}", "contact_linkman": "{contacts}", "contact_phone": "{phone}", "contact_address": "{shippingAddress}", "dept_id": "1320359370441120768", "custom_field": { "custom_field__1__2xietiob41d0jia2": "{no}" }, "material_entity": [ { "material_number": "{productNo}", "stock_id": "1320317674445628416", "qty": "{{details.quantity}}", "unit_id": "_findCollection find base_unit_id from 395d1591-aee0-3f10-ad09-d5593167af48 where number={{details.extNo}}", "tax_price": "{{details.basePrice}}", "is_free": false, "batch_no": "{{details._Flot}}", "kf_date": "{{details._Fmfg}}", "valid_date": "{{details._Fexp}}", "kf_period": 730, "kf_type": 1, "dis_amount": "_function ({basePrice} - {price}) * {quantity}", // 可选字段 // ... } // 更多商品条目 ] } ``` #### 实现步骤 1. **配置元数据** 在轻易云数据集成平台中,根据上述元数据配置创建相应的任务和流程。 2. **编写转换逻辑** 使用平台提供的可视化工具或脚本编写转换逻辑,将源数据映射到目标格式。例如,可以使用模板表达式处理日期、数量等字段。 3. **测试与验证** 在正式运行之前,对转换逻辑进行充分测试,确保所有字段都能正确映射并符合目标平台的要求。 4. **执行并监控** 启动任务并实时监控执行情况,确保数据能够顺利写入金蝶云星辰V2API接口。如果出现问题,可以及时调整和优化。 通过以上步骤,我们可以高效地将源平台的数据转化为金蝶云星辰V2API接口所能接受的格式,并成功写入目标系统。这不仅提升了业务流程的自动化程度,还确保了数据的一致性和准确性。 ![数据集成平台可视化配置API接口](https://pic.qeasy.cloud/T22.png~tplv-syqr462i7n-qeasy.image)