轻易云ETL转换与金蝶API集成方案详解

  • 轻易云集成顾问-黄宏棵
### 案例分享:旺店通·企业奇门数据集成到金蝶云星空 在这一案例中,我们将详细探讨如何高效地将旺店通·企业奇门的数据集成至金蝶云星空,具体实现流程包括了从获取仓库入库单数据到批量写入目标系统的步骤。案例实际运用方案为“旺店通入库单-金蝶其他入库单【其他入库】”。为了确保整个集成过程顺利进行,我们会着重解决以下几个关键技术问题: 首先,将通过调用旺店通·企业奇门提供的API接口 `wdt.stockin.order.query` 实现定时抓取所需的库存数据。这个过程中,需要特别留意分页和限流机制,以确保不会遗漏任何一条重要的数据记录。同时,为了提高效率,大量数据需要快速且批量地写入到金蝶云星空,这里我们使用的是 `batchSave` API。 另一个挑战是处理两个系统之间的数据格式差异。由于旺店通与金蝶云星空采用的字段和标准不尽相同,必须开展细致的数据映射工作,以保证无缝对接。此外,在此过程中,对异常情况做出适当应对也十分重要,比如出现网络中断或接口响应超时时,需要有健全的错误处理与重试机制。 实时监控和日志记录功能则为整个集成过程提供可靠保障,使得每步操作都清晰可见,并能够及时发现并解决潜在问题。这些技术手段不仅提升了业务透明度,还显著提高了整体运作效率。 接下来,我们会详述每个环节中的具体实现方法及注意事项,有助于读者更好地理解该案例中的核心技术及其应用场景。 ![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/D21.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据的技术案例 在轻易云数据集成平台中,调用源系统接口并进行数据清洗和转换是数据集成生命周期的关键步骤之一。本文将深入探讨如何通过调用旺店通·企业奇门接口`wdt.stockin.order.query`来获取并加工入库单数据。 #### 接口调用配置 首先,我们需要配置接口调用的元数据。根据提供的元数据配置,我们可以看到以下关键参数: - **API**: `wdt.stockin.order.query` - **请求方法**: `POST` - **主要字段**: - `start_time`: 按最后修改时间增量获取数据的开始时间 - `end_time`: 按最后修改时间增量获取数据的结束时间 - `order_type`: 源单据类别,6表示其他入库 - `status`: 入库单状态,80表示已完成 - `warehouse_no`: 仓库编号,用于指定仓库 - `src_order_no`: 上层单据编号(可选) - `stockin_no`: 入库单号(可选) 此外,还有分页参数`page_size`和`page_no`,用于控制每页返回的数据条数和页号。 #### 请求参数构建 为了实现按时间增量获取数据,我们需要动态设置`start_time`和`end_time`。在轻易云平台中,可以使用模板变量来替代实际值,例如: ```json { "start_time": "{{LAST_SYNC_TIME|datetime}}", "end_time": "{{CURRENT_TIME|datetime}}", "order_type": "6", "status": "80", "warehouse_no": "02", "page_size": "50", "page_no": "0" } ``` 上述请求参数中,`LAST_SYNC_TIME`和`CURRENT_TIME`分别代表上次同步时间和当前时间,通过这些参数可以实现增量同步。 #### 数据过滤与清洗 在获取到原始数据后,需要对其进行过滤与清洗。根据元数据配置中的条件,我们可以设置以下过滤逻辑: - 排除入库原因为“生产”的记录 - 包含仓库名称为“七遇”或“百媚”的记录 - 或者仓库编号等于“02” 具体的过滤条件如下: ```json [ {"field":"stockin_reason","logic":"notlike","value":"生产"}, {"field":"warehouse_name","logic":"like","value":"七遇"} ], [ {"field":"stockin_reason","logic":"notlike","value":"生产"}, {"field":"warehouse_name","logic":"like","value":"百媚"} ], [ {"field":"stockin_reason","logic":"notlike","value":"生产"}, {"field":"warehouse_no","logic":"eqv2","value":"02"} ] ``` 这些条件可以通过编写相应的过滤规则在轻易云平台中实现。 #### 数据转换与写入 在完成数据清洗后,需要将处理后的数据转换为目标系统所需的格式,并写入目标系统。在本案例中,目标系统是金蝶其他入库单。我们需要将旺店通的数据字段映射到金蝶系统对应的字段。例如: - 旺店通入库单号 -> 金蝶入库单号 - 旺店通仓库编号 -> 金蝶仓库编号 - 旺店通商品信息 -> 金蝶商品信息 通过轻易云平台提供的数据转换功能,可以方便地实现字段映射和格式转换。 #### 实时监控与日志记录 为了确保数据集成过程的透明度和可靠性,轻易云平台提供了实时监控和日志记录功能。在接口调用、数据清洗、转换及写入过程中,可以实时监控每个环节的数据流动和处理状态,并记录详细日志以便于问题排查和性能优化。 通过以上步骤,我们可以高效地调用旺店通·企业奇门接口获取并加工入库单数据,实现与金蝶系统的数据无缝对接。这不仅提升了业务流程的自动化程度,也确保了数据处理过程的透明度和可靠性。 ![钉钉与WMS系统接口开发配置](https://pic.qeasy.cloud/S15.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台ETL转换与金蝶云星空API接口集成技术案例 在数据集成生命周期的第二步,重点是将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将深入探讨如何通过轻易云数据集成平台实现这一过程。 #### 元数据配置解析 元数据配置是实现ETL转换和数据写入的关键。以下是一个详细的元数据配置示例: ```json { "api": "batchSave", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 1, "method": "batchArraySave" }, "request": [ { "field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号", "value": "{order_no}" }, { ... } ], ... } ``` #### 数据字段映射与转换 1. **单据编号(FBillNo)** - 配置:`"value": "{order_no}"` - 描述:将源系统中的订单编号映射到金蝶系统中的单据编号字段。 2. **单据类型(FBillTypeID)** - 配置:`"value": "QTRKD01_SYS"` - 描述:固定值,表示其他入库单类型。 - 转换器:`ConvertObjectParser`用于将内部编码转换为金蝶系统识别的编码。 3. **库存组织(FStockOrgId)** - 配置:`"value": "{warehouse_no}"` - 描述:根据仓库编号映射到库存组织。 - 转换器:同样使用`ConvertObjectParser`进行编码转换。 4. **日期(FDate)** - 配置:`"value": "{{stockin_time|datetime}}"` - 描述:将入库时间格式化为金蝶系统要求的日期格式。 5. **部门(FDEPTID)** - 配置:复杂逻辑映射,根据不同仓库编号映射到不同部门编码。 - 示例: ```sql case when '{warehouse_no}' = '07' then '006' when '{warehouse_no}' = '06' then '006' ... end ``` 6. **货主类型与货主(FOwnerTypeIdHead, FOwnerIdHead)** - 配置: ```json {"field":"FOwnerTypeIdHead","value":"BD_OwnerOrg"} {"field":"FOwnerIdHead","value":"100"} ``` - 描述:固定值,表示货主类型和货主编码。 #### 明细信息字段映射 明细信息(FEntity)包含多个子字段,每个子字段需要分别进行映射和转换: 1. **物料编码(FMATERIALID)** - 配置:`"value":"{{details_list.spec_no}}"` - 描述:将物料规格号映射到物料编码。 2. **实收数量(FQty)** - 配置:`"value":"{{details_list.goods_count}}"` - 描述:将商品数量映射到实收数量。 3. **收货仓库(FSTOCKID)** - 配置:`"value":"{warehouse_no}"` - 描述:同样使用仓库编号进行映射。 4. **备注(FEntryNote)** - 配置:`"value":"{{detail_list.remark}}"` - 描述:将备注信息从源系统传递到目标系统。 #### API调用配置 - **业务对象表单Id**: `"FormId":"STK_MISCELLANEOUS"` - **验证基础资料**: `"IsVerifyBaseDataField":true` - **执行操作**: `"Operation":"Save"` - **提交并审核**: `"IsAutoSubmitAndAudit":true` 这些配置确保了在调用API时,所有必要的信息都被正确传递,并且在提交后自动进行审核,提高了流程的自动化程度。 #### 实践应用 通过上述元数据配置,我们可以实现从旺店通入库单到金蝶其他入库单的数据转换和写入。具体步骤如下: 1. 在轻易云平台上创建新的数据集成任务。 2. 导入上述元数据配置文件。 3. 设置源平台和目标平台连接信息。 4. 执行ETL任务,监控日志确保数据成功写入金蝶云星空。 通过这种方式,我们可以高效地完成异构系统间的数据集成,实现业务流程的无缝衔接。 ![钉钉与ERP系统接口开发配置](https://pic.qeasy.cloud/T23.png~tplv-syqr462i7n-qeasy.image)