通过可视化数据流设计对接旺店通与金蝶云星空系统

  • 轻易云集成顾问-曾平安
### 基于轻易云数据集成平台的旺店通·企业奇门与金蝶云星空系统对接案例 在本次技术分享中,我们将探讨一个实际运行中的系统对接集成案例——从旺店通生产入库到金蝶组装拆卸的数据同步。该项目利用了旺店通·企业奇门API接口`wdt.stockin.order.query`进行数据获取,并通过金蝶云星空API `batchSave`完成数据写入。 #### 数据流设计与处理逻辑 为了实现高效、可靠的数据同步,我们首先使用轻易云提供的可视化数据流设计工具,构建了整个集成流程。这种图形化的操作方式,使得从业务需求到技术实现具备更强的直观性和可维护性。在此过程中,实现了以下关键功能: - **高吞吐量的数据写入**:我们的方案支持每秒数千条记录的快速写入,这一特性能确保大量的生产入库单据能够及时更新到金蝶云星空系统,大幅提高整体效率。 - **实时监控与告警**:通过集中监控和告警系统,随时把握数据任务状态。当出现异常情况时,会自动触发预警机制,以便迅速采取相应措施进行处理。 #### API接口调用策略 1. **获取旺店通生产入库单据** 调用旺店通·企业奇门提供的查询接口`wdt.stockin.order.query`,我们定制了一套循环抓取机制,以确保所有新生成或变动过的数据都被同步捕获。额外增设分页处理来应对大批量记录,同时配置限流策略以防止因频繁访问引起服务端压力问题。 2. **格式转换及合规性验证** 在将抓取到的数据写入金蝶前,根据业务需要进行了自定义数据转换逻辑,包括字段映射、值域调整等。同时,也经过严格的数据质量检测,对不符合要求的信息进行了过滤和修正,从而避免后续可能产生的问题。 3. **批量提交至金蝶云星空** 最终,通过调用金蝶云星空API `batchSave`接口,将整理好的生产入库信息提交至目标系统中,并针对潜在错误设置重试机制,以保证任何网络抖动或者暂时不可用情况下不会丢失关键信息。 这一系列步骤,不仅实现了两个异构系统之间无缝衔接,还极大程度上优化了资源投入和管理成本。有了这样的精准配置,无论是当前需求还是未来扩展,都能获得持续、高效支持。 ![泛微OA与ERP系统接口开发配置](https://pic.qeasy.cloud/D12.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据 在轻易云数据集成平台中,调用源系统接口并获取数据是数据处理生命周期的第一步。本文将深入探讨如何通过调用旺店通·企业奇门接口`wdt.stockin.order.query`来获取生产入库数据,并进行初步的数据加工。 #### 接口调用配置 首先,我们需要配置元数据,以便正确调用`wdt.stockin.order.query`接口。以下是该接口的详细配置: ```json { "api": "wdt.stockin.order.query", "effect": "QUERY", "method": "POST", "number": "order_no", "id": "stockin_id", "name": "order_type_name", "idCheck": true, "request": [ { "field": "start_time", "label": "开始时间", "type": "datetime", "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{MINUTE_AGO_10|datetime}}" }, { "field": "end_time", "label": "结束时间", "type": "datetime", "describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{MINUTE_AGO_5|datetime}}" }, { "field": "order_type", "label": "源单据类别", "type": "string", "describe": "源单据类别 1采购入库, 2调拨入库, 4盘盈入库, 5生产入库, 6其他入库, 7保修入库, 8纠错入库, 9初始化入库, 10预入库, 11JIT退货入库, 12委外入库", "value":"5" }, { ... } ], ... } ``` #### 请求参数解析 1. **start_time** 和 **end_time**: 用于按最后修改时间增量获取数据。这两个字段的值分别设置为当前时间前10分钟和前5分钟,确保我们只获取最近修改的数据。 2. **order_type**: 设置为`5`,表示我们只关注生产入库类型的单据。 3. **status**: 可选字段,用于过滤不同状态的入库单。默认查询已完成(80)的单据。 #### 数据请求与清洗 在配置好元数据后,我们使用POST方法发送请求以获取生产入库单据的数据。以下是一个示例请求体: ```json { "start_time":"2023-09-01 12:00:00", "end_time":"2023-09-01 12:05:00", "order_type":"5", "status":"80", "warehouse_no":"WH001", "page_size":"40", "page_no":"0" } ``` 响应结果会包含多个字段,如`stockin_id`, `order_no`, `order_type_name`, 等等。我们需要对这些字段进行初步清洗和转换,以便后续的数据处理和写入。 #### 数据转换与写入 在获得并清洗了原始数据后,我们需要将其转换为目标系统所需的格式。例如,将日期格式从`yyyy-MM-dd HH:mm:ss`转换为目标系统所需的格式,或将某些字段值映射到目标系统的编码。 以下是一个简单的数据转换示例: ```python def transform_data(data): transformed_data = [] for record in data: transformed_record = { 'id': record['stockin_id'], 'number': record['order_no'], 'type': record['order_type_name'], 'date': convert_date_format(record['last_modified'], '%Y-%m-%d %H:%M:%S', '%d/%m/%Y') } transformed_data.append(transformed_record) return transformed_data ``` 在这个示例中,我们将日期格式从`%Y-%m-%d %H:%M:%S`转换为`%d/%m/%Y`,并重命名了一些字段以匹配目标系统的要求。 #### 自动填充响应 轻易云平台支持自动填充响应(autoFillResponse),这意味着我们可以直接将API响应映射到目标系统所需的字段,而无需手动处理每个字段。这极大地简化了数据集成过程,提高了效率。 通过上述步骤,我们成功实现了从旺店通·企业奇门接口获取生产入库单据,并进行了初步的数据清洗和转换,为后续的数据写入奠定了基础。 ![数据集成平台API接口配置](https://pic.qeasy.cloud/S20.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将旺店通生产入库数据对接至金蝶云星空API接口的ETL转换 在数据集成生命周期中,第二步是将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,并将其转为目标平台能够接收的格式。本文将详细探讨如何使用轻易云数据集成平台,将旺店通生产入库数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。 #### 数据请求与清洗 首先,从源系统(旺店通)提取生产入库数据。假设我们已经完成了数据请求与清洗阶段,获取了需要的数据。这些数据可能包括订单编号、库存组织、单据类型、事务类型、子件货主等信息。 #### 数据转换与写入 接下来,我们需要将这些提取的数据进行转换,以适配金蝶云星空API接口的要求。以下是具体的元数据配置及其解析: ```json { "api": "batchSave", "effect": "EXECUTE", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 1, "method": "batchArraySave" }, "request": [ {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{src_order_no}"}, {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"998"}, {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型\nZZCX01_SYS-标准组装拆卸","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"ZZCX01_SYS"}, {"field":"FAffairType","label":"事务类型","type":"string","describe":"事务类型\n组装:Assembly\n拆卸:Dassembly","value":"{FAffairType}"}, {"field":"FSubProOwnerIdH","label":"子件货主","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"998"}, {"field":"FSubProOwnTypeIdH","label":"子件货主类型","type":"string","describe":"组织","value":"BD_OwnerOrg"}, {"field":"FOwnerTypeIdHead","label":"成品货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"}, {"field":"FOwnerIdHead","label":"成品货主","type":"","describe":"","parser":{"name":"","params":""},"value":""}, {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""}, {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""}, {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""}, {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""}, {"field":"", "children":[ { "children":[ { "children":[ { "children":[ { "children":[ { "children":[ { "children":[ { "children":[ { "children":[ { "children":[ { "" } ] } ] } ] } ] } ] } ] } ] } ] } ] } ]} ], ... } ``` #### 核心字段解析 1. **FBillNo(单据编号)**: - 类型:字符串 - 描述:对应源系统中的订单编号,直接映射为`{src_order_no}`。 2. **FStockOrgId(库存组织)**: - 类型:字符串 - 描述:固定值`998`,通过`ConvertObjectParser`解析器转换为目标系统可识别的编码。 3. **FBillTypeID(单据类型)**: - 类型:字符串 - 描述:固定值`ZZCX01_SYS`,表示标准组装拆卸单据,通过解析器转换编码。 4. **FAffairType(事务类型)**: - 类型:字符串 - 描述:根据业务逻辑从源系统获取,映射为`{FAffairType}`,可能值包括“Assembly”(组装)和“Dassembly”(拆卸)。 5. **FSubProOwnerIdH(子件货主)**: - 类型:字符串 - 描述:固定值`998`,通过解析器转换编码。 6. **FOwnerIdHead(成品货主)**: - 类型:字符串 - 描述:固定值`998`,通过解析器转换编码。 7. **FDate(日期)**: - 类型:字符串 - 描述:从源系统获取并映射为`{check_time}`。 8. **FNote(备注)**: - 类型:字符串 - 描述:从源系统获取并映射为`{remark}`。 9. **F_PRSH_Base_tzk(表头仓库)**: - 类型:字符串 - 描述:通过MongoDB查询获取仓库信息并映射到目标字段,通过解析器转换编码。 10. **FEntity(成品数组)**: - 类型:数组 - 描述:包含多个成品信息,每个成品包含物料编码、仓库、数量等字段,通过循环处理每个成品条目。 #### 实际操作步骤 1. **提取数据**: 从旺店通提取所需的生产入库数据,包括订单编号、库存组织等基本信息以及具体的产品和物料信息。 2. **配置元数据**: 根据上述元数据配置,将提取的数据字段逐一映射到金蝶云星空API接口所需的字段格式中。 3. **调用API接口**: 使用POST方法调用金蝶云星空的batchSave API接口,将转换后的数据批量写入目标平台。确保所有必填字段都已正确填写,并且基础资料验证通过。 4. **监控和验证结果**: 实时监控API调用结果,确保所有数据成功写入目标平台。如有错误,根据返回的信息进行调试和修正。 通过以上步骤,我们实现了从旺店通到金蝶云星空的数据无缝对接,大大提升了业务流程的自动化程度和效率。 ![钉钉与WMS系统接口开发配置](https://pic.qeasy.cloud/T28.png~tplv-syqr462i7n-qeasy.image)