ETL过程与金蝶云星空API接口集成的实战案例

  • 轻易云集成顾问-胡秀丛
### 案例分享:旺店通调拨出库-金蝶直接调拨单 在此次技术案例中,我们将重点介绍如何通过系统对接实现旺店通·企业奇门数据与金蝶云星空的无缝集成,具体实现方案是“旺店通调拨出库-金蝶直接调拨单”。 首先,我们需要从旺店通·企业奇门获取相关的数据,API接口为`wdt.stockout.order.query`。这一接口能够高效地抓取到所有需要处理的订单信息。在这个过程中,为了确保数据不漏单,并能按时按量可靠地进行读取,需要配置定时任务并妥善处理分页和限流问题。 为了应对可能存在的大量数据写入需求,我们使用了金蝶云星空提供的`batchSave` API,通过批量操作大幅提升了数据写入效率。此外,考虑到两套系统之间存在的数据格式差异,我们采用定制化的数据映射逻辑,以确保转换后的数据能够被金蝶云星空正确识别和存储。 整个集成流程还包括实时监控与日志记录,这不仅可以追踪每一个环节的执行情况,还能在发生异常时及时响应。对于常见的对接异常,通过设置错误重试机制可以显著提高整体运行的稳定性。 本文将逐步详细阐述各个技术细节,包括如何调用API、处理分页与限流、以及定制化映射配置等关键步骤,以及解决过程中遇到的问题和最终效果展示。 ![轻易云数据集成平台金蝶集成接口配置](https://pic.qeasy.cloud/D37.png~tplv-syqr462i7n-qeasy.image) ### 使用旺店通·企业奇门接口wdt.stockout.order.query获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockout.order.query`,并对获取的数据进行初步加工。 #### 接口调用配置 首先,我们需要配置元数据,以便正确调用`wdt.stockout.order.query`接口。以下是具体的元数据配置: ```json { "api": "wdt.stockout.order.query", "method": "POST", "number": "order_no", "id": "order_no", "name": "order_type_name", "idCheck": true, "autoFillResponse": true, "request": [ { "field": "start_time", "label": "开始时间", "type": "datetime", "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{LAST_SYNC_TIME|datetime}}" }, { "field": "end_time", "label": "结束时间", "type": "datetime", "describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{CURRENT_TIME|datetime}}" }, { "field": "order_type", "label": "出库单类型", "type": "string", "describe": "2调拨出库,3采购退货出库,4盘亏出库,5生产出库,7其他出库,8多发出库,9纠错出库,10保修配件出库,11初始化出库,12jit拣货出库,13委外出库", "value":"2" }, { ... } ], ... } ``` #### 参数详解 - `start_time` 和 `end_time`: 用于按最后修改时间增量获取数据,分别代表开始和结束时间。 - `order_type`: 出库单类型,此处我们选择“2”表示调拨出库。 - `status`: 出库单状态,默认查已发货和已完成单据(110)。 - `warehouse_no`: 仓库编号,用于区分不同仓库。 #### 请求示例 通过上述配置,我们可以生成一个POST请求来调用接口。以下是一个示例请求: ```json { "start_time":"2023-01-01 00:00:00", "end_time":"2023-01-31 23:59:59", ... } ``` #### 数据清洗与转换 在获取到原始数据后,我们需要对其进行清洗和转换,以便后续处理。以下是一些常见的清洗和转换操作: 1. **字段映射**:将源系统中的字段映射到目标系统所需的字段。例如,将`order_no`映射为目标系统中的订单编号。 2. **数据过滤**:根据业务需求过滤掉不必要的数据。例如,只保留状态为“已完成”的订单。 3. **格式转换**:将日期、金额等字段转换为目标系统所需的格式。 #### 实践案例 假设我们从接口中获取了如下原始数据: ```json [ { ... ... ... ... ... ``` 我们可以通过轻易云平台的可视化界面,对这些数据进行清洗和转换。具体步骤如下: 1. **字段映射**: - 将`order_no`映射为目标系统中的订单编号。 - 将`warehouse_no`映射为仓库编号。 2. **数据过滤**: - 使用过滤条件仅保留状态为“110”(已完成)的订单。 3. **格式转换**: - 将日期字段从字符串格式转换为标准日期格式。 通过以上步骤,我们可以将原始数据处理成符合目标系统要求的数据格式,并进一步写入目标系统,实现完整的数据集成流程。 综上所述,通过正确配置元数据并调用旺店通·企业奇门接口,我们能够高效地获取并加工源系统的数据,为后续的数据处理和分析打下坚实基础。 ![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/S2.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台:ETL转换与金蝶云星空API接口集成技术案例 在数据集成的生命周期中,ETL(提取、转换、加载)过程至关重要,特别是在将源平台的数据转换为目标平台所需的格式时。本文将深入探讨如何使用轻易云数据集成平台,将旺店通调拨出库的数据转换为金蝶云星空API接口能够接收的格式,并最终写入目标平台。 #### 元数据配置解析 元数据配置是ETL过程中的关键,它定义了数据从源到目标的映射规则。以下是本次集成方案的元数据配置: ```json { "api": "batchSave", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 20, "method": "batchArraySave" }, "request": [ {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"}, {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","value":"ZJDB01_SYS","mappingDirection":"positive","parser":{"name":"ConvertObjectParser","params":"FNumber"}}, {"field":"FBizType","label":"业务类型","type":"string","describe":"下拉列表","value":"NORMAL"}, {"field":"FTransferDirect","label":"调拨方向","type":"string","describe":"下拉列表","value":"GENERAL"}, {"field":"FTransferBizType","label":"调拨类型","type":"string","describe":"下拉列表","value":"'function case when '{warehouse_no}' = 'wdt01' then 'InnerOrgTransfer' when '{warehouse_no}' = 'wdt01_CC' then 'InnerOrgTransfer' when '{warehouse_no}' = '02' then 'InnerOrgTransfer' when '{warehouse_no}' = 'QYYC-JSQY-WDT-cc' then 'InnerOrgTransfer' when '{warehouse_no}' = 'QYYC-JSQY-WDT' then 'InnerOrgTransfer' when '{warehouse_no}' = 'QYYCCN-QYYCWDT' then 'InnerOrgTransfer' when '{warehouse_no}' = '01' then 'InnerOrgTransfer' else 'OverOrgTransfer' end"}, {"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"}}, {"field":"FSettleOrgId","label":"结算组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"}}, {"field":"FStockOutOrgId", "label": "调出库存组织", "type": "string", "describe": "组织", "parser": {"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{warehouse_no}", "mapping": {"target": "6448b8978ae83f3ed8347076", "direction": "positive"}}, {"field": "FOwnerTypeOutIdHead", "label": "调出货主类型", "type": "string", "describe": "多类别基础资料列表", "value": "BD_OwnerOrg"}, {"field": "FOwnerOutIdHead", "label": "调出货主", ![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/T2.png~tplv-syqr462i7n-qeasy.image)