旺店通系统如何通过配置高效获取出库数据

  • 轻易云集成顾问-卢剑航
### 案例分析:旺店通企业奇门数据集成到金蝶云星空 在本案例中,我们将详细探讨如何通过轻易云数据集成平台实现对旺店通·企业奇门系统与金蝶云星空平台的无缝数据对接。具体实施方案命名为“旺店通其他出库对接金蝶其他出库”,旨在确保出库数据的高效、准确传输。 #### 一、接口调用与数据获取 首先,我们需要从旺店通·企业奇门系统中获取相关的数据,调用API接口`wdt.stockout.order.query`来定时抓取最新出库订单信息。这一步骤至关重要,因其直接关系到整个后续处理流程的数据完整性和及时性。为了避免漏单,我们采用了可靠的定时任务调度机制,并结合分页查询技术以确保大批量数据能够快速、安全地读取。 #### 二、分页与限流问题的解决 由于网络请求不可避免地受到限制,在处理大批量订单时,需要关注分页以及限流问题。在实际操作过程中,通过合理设置API请求参数,如每次查询记录数及请求间隔时间,可以有效减少服务器负载并防止触发反爬虫机制。同时,通过实时监控机制,可以动态调整这些参数,以适应不同时段的数据访问需求,提高集成效率。 #### 三、数据格式转换与映射 考虑到两个系统的数据存储结构可能存在差异,原始订单信息必须经过一定的转换才能被成功写入到目标系统——金蝶云星空。同样的重要的是,对不同字段所需进行精确映射,这就需要借助平台提供的定制化映射工具,有效解决两者之间的数据格式差异问题。此外,还通过设计一系列规则引擎来确保所有关键字段均被正确填充,从而保障业务逻辑的一致性。 ##### 数据写入金蝶云星空 完成上述步骤之后,将转至写入环节。我们使用了金蝶云星空开放API `batchSave` 进行批量插入操作,以提高整体运行效率。在这个过程中,为进一步增强可控性,还加入了一套完善异常处理和错误重试机制。一旦出现失败或者错误,会立刻触发预设重试策略,并生成详细日志文件供后期排查使用。 准备好以上基础配置之后,即可进入下一步更深入具体实施方案部分,包括细化每个接口调用过程、错误捕获策略和性能优化等内容。如果你想了解更多,请继续跟随我们的分享,一起探索这场精彩纷呈的数据之旅! ![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/D1.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.stockout.order.query获取并加工数据 在数据集成生命周期的第一步中,调用源系统接口获取数据是至关重要的一环。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockout.order.query`,并对获取的数据进行初步加工。 #### 接口调用配置 首先,我们需要配置接口调用的元数据。根据提供的元数据配置,我们可以看到该接口采用POST方法,主要参数包括出库单号、开始时间、结束时间等。以下是具体的请求参数配置: ```json { "api": "wdt.stockout.order.query", "method": "POST", "number": "order_no", "id": "stockout_id", "pagination": { "pageSize": 30 }, "idCheck": true, "request": [ {"field": "start_time", "label": "开始时间", "type": "string", "value": "{{LAST_SYNC_TIME|datetime}}"}, {"field": "end_time", "label": "结束时间", "type": "string", "value": "{{CURRENT_TIME|datetime}}"}, {"field": "order_type", "label": "出库单类型", "type": "string", "value":"7"}, {"field": "status", "label":"出库单状态","type":"string"}, {"field":"warehouse_no","label":"仓库编号","type":"string"}, {"field":"src_order_no","label":"源单号","type":"string"}, {"field":"stockout_no","label":"出库单号","type":"string"} ], ... } ``` #### 请求参数解析 1. **开始时间和结束时间**:使用模板变量`{{LAST_SYNC_TIME|datetime}}`和`{{CURRENT_TIME|datetime}}`动态生成请求的时间范围,确保每次同步的数据都是最新的。 2. **出库单类型**:固定值为`7`,表示特定类型的出库单。 3. **分页参数**:通过`page_size`和`page_no`控制每次请求的数据量和页码,默认每页30条记录。 #### 数据过滤与条件设置 为了确保获取的数据符合业务需求,我们可以设置过滤条件。例如,通过remark字段进行模糊匹配,只获取备注中包含“报损”或“盘亏”的记录: ```json "condition":[ [{"field":"remark","logic":"like","value":"报损"}], [{"field":"remark","logic":"like","value":"盘亏"}] ] ``` #### 异常处理与补偿机制 在实际操作中,可能会遇到网络波动或系统故障导致的数据获取失败。为此,可以配置定时任务(crontab)进行补偿请求,例如每天10:02分重新拉取前两天的数据: ```json "omissionRemedy":{ ... ,"takeOverRequest":[ {"field":"start_time","label":"开始时间","type":"string","value":"{{DAYS_AGO_2|datetime}}"} ] } ``` #### 数据清洗与转换 在获取到原始数据后,需要对其进行清洗和转换,以便后续写入目标系统。在轻易云平台上,可以通过可视化界面定义数据清洗规则,例如去除空值、格式化日期等。 1. **去除空值**:确保所有关键字段都有有效值。 2. **格式化日期**:统一日期格式,便于后续处理。 #### 实际案例应用 假设我们需要从旺店通系统中获取过去一天内所有状态为“已发货”的出库单,并将其写入金蝶系统。具体步骤如下: 1. 配置接口调用参数,包括开始时间、结束时间、状态等。 2. 设置分页参数,每次请求30条记录。 3. 定义数据清洗规则,如去除空值、格式化日期等。 4. 将清洗后的数据通过轻易云平台写入金蝶系统。 通过上述步骤,我们可以实现不同系统间的数据无缝对接,提高业务处理效率。 总结来说,通过合理配置接口调用参数、设置过滤条件以及定义数据清洗规则,可以高效地从源系统获取并加工数据,为后续的数据集成奠定基础。 ![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/S10.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现金蝶云星空API接口的数据转换与写入 在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并将其转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。以下是详细的技术步骤和配置。 #### 数据请求与清洗 首先,我们从源系统(如旺店通)获取原始数据,并对其进行清洗和标准化处理。这一步骤确保了数据的一致性和准确性,为后续的ETL转换奠定基础。 #### 数据转换与写入 接下来,进入数据转换与写入阶段。我们使用轻易云数据集成平台提供的元数据配置,将清洗后的数据按照金蝶云星空API接口要求进行格式转换,并通过API接口将数据写入目标系统。 ##### 配置元数据 根据提供的元数据配置,我们需要将源系统的数据字段映射到金蝶云星空API所需的字段。以下是关键字段及其配置说明: 1. **单据编号 (FBillNo)**: - 类型: `string` - 值: `{order_no}` - 说明: 从源系统中获取订单编号并直接映射。 2. **单据类型 (FBillTypeID)**: - 类型: `string` - 解析器: `ConvertObjectParser` - 参数: `FNumber` - 值: `QTCKD01_SYS` - 说明: 固定值,表示其他出库单据类型。 3. **库存组织 (FStockOrgId)** 和 **领用组织 (FPickOrgId)**: - 类型: `string` - 解析器: `ConvertObjectParser` - 参数: `FNumber` - 值: `998` - 说明: 固定值,表示库存和领用组织。 4. **日期 (FDate)**: - 类型: `string` - 值: `{consign_time}` - 说明: 从源系统中获取发货时间并映射为日期字段。 5. **领料部门 (FDeptId)**: - 类型: `string` - 解析器: `ConvertObjectParser` - 参数: `FNumber` - 值: `BM000027` - 说明: 固定值,表示特定部门。 6. **备注 (FNote)**: - 类型: `string` - 值: `{stockout_reason}` - 说明: 从源系统中获取出库原因并映射为备注字段。 7. **来源系统 (F_PRSH_FROM)**: - 类型: `string` - 值: 旺店通 - 说明: 固定值,表示来源系统为旺店通。 8. **仓库 (F_PRSH_Base_zc5)**: - 类型: `string` - 解析器:`ConvertObjectParser` - 参数:`FNumber` - 值:`_mongoQuery ... findField=content.F_PBLH_KINGDEESTOCK where={\"content.FNumber\":{\"$eq\":\"{warehouse_no}\"},\"content.F_PBLH_MAPPINGTYPE\":{\"$regex\":\"C\"}}` 9. **交易类型 (F_PRSH_Assistant_imu)**: * 类型:`string` * 解析器:`ConvertObjectParser` * 参数:`FNumber` * 值: `_function case when '{remark}' like '%盘亏%' then '07' when '{remark}' like '%报损%' then '08' else '08' end` 10. **明细信息 (FEntity)**: * 类型:`array` * 子字段包括: * **物料编码 (FMaterialId)** * 类型:`string` * 解析器:`ConvertObjectParser` * 参数:`FNumber` * **零售条形码 (FCMKBarCode)** * 类型:`string` * **实发数量 (FQty)** * 类型:`string` * **发货仓库 (FStockId)** * 类型:`string` * **成本价 (FPrice)** * 类型:`string` * **备注 (FEntryNote)** * 类型:`string` ##### API 请求配置 根据上述字段配置,我们构建API请求体,并通过HTTP POST方法将其发送到金蝶云星空的batchSave接口。以下是请求体示例: ```json { "FormId": "STK_MisDelivery", "IsAutoSubmitAndAudit": true, "IsVerifyBaseDataField": true, "Operation": "Save", "InterationFlags": "STK_InvCheckResult", "Model": { "FBillNo": "{order_no}", "FBillTypeID": {"FNumber": "QTCKD01_SYS"}, "FStockOrgId": {"FNumber": "998"}, "FPickOrgId": {"FNumber": "998"}, "FDate": "{consign_time}", "FDeptId": {"FNumber": "BM000027"}, "FNote": "{stockout_reason}", "F_PRSH_FROM": "旺店通", ... // 明细信息 "FEntity": [ { "FMaterialId": {"FNumber": "{{details_list.goods_no}}"}, ... } ] } } ``` 通过以上配置和请求体构建,我们可以实现从源系统到金蝶云星空的数据无缝对接。每个字段都经过精细的映射和转换,确保了数据的一致性和准确性。 ![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/T25.png~tplv-syqr462i7n-qeasy.image)