使用轻易云实现T+销售出库单到吉客云的ETL转换

  • 轻易云集成顾问-吴伟
### 畅捷通T+数据集成到吉客云的技术案例分享 在本案例中,我们将详解如何通过轻易云数据集成平台,实现畅捷通T+销售出库单无缝对接至吉客云。在复杂且庞大的业务需求中,确保数据的不漏单、大量数据的快速写入,以及定时、可靠的数据抓取显得尤为重要。 我们的解决方案名为:**T+销售出库单--->吉客云销售出库单-新【蓝字】-好**。这个方案不仅仅是一个简单的数据搬运过程,而是一整套系统化、标准化的数据处理流程。(此处可以简要提及生命周期管理) 首先,我们需要稳定获取畅捷通T+的数据接口。使用其提供的API: `/tplus/api/v2/SaleDispatchOpenApi/FindVoucherList`,我们能够定期抓取最新的销售出库单。同时,通过灵活配置自动重试机制和分页限流策略,有效处理可能出现的网络波动和接口调用限制问题。 在成功获取到畅捷通T+的数据后,将这些数据信息迁移至吉客云同样不可掉以轻心。由于两者采用不同的数据格式,轻易云提供了强大的映射与转换工具,将原始数据进行适配并写入至吉客云对应字段。这一步骤主要通过调用吉客云相应的API: `erp.storage.stockoutcreate` 来实现。 此外,为了保障整个集成过程中的高效性与可靠性,我们还利用实时监控和日志记录功能,对每个操作环节进行全程追踪。一旦检测到异常情况,即刻触发错误重试机制,以最大程度减少人工干预,提高业务连续性。 以上就是本次技术案例开头部分内容。在接下来的章节中,我们将详细探讨具体实现步骤,以及各种具体问题如接口分页、限流以及异常处理等方面的解决方案。 ![金蝶与WMS系统接口开发配置](https://pic.qeasy.cloud/D32.png~tplv-syqr462i7n-qeasy.image) ### 调用畅捷通T+接口获取并加工数据的技术案例 在数据集成生命周期的第一步,我们需要调用源系统畅捷通T+接口`/tplus/api/v2/SaleDispatchOpenApi/FindVoucherList`来获取并加工数据。本文将详细探讨如何配置和使用该接口,确保数据顺利从源系统提取并进行初步清洗和转换。 #### 接口配置与调用 首先,我们需要了解接口的基本配置参数: - **API路径**: `/tplus/api/v2/SaleDispatchOpenApi/FindVoucherList` - **请求方法**: `POST` - **主要字段**: - `selectFields`: 查询字段,指定需要返回的字段列表。 - `pageIndex`: 页码索引,用于分页查询。 - `pageSize`: 每页返回记录数,通常设置为100。 - `paramDic_1`: 参数字典1,用于传递动态参数,如同步时间等。 - `paramDic_2`: 参数字典2,用于传递固定参数,如仓库ID等。 以下是元数据配置示例: ```json { "api": "/tplus/api/v2/SaleDispatchOpenApi/FindVoucherList", "effect": "QUERY", "method": "POST", "number": "Code", "id": "Code", "idCheck": true, "request": [ { "field": "selectFields", "label": "查询字段", "type": "string", "describe": "部门编码", "value": "VoucherCode,CustomerCode,WarehouseCode,Inventory,InventoryCode,Specification,Unit,Quantity" }, { "field": "pageIndex", "label": "pageIndex", "type": "string", "describe": "部门名称" }, { "field": "pageSize", "label": "pageSize", "type": "string", "describe": "指定返回字段", "value": "100" }, { "field": "paramDic_1", ... ``` #### 数据请求与清洗 在请求数据时,我们需要特别注意以下几点: 1. **分页处理**:由于数据量可能较大,需要通过分页方式逐步获取。设置`pageIndex`和`pageSize`参数,确保每次请求返回100条记录。 2. **动态参数**:使用`paramDic_1`中的动态参数,如同步时间,可以确保只获取自上次同步以来的新数据。示例如下: ```json { ... { "field": 'paramDic_1', 'children': [ {"field":"key","value":"RDRecord__AuditedDate"}, {"field":"value","value":"{{LAST_SYNC_TIME|date}},{{CURRENT_TIME|date}}"} ] } ... } ``` 3. **固定参数**:使用`paramDic_2`中的固定参数,如仓库ID,确保只获取特定仓库的数据。示例如下: ```json { ... { 'field': 'paramDic_2', 'children': [ {"field":"key","value":"Warehouse__ID"}, {"field":"value","value":"2,1"} ] } ... } ``` #### 数据转换与写入 在获取到原始数据后,需要对其进行初步清洗和转换,以便后续处理。以下是一些常见的数据清洗操作: 1. **过滤无效记录**:根据条件过滤掉无效记录。例如,只保留数量大于0且库存编码在指定范围内的记录: ```json { 'condition': [ [ {"field":"RDRecordDetails.Quantity","logic":"gt","value":"0"}, {"field":"RDRecordDetails.InventoryCode","logic":"in","value":"050301CMP-11-001,..."} ] ] } ``` 2. **字段映射与重命名**:将原始字段映射到目标系统所需的字段,并进行必要的重命名。例如,将`VoucherCode`映射为目标系统中的订单编号。 3. **数据格式转换**:根据目标系统要求,对日期、数字等字段进行格式转换。 #### 实际案例应用 假设我们需要将畅捷通T+中的销售出库单数据集成到吉客云中,具体步骤如下: 1. **配置接口请求**:按照上述元数据配置,设置好查询字段、分页参数和动态、固定参数。 2. **发送请求并接收响应**:通过轻易云平台发送POST请求,接收并解析响应数据。 3. **初步清洗与转换**:根据业务需求过滤无效记录,并进行必要的字段映射和格式转换。 4. **写入目标系统**:将清洗后的数据写入吉客云系统,实现销售出库单的数据同步。 通过以上步骤,我们可以高效地完成从畅捷通T+到吉客云的数据集成,为企业业务流程提供可靠的数据支持。 ![打通企业微信数据接口](https://pic.qeasy.cloud/S11.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现T+销售出库单到吉客云销售出库单的ETL转换 在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL转换,并将其转为目标平台吉客云API接口所能够接收的格式,最终写入目标平台。以下是详细的技术实施步骤和元数据配置说明。 #### 1. API接口配置 我们使用的API接口为`erp.storage.stockoutcreate`,这是一个POST请求,用于创建吉客云销售出库单。该接口要求我们提供多个字段的数据,包括仓库编码、出库类型、关联单据编号等。以下是具体的元数据配置: ```json { "api": "erp.storage.stockoutcreate", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "outWarehouseCode", "label": "仓库编码", "type": "string", "describe": "仓库编码", "value": "{{Warehouse.Code}}" }, { "field": "outType", "label": "出库类型", "type": "string", "describe": "入库类型 101=采购入库 102=调拨入库 103=盘盈入库 104=其他入库", "value": "204" }, { "field": "relDataId", "label": "关联单据编号", "type": "string", "describe": "可随机,保证不重复即可", "value": "{Code}" }, { "field": "applyDate", "label": "申请出库时间", "type": "string", "describe": "申请时间", "value": "{AuditedDate}" }, { "field": "memo", ... ``` #### 2. 数据字段映射 在进行ETL转换时,我们需要确保源平台的数据字段能够正确映射到目标平台所需的字段。以下是一些关键字段的映射关系: - `outWarehouseCode` 映射到 `{{Warehouse.Code}}` - `relDataId` 映射到 `{Code}` - `applyDate` 映射到 `{AuditedDate}` - `memo` 映射到 `销售出库单-{Code}` 这些映射关系确保了源平台的数据能够准确地转换为目标平台所需的数据格式。 #### 3. 出库申请单明细配置 对于出库申请单明细,我们需要处理的是一个数组类型的数据,其中每个明细项都包含多个子字段,如货品编号、条形码、出库数量等。以下是详细配置: ```json { ... { ... { ... }, { ... }, { ... }, { ... }, { ... }, { ... { ... } ], ... } } ``` #### 4. 批次信息集合配置 批次信息集合是一个嵌套对象,包含货品批号、生产日期、质保期等信息。这些信息需要从源平台的数据中提取并转换为目标平台所需的格式: ```json { ... { ... { ... } ], ... } ``` #### 5. 数据清洗与转换 在数据清洗与转换阶段,我们需要对源数据进行必要的清洗操作,以确保数据质量。例如,对日期格式进行标准化处理,对字符串进行修剪等。同时,还要根据业务需求对某些字段进行值替换或计算。 #### 6. 数据写入目标平台 完成所有数据清洗与转换后,我们使用配置好的API接口将数据写入目标平台吉客云。这个过程包括发送HTTP POST请求,并处理返回结果以确保数据成功写入。 通过以上步骤,我们实现了从T+销售出库单到吉客云销售出库单的ETL转换,确保了不同系统间的数据无缝对接和高效传输。这一过程不仅提高了业务透明度和效率,还保证了数据的一致性和准确性。 ![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/T1.png~tplv-syqr462i7n-qeasy.image)