全面解析:通过轻易云实现旺店通与金蝶云星空的数据同步

  • 轻易云集成顾问-曾平安
### 旺店通·企业奇门数据集成金蝶云星空案例分享 在现代企业的运营过程中,跨系统的数据集成常常是信息化建设的一大难题。本文将聚焦于一个具体的系统对接集成案例:如何通过轻易云数据集成平台,实现旺店通·企业奇门中的调拨入库单数据高效无缝地对接到金蝶云星空,生成对应的直接调拨单,为业务流程提供有力支持。 #### 案例背景 本次项目核心任务是将旺店通·企业奇门(以下简称“旺店通”)中的调拨入库单,通过API接口`wdt.stockin.order.query`抓取,并批量写入到金蝶云星空中,以实现自动库存回补操作。本方案旨在确保从数据获取、传输、处理到最终落地,每个环节都透明清晰且高效可靠。 #### 技术要点 1. **确保不漏单**: - 在调用`wdt.stockin.order.query`接口时,通过定时器机制和实时监控技术,周期性检查是否有遗漏订单。 2. **快速大量写入**: - 利用轻易云内置的大容量、高效率数据传输功能,将调拨入库单快速推送至金蝶云星空的`batchSave` API,以应对海量订单需求。 3. **分页与限流处理**: - 由于旺店通API存在分页和限流限制,我们设计了智能分页请求策略及错误重试机制,进一步保障每条订单准确及时传递。 4. **数据格式差异处理**: - 针对两个系统之间的数据格式差异问题,我们通过自定义映射规则,加强字段兼容性转换,使得两端系统互联更加顺滑自然。 以上几点为解决该项目中关键技术痛点提供了有效路径,使得复杂的数据集成工作能够变得简洁明了、可操作性强。在后续部分中,我们将详细介绍完整实施方案,包括具体配置步骤及代码示例,从而帮助实际操作人员更容易理解和应用这些技术方法。 ![打通金蝶云星空数据接口](https://pic.qeasy.cloud/D14.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.stockin.order.query获取并加工数据 在数据集成生命周期的第一步,我们需要从源系统获取数据,并对其进行初步的清洗和加工。本文将详细介绍如何通过调用旺店通·企业奇门接口`wdt.stockin.order.query`来实现这一过程。 #### 接口调用配置 首先,我们需要配置接口调用的元数据。以下是具体的配置细节: - **API**: `wdt.stockin.order.query` - **Method**: `POST` - **Pagination**: 每页返回50条数据 - **ID Check**: 启用ID检查,确保唯一性 请求参数包括: 1. **start_time**: 按最后修改时间增量获取数据的开始时间,格式为`yyyy-MM-dd HH:mm:ss`。 2. **end_time**: 按最后修改时间增量获取数据的结束时间,格式为`yyyy-MM-dd HH:mm:ss`。 3. **order_type**: 源单据类别,这里设置为`2`(调拨入库)。 4. **status**: 入库单状态,这里设置为`80`(已完成)。 5. **warehouse_no**: 仓库编号,用于区分不同仓库。 6. **src_order_no**: 上层单据编号,可以不传开始时间和结束时间。 7. **stockin_no**: 入库单号,可以不传开始时间和结束时间。 分页参数包括: 1. **page_size**: 每页返回的数据条数,默认为40。 2. **page_no**: 页号,默认从0页开始。 #### 请求示例 以下是一个具体的请求示例: ```json { "api": "wdt.stockin.order.query", "method": "POST", "params": { "start_time": "{{LAST_SYNC_TIME|datetime}}", "end_time": "{{CURRENT_TIME|datetime}}", "order_type": "2", "status": "80", "warehouse_no": "WH001", "page_size": 50, "page_no": 0 } } ``` #### 数据清洗与加工 在获取到原始数据后,我们需要对其进行清洗和加工,以便后续的数据转换与写入。以下是一些常见的数据清洗操作: 1. **过滤条件**:根据业务需求过滤掉不必要的数据。例如,只保留备注字段为“调拨回补库存入库”的记录。 ```json { "condition": [ { "field": "remark", "logic": "eqv2", "value": "调拨回补库存入库" } ] } ``` 2. **字段映射与转换**:将源系统中的字段映射到目标系统中。例如,将源系统中的`stockin_no`映射到目标系统中的入库单号。 3. **数据格式化**:确保日期、数字等字段符合目标系统的格式要求。例如,将日期格式化为目标系统所需的格式。 #### 数据处理流程 1. **初始化请求参数**:根据元数据配置初始化请求参数,包括分页参数。 2. **发送请求并获取响应**:通过HTTP POST方法发送请求,并解析响应结果。 3. **检查并处理分页数据**:如果有多页数据,需要循环处理每一页的数据,直到所有数据都被处理完毕。 4. **应用过滤条件和字段映射**:对每一条记录应用预定义的过滤条件,并进行字段映射和转换。 5. **存储或传输清洗后的数据**:将清洗后的数据存储到中间数据库或直接传输到下一个处理环节。 #### 实践案例 假设我们需要从旺店通获取所有状态为“已完成”的调拨入库单,并且这些入库单备注必须为“调拨回补库存入库”。以下是具体操作步骤: 1. 配置请求参数,包括开始时间、结束时间、订单类型、状态、仓库编号等。 2. 发送HTTP POST请求,获取第一页的数据。 3. 检查响应结果,如果有多页,则继续发送请求获取下一页的数据,直到所有页面都被处理完毕。 4. 对每一条记录应用过滤条件,仅保留备注为“调拨回补库存入库”的记录。 5. 将符合条件的数据进行字段映射和转换,然后存储或传输到下一个环节。 通过上述步骤,我们可以高效地从旺店通·企业奇门接口获取并加工所需的数据,为后续的数据转换与写入做好准备。 ![泛微OA与ERP系统接口开发配置](https://pic.qeasy.cloud/S3.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将旺店通调拨入库单转换并写入金蝶云星空 在数据集成的生命周期中,将源平台的数据进行ETL转换并写入目标平台是关键的一步。本文将详细探讨如何使用轻易云数据集成平台,将旺店通的调拨入库单数据转换为金蝶云星空API接口所能接收的格式,并最终写入金蝶云星空。 #### 1. 配置API接口元数据 首先,我们需要配置金蝶云星空API接口的元数据。以下是一个典型的元数据配置示例: ```json { "api": "batchSave", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 1, "method": "batchArraySave" }, "request": [ {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"}, {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"ZJDB01_SYS"}, {"field":"FBizType","label":"业务类型","type":"string","describe":"下拉列表"}, {"field":"FTransferDirect","label":"调拨方向","type":"string","describe":"下拉列表"}, {"field":"FTransferBizType","label":"调拨类型","type":"string","describe":"下拉列表","value":"InnerOrgTransfer"}, {"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{warehouse_name}"}, {"field":"FSettleOrgId","label":"结算组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{warehouse_name}"}, {"field":"FStockOutOrgId","label":"调出库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"3000"}, {"field":...} ], "otherRequest": [ {"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "STK_TransferDirect"}, {"field": "IsAutoSubmitAndAudit", "label": "提交并审核", "type": "bool", "value": true}, {"field": ...} ] } ``` #### 2. 数据清洗与转换 在ETL过程中,首先需要对源数据进行清洗和转换,使其符合目标系统的要求。例如,旺店通的数据字段可能与金蝶云星空的数据字段不完全一致,需要通过映射和转换来匹配。 ##### 字段映射 - `order_no` 映射到 `FBillNo` - `warehouse_name` 映射到 `FSaleOrgId`, `FSettleOrgId` - `check_time` 映射到 `FDate` - `remark` 映射到 `FNote` ##### 数据解析与转换 对于一些复杂字段,我们需要使用解析器进行处理。例如: - `FBillTypeID` 使用 `ConvertObjectParser` 将值解析为目标系统所需的格式。 - 对于数组类型字段,如 `FBillEntry`,需要遍历每个子项并进行相应的映射和解析。 ```json { ... { "field": "FBillEntry", "label": "明细信息", ... { ... { "field": "FDestStockId", ... "_findCollection find FIsBatchManage from cf6e3088-4b20-387f-a748-62cc273ba492 where FNumber={{details_list.goods_no}} _endFind when true then 'PC2304240001' else '' end" } ... } } } ``` #### 3. 数据写入目标平台 在完成数据清洗和转换后,通过调用金蝶云星空API接口,将处理后的数据写入目标平台。具体步骤如下: 1. **构建请求体**:根据元数据配置构建请求体,包括所有必要的字段和子项。 2. **发送请求**:使用HTTP POST方法将请求体发送到金蝶云星空API接口。 3. **处理响应**:接收并处理API响应,确保数据成功写入。如果出现错误,根据错误信息进行相应调整和重试。 ```python import requests import json url = 'https://api.kingdee.com/batchSave' headers = {'Content-Type': 'application/json'} data = { # 根据元数据配置构建的数据 } response = requests.post(url, headers=headers, data=json.dumps(data)) if response.status_code == 200: print("Data successfully written to Kingdee Cloud.") else: print(f"Failed to write data: {response.text}") ``` 通过上述步骤,我们可以实现从旺店通到金蝶云星空的数据无缝集成,确保业务流程顺畅运行。在实际操作中,根据具体需求调整元数据配置和处理逻辑,以满足不同场景下的数据集成需求。 ![如何开发用友BIP接口](https://pic.qeasy.cloud/T29.png~tplv-syqr462i7n-qeasy.image)