从数据抓取到数据写入:企业系统集成的技术实践

  • 轻易云集成顾问-潘裕
### 旺店通销售退货单=>金蝶销售退货单:系统对接集成案例分享 在复杂的企业业务流程中,系统间的数据对接显得尤为重要。本次案例聚焦于将旺店通·企业奇门的销售退货数据高效、准确地集成到金蝶云星空平台。具体操作过程中,我们运用了wdt.stockin.order.query.refund接口从旺店通获取销售退货信息,并通过金蝶云星空提供的batchSave接口进行数据写入。 首先,为了确保从旺店通·企业奇门获取的数据不漏单,这里实现了定时可靠的抓取机制,通过严格配置API调用频率和重试逻辑,有效处理分页和限流问题。此外,在批量数据向金蝶云星空快速写入方面,我们利用了现有API支持的大规模并发能力来加速传输,同时严格按照场景需求实施定制化的数据映射,以适应两套系统之间的格式差异。 为了防止潜在的数据丢失或错误,一旦在对接过程中出现异常情况,将启动专用的错误重试机制,对每一条失败记录重新进行处理。而对于实时监控需要,则部署了一整套日志记录与报警通知体系,能够及时捕捉关键环节的问题反馈,为后续优化提供依据。 本案还特别注意到了使用过程中的实际运行效果,不仅保证了集成链路透明可视,也大幅提升了整体业务流转效率。在接下来的部分中,我们将详细解析各步骤中的技术实现细节,包括如何精准调用API、高效批量写入,以及异常处理策略等。 ![如何对接金蝶云星空API接口](https://pic.qeasy.cloud/D5.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统旺店通·企业奇门接口wdt.stockin.order.query.refund获取并加工数据 在数据集成生命周期的第一步,我们需要从源系统中获取数据,并对其进行初步加工。本文将详细介绍如何通过调用旺店通·企业奇门接口`wdt.stockin.order.query.refund`来实现这一过程。 #### 接口概述 接口`wdt.stockin.order.query.refund`用于查询销售退货单信息,支持按状态、时间范围等条件进行过滤。该接口采用POST请求方式,返回的数据包括订单编号、源订单编号、状态等关键信息。 #### 元数据配置解析 根据提供的元数据配置,我们需要设置以下请求参数: - `status`: 入库单状态,默认值为80(已完成)。 - `start_time`: 查询的开始时间,使用上次同步时间。 - `end_time`: 查询的结束时间,使用当前时间。 - `page_size`: 分页大小,固定为50。 - `page_no`: 页号,用于分页查询。 这些参数确保了我们能够高效地获取所需的销售退货单数据。 ```json { "api": "wdt.stockin.order.query.refund", "method": "POST", "number": "order_no", "id": "src_order_no", "idCheck": true, "request": [ { "field": "status", "label": "状态", "type": "int", "describe": "入库单状态 10已取消20编辑中30待审核60待结算80已完成(默认查询80已完成单据)", "value": "80" }, { "field": "start_time", "label": "开始时间", "type": "datetime", "describe": "开始时间", "value": "{{LAST_SYNC_TIME|datetime}}" }, { "field": "end_time", "label": "结束时间", "type": "datetime", "describe": "结束时间", "value": "{{CURRENT_TIME|datetime}}" } ], "otherRequest": [ { "field": "page_size", "label": "分页大小", "type": "string", "value": "50" }, { "field": "page_no", "label": "页号", "type": "string" } ] } ``` #### 数据请求与清洗 在调用接口时,我们需要构建一个POST请求,将上述参数传递给接口。以下是一个示例请求体: ```json { "_api_name_":"wdt.stockin.order.query.refund", "_api_method_":"POST", "_api_params_":{ "_status_":"80", "_start_time_":"{{LAST_SYNC_TIME|datetime}}", "_end_time_":"{{CURRENT_TIME|datetime}}", "_page_size_":"50", "_page_no_":"1" } } ``` 在接收到响应后,我们需要对数据进行初步清洗和转换。具体步骤如下: 1. **验证响应数据**:检查响应状态码和返回的数据结构是否符合预期。 2. **提取有效信息**:从响应中提取订单编号、源订单编号、状态等关键信息。 3. **处理分页**:如果有多页数据,需要循环调用接口,直到所有数据都被获取。 #### 数据转换与写入 在完成数据请求与清洗后,我们需要将数据转换为目标系统所需的格式,并写入目标系统。在本案例中,目标系统是金蝶销售退货单。我们需要将提取到的数据映射到金蝶系统的相应字段,并通过API或其他方式写入金蝶系统。 例如,将旺店通中的`order_no`映射到金蝶中的订单编号字段,将`src_order_no`映射到金蝶中的源订单编号字段。 #### 实践案例 假设我们已经成功调用了接口并获取了以下示例响应: ```json { "_response_status_":"success", "_data_":[ {"order_no":"SO12345", {"src_order_no":"PO54321", {"status":"80"} } ] } ``` 我们可以将这些数据转换为如下格式,以便写入金蝶系统: ```json { "_kingdee_sales_return_order_":[ {"order_number":"SO12345", {"source_order_number":"PO54321", {"status":"completed"} } ] } ``` 通过这种方式,我们实现了从旺店通到金蝶系统的数据集成,为业务流程的自动化和高效运作提供了有力支持。 总结以上内容,通过调用旺店通·企业奇门接口`wdt.stockin.order.query.refund`并进行适当的数据清洗和转换,可以高效地实现销售退货单的数据集成。这一过程不仅提升了业务透明度和效率,也为后续的数据处理和分析奠定了坚实基础。 ![如何对接用友BIP接口](https://pic.qeasy.cloud/S29.png~tplv-syqr462i7n-qeasy.image) ### 数据集成与转换:将旺店通销售退货单数据写入金蝶云星空 在数据集成的生命周期中,数据转换与写入是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台,将已经集成的源平台数据(旺店通销售退货单)进行ETL转换,并转为目标平台(金蝶云星空API接口)所能够接收的格式,最终实现数据的成功写入。 #### API接口配置与请求参数 首先,我们需要了解金蝶云星空API接口的基本配置和请求参数。根据元数据配置,我们使用的是`batchSave`接口,采用`POST`方法进行数据传输。以下是关键的请求参数及其配置: - **FBillTypeID**: 单据类型,通过`ConvertObjectParser`解析,参数为`FNumber`。 - **FBillNo**: 单据编号,直接映射为源数据中的`order_no`。 - **FSaleOrgId**: 销售组织,通过`ConvertObjectParser`解析,固定值为`109`。 - **FDate**: 日期,映射为源数据中的`modified`。 - **FStockOrgId**: 库存组织,通过`ConvertObjectParser`解析,固定值为`109`。 - **FRetcustId**: 退货客户,通过`ConvertObjectParser`解析,映射为源数据中的`shop_no`。 - **FHeadNote**: 备注,多行文本字段。 - **F_ora_Text2**: 快递单号,映射为源数据中的`logistics_code`。 #### 明细信息处理 在处理明细信息时,我们需要特别注意数组类型的数据结构。以下是明细信息字段及其配置: - **FEntity**: 明细信息数组,其中包含多个子字段: - **FMaterialId**: 物料编码,通过`ConvertObjectParser`解析,映射为源数据中的 `details_list.spec_no`. - **FRealQty**: 实退数量,映射为源数据中的 `details_list.num`. - **FIsFree**: 是否赠品,根据 `details_list.cost_price > 0 ? 'false' : 'true'`. - **FPrice**: 单价,映射为源数据中的 `details_list.sell_price`. - **FTaxPrice**: 含税单价,映射为源数据中的 `details_list.src_price`. - **FStockId**: 仓库,通过 `ConvertObjectParser`, 映射为 `warehouse_no`. - **FNote**: 备注,映射为 `details_list.remark`. - **FOrderNo**: 订单单号,映射为 `details_list.tid`. - **FLot**: 批次,通过 `ConvertObjectParser`, 固定值 `kt`. #### 财务信息处理 财务信息部分主要涉及结算组织: - **SubHeadEntity**: - **FSettleOrgId**: 结算组织,通过 `ConvertObjectParser`, 固定值 `109`. #### 操作配置 最后,我们需要设置一些操作相关的参数,以确保正确执行批量保存操作: - **FormId**: 表单ID, 固定值 `SAL_RETURNSTOCK`. - **Operation**: 执行操作, 固定值 `Save`. - **IsAutoSubmitAndAudit**: 是否自动提交并审核, 固定值 `true`. - **IsVerifyBaseDataField**: 验证基础资料, 固定值 `true`. - **SubSystemId**: 系统模块, 固定值 `21`. - **BatchCount**: 服务端开启的线程数, 固定值 `5`. #### 数据转换与写入流程 1. 数据请求与清洗:从旺店通获取销售退货单的数据,并进行初步清洗和格式化。 2. 数据转换:根据上述元数据配置,将清洗后的数据转换为金蝶云星空API能够接收的格式。特别注意字段类型、解析器以及固定值的使用。 3. 数据写入:通过调用金蝶云星空的批量保存API接口,将转换后的数据写入目标平台。 在整个过程中,需要确保每个字段的数据类型和格式都符合目标平台的要求,同时要实时监控和记录每一步骤的数据流动和处理状态,以便及时发现和解决潜在的问题。 通过以上步骤,我们可以高效地将旺店通销售退货单的数据成功写入金蝶云星空,实现不同系统间的数据无缝对接。 ![电商OMS与WMS系统接口开发配置](https://pic.qeasy.cloud/T23.png~tplv-syqr462i7n-qeasy.image)