如何通过轻易云完成ETL转换并写入吉客云

  • 轻易云集成顾问-钟家寿
### 畅捷通T+数据集成到吉客云:采购入库单对接案例 在本次技术案例我们将详细探讨一个实际运行的系统对接项目:如何通过轻易云平台,将畅捷通T+中的采购入库单数据【蓝字】高效、可靠地集成到吉客云,完成入库单的创建。该方案实际旨在解决企业在多系统管理下的数据交互难题,并保障数据处理的实时性与精确性。 首先,我们利用畅捷通T+提供的API接口`/tplus/api/v2/PurchaseReceiveOpenApi/FindVoucherList`来抓取采购入库单的数据。这一步必须确保数据不漏单,同时需要考虑分页和限流问题,以避免因大量请求导致系统性能下降。在轻易云的平台上,使用可视化的数据流设计工具,使得这一过程清晰且易于管理。 紧接着,通过自定义转换逻辑,我们将获取的数据结构进行必要调整,以适应吉客云所需格式。这其中还涉及了处理两者之间可能存在的数据字段差异,以及任何特殊业务需求。然后,通过调用吉客云写入数据的API `erp.storage.stockincreate`,实现批量快速地将转化后的资料写入到目标系统中。 此外,为确保整个数据集成流程透明且无遗漏,建立起一套有效的监控和告警机制至关重要。通过集中监控实时跟踪任务状态及性能,一旦发现异常情况能够及时告警并处理。例如,对于失败操作可以设定自动重试机制,从而减少人为介入,提高整体效率与稳定性。 这样的配置不仅提升了企业在多系统环境下的信息同步能力,更优化了业务流程和资源调配,有效支持决策制定和运营管理。本节讲述的方法不仅具有高度实用性,还展示出了基于轻易云平台完成复杂系统集成的一些关键技术细节与最佳实践经验。 更多具体实施步骤将在后续章节中详述,包括API调取、分页策略、错误防护以及映射规则等内容,以此为大家提供更全面、更具指导意义的参考示例。 ![金蝶云星空API接口配置](https://pic.qeasy.cloud/D30.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台调用畅捷通T+接口获取采购入库单数据 在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台,调用畅捷通T+的`/tplus/api/v2/PurchaseReceiveOpenApi/FindVoucherList`接口获取采购入库单数据,并对其进行初步加工。 #### 接口配置与请求参数 首先,我们需要配置接口的元数据,以便正确调用并获取所需的数据。以下是元数据配置的详细信息: ```json { "api": "/tplus/api/v2/PurchaseReceiveOpenApi/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": "50" }, { "field": "paramDic_1", ... ``` #### 请求参数详解 1. **selectFields**: 指定需要查询的字段,包括`VoucherCode`(凭证号)、`CustomerCode`(客户编码)、`WarehouseCode`(仓库编码)、`Inventory`(存货)、`InventoryCode`(存货编码)、`Specification`(规格型号)、`Unit`(单位)和`Quantity`(数量)。 2. **pageIndex**: 用于分页查询,指定当前页码。 3. **pageSize**: 每页返回的数据条数,这里设置为50。 4. **paramDic_1**: 包含两个键值对: - `key`: 设置为"RDRecord__AuditedDate",用于过滤审核日期。 - `value`: 动态设置为上次同步时间和当前时间,格式为"{{LAST_SYNC_TIME|date}},{{CURRENT_TIME|date}}" 5. **paramDic_2**: 包含两个键值对: - `key`: 设置为"Warehouse__ID",用于过滤仓库ID。 - `value`: 固定值为"1"。 #### 数据请求与清洗 在发送请求后,我们将收到一个包含多个采购入库单记录的响应。为了确保数据质量和一致性,需要对返回的数据进行清洗和初步处理。例如,我们可以根据业务需求过滤掉数量为零的记录: ```json "condition":[ [ { "field":"RDRecordDetails.Quantity", ... ``` 此条件表示只保留数量大于零的记录,从而保证了有效数据的准确性。 #### 数据转换与写入 在完成数据请求与清洗后,下一步是将清洗后的数据转换并写入目标系统。在本案例中,目标系统是吉客云,通过创建相应的入库单来实现数据对接。具体步骤包括: 1. **数据映射**:将从畅捷通T+获取的数据字段映射到吉客云所需的字段格式。 2. **API调用**:使用吉客云提供的API接口,将处理后的数据写入到吉客云系统中。 通过上述步骤,我们可以实现从畅捷通T+到吉客云的数据无缝对接,有效提升业务流程的自动化程度和效率。 #### 总结 本文详细介绍了如何使用轻易云数据集成平台调用畅捷通T+接口获取采购入库单数据,并对其进行初步加工。通过合理配置元数据和请求参数,可以高效地实现不同系统间的数据集成,为企业的信息化建设提供有力支持。 ![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/S8.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入吉客云API接口 在数据集成生命周期的第二步中,我们将已经集成的源平台数据进行ETL转换,并转为目标平台吉客云API接口所能够接收的格式,最终写入目标平台。以下是具体的技术实现过程。 #### API接口配置 首先,我们需要配置吉客云API接口`erp.storage.stockincreate`,该接口用于创建入库单。根据提供的元数据配置,我们需要传递以下字段: - `inWarehouseCode`:仓库编码 - `inType`:入库类型(101=采购入库) - `relDataId`:关联单据编号 - `applyDate`:申请入库时间 - `memo`:备注信息 - `source`:固定值"OPEN" - `stockInDetailViews`:入库申请单明细 #### 数据映射与转换 我们需要将源平台的数据字段映射到目标平台所需的字段。以下是具体的映射关系和转换逻辑: 1. **仓库编码** (`inWarehouseCode`) - 来源字段:`RDRecordDetails.WarehouseCode` - 转换方式:直接映射 2. **入库类型** (`inType`) - 固定值:101(采购入库) 3. **关联单据编号** (`relDataId`) - 来源字段:`Code` - 转换方式:保证唯一性即可 4. **申请入库时间** (`applyDate`) - 来源字段:`AuditedDate` - 转换方式:直接映射 5. **备注信息** (`memo`) - 固定格式:"采购入库单-{Code}" - 转换方式:字符串拼接 6. **固定值** (`source`) - 固定值:"OPEN" 7. **入库申请单明细** (`stockInDetailViews`) - 该字段是一个数组,需要处理多个子字段: - 货品编号 (`goodsNo`) 映射自 `RDRecordDetails.InventoryCode` - 条形码 (`skuBarcode`) 映射自 `RDRecordDetails.InventoryCode + RDRecordDetails.freeitem0 + RDRecordDetails.freeitem1` - 入库数量 (`skuCount`) 映射自 `RDRecordDetails.Quantity` - 是否正品 (`isCertified`) 固定值:"1" - 批次信息集合 (`batchList`) 包含以下子字段: - 货品批号 (`batchNo`) 映射自 `RDRecordDetails.Batch` - 生产日期 (`productionDate`) 映射自 `RDRecordDetails.ProductionDate` - 质保期单位支持(年、月、天)(`shelfLiftUnit`) 映射自 `RDRecordDetails.InventoryExpiredUnit` - 到期时间 (`expirationDate`) 映射自 `RDRecordDetails.ExpiryDate` #### JSON请求体构建 根据上述映射关系,我们可以构建出符合吉客云API接口要求的JSON请求体。以下是一个示例: ```json { "api": "erp.storage.stockincreate", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": { "inWarehouseCode": "{{RDRecordDetails.WarehouseCode}}", "inType": "101", "relDataId": "{Code}", "applyDate": "{AuditedDate}", "memo": "采购入库单-{Code}", "source": "OPEN", "stockInDetailViews": [ { "goodsNo": "{{RDRecordDetails.InventoryCode}}", "skuBarcode": "{{RDRecordDetails.InventoryCode}}{{RDRecordDetails.freeitem0}}{{RDRecordDetails.freeitem1}}", "relDetailId": "", "skuCount": "{{RDRecordDetails.Quantity}}", "isCertified": "1", "skuPrice": "", "totalAmount": "", "batchList": { "batchNo": "{{RDRecordDetails.Batch}}", "productionDate": "{{RDRecordDetails.ProductionDate}}", "shelfLife": "", "shelfLiftUnit": "{{RDRecordDetails.InventoryExpiredUnit}}", "expirationDate": "{{RDRecordDetails.ExpiryDate}}" } } ] } } ``` #### 数据写入目标平台 最后一步,将构建好的JSON请求体通过HTTP POST方法发送到吉客云API接口,实现数据写入目标平台。在轻易云数据集成平台中,可以通过配置HTTP请求节点来完成这一操作。 通过上述步骤,我们实现了从源平台到目标平台的数据ETL转换和写入,确保数据在不同系统间的无缝对接和高效流转。 ![用友与CRM系统接口开发配置](https://pic.qeasy.cloud/T23.png~tplv-syqr462i7n-qeasy.image)