数据ETL转换:采购入库数据同步至金蝶云星空

  • 轻易云集成顾问-杨嫦
### 旺店通WMS数据集成到金蝶云星空:采购入库案例 在本次技术分享中,我们聚焦于将旺店通WMS中的采购入库数据流无缝对接至金蝶云星空平台。借助轻易云数据集成平台的强大功能,我们能够高效地处理大量的数据写入和实时监控,为企业业务流程提供有力保障。 首先,确保从旺店通WMS系统获取准确的采购入库数据是至关重要的一步。我们使用接口`sys.goods.owner.query`定时抓取所需信息,并针对分页和限流问题进行了优化,以保证不遗漏任何单据。在此过程中,通过实现批量请求机制,有效提升了接口调用效率。 处理从旺店通WMS获取的数据后,下一步便是进行与金蝶云星空的格式转换及校验。这一步尤为关键,因为两者之间存在明显的数据结构差异。在集成过程中,我们通过自定义映射规则,对字段进行精准匹配,使得源端数据可以顺利被目标系统识别和接受。 随后,将整理好的数据快速写入到金蝶云星空的平台上是核心环节之一。我们利用其API `batchSave`,结合并行处理及事务控制手段,大幅度提高了写入速度,同时保证了数据一致性。此外,还设置了一套完善的错误重试机制来应对异常情况,确保每一笔有效交易都能成功录入。 最后,我们持续关注整个流程的运行状况,通过详细日志记录、实时监控等方式全面掌握各环节状态。这不仅增强了对业务操作透明度,更加速了问题排查与修复周期。 这一整合方案,不仅解决了两个不同平台间的数据传输问题,还显著提升了系统整体运行效率,为企业运营奠定坚实基础。 ![系统集成平台API接口配置](https://pic.qeasy.cloud/D30.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通WMS接口sys.goods.owner.query获取并加工数据 在数据集成的生命周期中,第一步是调用源系统的API接口获取原始数据,并对其进行初步加工。本文将详细介绍如何使用轻易云数据集成平台调用旺店通WMS接口`sys.goods.owner.query`,并对获取的数据进行处理。 #### 接口调用配置 首先,我们需要配置元数据,以便正确调用旺店通WMS的API接口。以下是我们使用的元数据配置: ```json { "api": "sys.goods.owner.query", "method": "POST", "number": "short_name", "id": "owner_no", "idCheck": true, "condition": [ [ { "field": "entryOrder.entryOrderType", "logic": "like", "value": "CGRK" } ] ], "request": [ { "field": "sid", "label": "商家ID", "type": "string", "value": "1" } ] } ``` #### 数据请求与清洗 在这一步中,我们通过POST方法向`sys.goods.owner.query`接口发送请求。请求体包含了商家ID等必要参数。为了确保我们只获取到采购入库(CGRK)类型的数据,我们在条件中添加了相应的过滤逻辑。 ```json { "sid": "1", "entryOrder.entryOrderType": { "$like": "%CGRK%" } } ``` 通过上述请求,我们可以从旺店通WMS系统中获取到符合条件的数据。这些数据通常包括商品所有者的信息,如短名称(short_name)和所有者编号(owner_no)。 #### 数据转换与写入 一旦我们成功获取到原始数据,下一步就是对这些数据进行转换和写入操作。在这个过程中,我们需要确保每条记录都包含唯一的所有者编号(owner_no),并根据业务需求进行进一步的数据清洗和转换。 例如,如果我们需要将这些数据写入到另一个系统中,可以利用轻易云平台提供的可视化工具,对字段进行映射和转换。以下是一个简单的映射示例: ```json { "source_field": { "short_name": "<source_short_name>", "owner_no": "<source_owner_no>" }, "target_field": { "<target_short_name>": "<source_short_name>", "<target_owner_no>": "<source_owner_no>" } } ``` 在这个过程中,我们可以利用轻易云平台的实时监控功能,确保每个环节的数据流动和处理状态都清晰可见。如果出现任何异常情况,可以及时进行调整和修正。 #### 实践案例 假设我们需要将采购入库类型的数据从旺店通WMS系统导入到我们的ERP系统中。具体步骤如下: 1. **配置元数据**:如上所述,设置好API接口、请求方法、过滤条件等。 2. **发送请求**:通过POST方法向`sys.goods.owner.query`接口发送请求,获取符合条件的数据。 3. **数据清洗**:对返回的数据进行初步清洗,确保每条记录都包含必要的字段信息。 4. **字段映射**:根据目标系统的要求,对字段进行映射和转换。 5. **写入目标系统**:将处理后的数据写入到ERP系统中。 通过上述步骤,我们可以高效地实现不同系统间的数据无缝对接,提高业务透明度和效率。 以上就是使用轻易云数据集成平台调用旺店通WMS接口`sys.goods.owner.query`并加工数据的详细技术案例。希望这些内容能为您的实际操作提供有价值的参考。 ![打通钉钉数据接口](https://pic.qeasy.cloud/S1.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台:采购入库数据ETL转换至金蝶云星空API接口 在数据集成的生命周期中,将源平台的数据转换为目标平台可接收的格式是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台将采购入库数据转换并写入金蝶云星空API接口。 #### 元数据配置解析 元数据配置是实现数据转换和写入的核心。以下是关键字段及其配置解析: 1. **单据类型 (FBillTypeID)**: ```json {"field":"FBillTypeID","label":"单据类型","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"RKD01_SYS"} ``` 通过`ConvertObjectParser`将单据类型转换为金蝶云星空所需的格式。 2. **业务类型 (FBusinessType)**: ```json {"field":"FBusinessType","label":"业务类型","type":"string","value":"CG"} ``` 固定值“CG”表示采购业务类型。 3. **单据编号 (FBillNo)**: ```json {"field":"FBillNo","label":"单据编号","type":"string","value":"{{entryOrder.entryOrderId}}"} ``` 使用模板变量`{{entryOrder.entryOrderId}}`从源数据中获取单据编号。 4. **入库日期 (FDate)**: ```json {"field":"FDate","label":"入库日期","type":"string","value":"{{entryOrder.operateTime}}"} ``` 同样使用模板变量获取入库日期。 5. **收料组织 (FStockOrgId)**: ```json {"field":"FStockOrgId","label":"收料组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find FStockOrgId_FNumber from b6667d80-15cf-34e0-826f-4e4a06f0f1db where FBillNo={{entryOrder.entryOrderCode}}"} ``` 通过查询语句从源系统中查找对应的收料组织编号,并进行格式转换。 6. **采购组织 (FPurchaseOrgId)**、**供应商 (FSupplierId)**、**结算组织 (FSettleOrgId)** 等字段的配置类似,通过查询语句和格式转换器获取并转换相应的数据。 #### 明细信息处理 明细信息(FInStockEntry)包含多个子字段,每个子字段都需要进行相应的处理和转换: 1. **物料编码 (FMaterialId)**: ```json {"field":"FMaterialId","label":"物料编码","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{itemCode}","parent":"FInStockEntry"} ``` 将物料编码转换为目标系统所需的格式。 2. **实收数量 (FRealQty)**: ```json {"field":"FRealQty","label":"实收数量","type":"string","value":"{batch_actualQty}","parent":"FInStockEntry"} ``` 从源数据中获取实收数量。 3. **含税单价 (FTaxPrice)** 和 **税率(%) (FEntryTaxRate)**: ```json {"field":"FTaxPrice","label":"含税单价","type":"string","value":"_findCollection find FTaxPrice from b6667d80-15cf-34e0-826f-4e4a06f0f1db where FBillNo={{entryOrder.entryOrderCode}} FDetailEntity_FEntryID={{newOrderLines.orderLineNo}}"} {"field":"FEntryTaxRate","label":"税率(%)", "type": "string", "value": "_findCollection find FEntryTaxRate from b6667d80-15cf-34e0-826f-4e4a06f0f1db where FBillNo={{entryOrder.entryOrderCode}}"} ``` 通过查询语句获取含税单价和税率,并进行相应的格式处理。 4. **仓库 (FStockId)** 和其他批次相关信息(FLot、生产日期(FProduceDate)、有效期至(FEXPIRYDATE))等字段也需要进行类似的处理,确保每个字段的数据都符合目标系统要求。 #### 关联关系处理 关联关系(如源单表名、下推关系等)需要特别注意: ```json {"field": "FInStockEntry_Link_FSTableName", "label": "源单表名", "type": "string", "value": "T_PUR_ReceiveEntry", "parent": "FInStockEntry_Link"}, {"field": "FInStockEntry_Link_FRuleId", "label": "下推关系", "type": "string", "value": "PUR_ReceiveBill-STK_InStock", "parent": "FInStockEntry_Link"}, {"field": "FInStockEntry_Link_FSBillId", "label": "源单ID", "type": "string", "value": "_findCollection find FID from b6667d80-15cf-34e0-826f-4e4a06f0f1db where FBillNo={{entryOrder.entryOrderCode}}", "parent": "FInStockEntry_Link"}, {"field": "FInStockEntry_Link_FSId", "label": "表体ID", "type": "string", "value": "{orderLineNo}", "parent": "FInStockEntry_Link"} ``` 这些字段确保了目标系统能够正确识别和关联对应的源单信息,从而保证数据的一致性和完整性。 #### 执行操作 最后,通过以下配置执行保存操作并自动提交审核: ```json {"field": "FormId", "label": "业务对象表单Id", "type": "string", "value": "STK_InStock"}, {"field": "IsAutoSubmitAndAudit", "label": "提交并审核", "type": "bool", "value": true}, {"field": "Operation", "label": "执行的操作", "type": "string", "value": "Save"}, {"field": "IsVerifyBaseDataField", "label": "验证基础资料", "type": bool, value: true} ``` 这些配置确保了在数据写入后,自动执行提交并审核操作,简化了后续流程,提高了效率。 通过上述步骤,我们可以实现从源平台到金蝶云星空API接口的数据ETL转换,确保数据准确、高效地写入目标系统。 ![企业微信与OA系统接口开发配置](https://pic.qeasy.cloud/T30.png~tplv-syqr462i7n-qeasy.image)