将旺店通销售退货单数据转换并写入金蝶云星空的技术细节

  • 轻易云集成顾问-贺强
### 旺店通销售退货单集成到金蝶云星空的技术实现 在某些情况下,企业需要将不同系统之间的数据进行无缝对接,以提高运营效率和业务透明度。在本文中,我们将详细探讨如何通过使用轻易云数据集成平台,将旺店通·企业奇门中的销售退货单数据高效地集成到金蝶云星空。为了便于理解,我们选用了具体的API接口来说明整个过程:`wdt.stockin.order.query.refund`(获取旺店通数据) 和 `batchSave`(写入金蝶云星空)。 **确保不漏单的数据挖掘与抓取** 首先,需要确保从旺店通·企业奇门中获取的数据完整且没有遗漏。这就要求我们使用可靠的定时任务,通过调用 `wdt.stockin.order.query.refund` 接口来抓取最新的销售退货单数据。合理设置请求频率与时间间隔是关键,这不仅能有效避免漏单,还能够处理大量并发请求,尤其是在面对分页和限流情况时,更显得尤为重要。 **批量快速写入** 当我们成功获取了所需的销售退货单数据后,下一个挑战就是将这些数据迅速、准确地写入到金蝶云星空。这里,我们采用了 `batchSave` API,通过批量操作大幅提升写入速度和效率。同时,为了确保所有记录都能正确插入,对每条记录实施必要的数据格式转换,并做好映射。此外,还要注意异常处理与错误重试机制,防止因意外导致的数据丢失。 **实时监控与日志记录** 为了实现全程透明化管理及问题溯源,我们针对整个集成流程引入了实时监控与日志记录功能。例如,在调用旺店通 API 时,不仅要捕捉每次响应状态,还需保存查询条件及返回结果;同样,在执行金蝶云星空批量保存过程中,也需详尽记录相关操作细节,包括请求参数、响应结果以及潜在错误信息等。这样做既可以帮助及时发现并解决问题,又为日后的运维优化提供有价值的数据支持。 以上简述了一些关键技术点,本案例强调的是如何利用现有工具及接口高效、安全地完成系统间数据对接,以及如何通过具体实践解决一些常见但复杂的问题。希望通过这些分享,使您更好理解并掌握类似场景下的技术实现方法。 ![数据集成平台API接口配置](https://pic.qeasy.cloud/D20.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台调用旺店通·企业奇门接口获取并加工销售退货单数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台调用旺店通·企业奇门接口 `wdt.stockin.order.query.refund` 获取销售退货单数据,并进行初步的数据加工。 #### 接口调用配置 首先,我们需要配置元数据以便正确调用 `wdt.stockin.order.query.refund` 接口。以下是具体的元数据配置: ```json { "api": "wdt.stockin.order.query.refund", "method": "POST", "number": "order_no", "id": "order_no", "pagination": { "pageSize": 50 }, "idCheck": true, "request": [ { "field": "start_time", "label": "开始时间", "type": "datetime", "value": "{{LAST_SYNC_TIME|datetime}}" }, { "field": "end_time", "label": "结束时间", "type": "datetime", "value": "{{CURRENT_TIME|datetime}}" }, { "field": "status", "label": "状态", "type": "string" }, { "field": "shop_no", "label": "店铺编号", "type": "string" }, { "field": "src_order_no", "label": "退换单号", "type": "string" }, { "field": "stockin_no", "label":"入库单号", " type":"string" } ], “otherRequest”: [ { “field”: “page_size”, “label”: “分页大小”, “type”: “string”, “value”: “{PAGINATION_PAGE_SIZE}” }, { “field”: “page_no”, “label”: “页号”, “type”: “string”, “value”: “{PAGINATION_START_PAGE}” } ], “autoFillResponse”: true, “condition_bk”: [[[]]] } ``` #### 请求参数解析 在请求参数中,`start_time` 和 `end_time` 用于指定查询的时间范围,这两个字段分别取自上次同步时间和当前时间。`status`、`shop_no`、`src_order_no` 和 `stockin_no` 是可选的过滤条件,可以根据实际需求进行设置。 分页参数 `page_size` 和 `page_no` 用于控制每次请求返回的数据量和页码,确保能够处理大批量的数据。 #### 数据请求与清洗 通过上述配置,我们可以发送POST请求到旺店通·企业奇门接口以获取销售退货单数据。轻易云平台会自动处理分页逻辑,确保所有符合条件的数据都能被完整获取。 ```json { // 示例请求体 start_time: '2023-01-01T00:00:00Z', end_time: '2023-01-31T23:59:59Z', status: 'completed', shop_no: 'SHOP123', src_order_no: '', stockin_no: '', page_size: '50', page_no: '1' } ``` #### 数据转换与写入 获取到原始数据后,需要对其进行初步清洗和转换,以便后续写入目标系统。在轻易云平台上,可以通过可视化界面定义数据转换规则,例如字段映射、格式转换等。 例如,将原始数据中的 `order_no` 映射为目标系统中的 `refund_order_id`,并将日期格式从ISO标准转换为目标系统所需的格式。 ```json { // 示例转换规则 refund_order_id: order_no, refund_date: formatDate(order_date, 'yyyy-MM-dd') } ``` #### 自动填充响应 配置中的 `autoFillResponse` 设置为 true,这意味着平台会自动处理响应结果,并填充到相应的数据结构中。这一步骤简化了开发者的工作,使得数据处理更加高效和可靠。 通过上述步骤,我们成功实现了从旺店通·企业奇门接口获取销售退货单数据,并进行了初步的数据清洗和转换,为后续的数据写入奠定了基础。这一过程展示了轻易云数据集成平台在处理异构系统间数据集成时的强大能力和灵活性。 ![钉钉与MES系统接口开发配置](https://pic.qeasy.cloud/S24.png~tplv-syqr462i7n-qeasy.image) ### 将源平台数据转换为金蝶云星空API接口格式并写入目标平台 在轻易云数据集成平台中,数据处理的生命周期包括多个阶段,其中将源平台数据进行ETL转换并写入目标平台是关键的一步。本文将详细探讨如何将旺店通销售退货单的数据转换为金蝶云星空API接口所能接收的格式,并最终写入金蝶云星空。 #### 配置API接口 首先,我们需要配置与金蝶云星空的API接口。根据提供的元数据配置,API接口的信息如下: - **API**: `batchSave` - **Method**: `POST` - **FormId**: `SAL_RETURNSTOCK` - **Operation**: `Save` - **IsAutoSubmitAndAudit**: `true` - **IsVerifyBaseDataField**: `true` 这些配置确保了我们能够通过POST请求向金蝶云星空提交销售退货单,并自动提交和审核。 #### 数据字段映射与转换 为了将源平台的数据转换为目标平台所需的格式,我们需要对各个字段进行映射和转换。以下是关键字段及其配置: 1. **单据类型 (FBillTypeID)** - 类型:字符串 - 固定值:`XSTHD01_SYS` - 转换器:`ConvertObjectParser`,参数:`FNumber` 2. **单据编号 (FBillNo)** - 类型:字符串 - 值:`{order_no}` 3. **销售组织 (FSaleOrgId)** - 类型:字符串 - 值:`{shop_no}` - 转换器:`ConvertObjectParser`,参数:`FNumber` - 映射:目标ID `645de1b5a8df401f85176e98` 4. **库存组织 (FStockOrgId)** - 类型:字符串 - 值:`{warehouse_no}` - 转换器:`ConvertObjectParser`,参数:`FNumber` - 映射:目标ID `647af5da1c8c8a5aff7610c7` 5. **日期 (FDate)** - 类型:字符串 - 值:`{modified}` 6. **退货客户 (FRetcustId)** - 类型:字符串 - 值:`{shop_name}` - 转换器:`ConvertObjectParser`,参数:`FNumber` - 映射方向:反向 7. **货主 (FOwnerIdHead)** - 类型:字符串 - 动态值: ```sql case when '{warehouse_no}' in ('047','048','051') then '105' when '{warehouse_no}' in ('050','052','049','053','055','057') then '114' else '100' end ``` - 转换器:`ConvertObjectParser`,参数:`FNumber` 8. **销售员 (FSalesManId)** - 类型:字符串 - 动态查询: ```mongoQuery cccd77b8-cea5-3862-99c0-c3cc6815a86a findField=content.FNumber where={"content.FName":{"$eq":"{refund_operator_name}"}} ``` - 转换器:`ConvertObjectParser`,参数:`FNumber` 9. **备注 (FHeadNote)** - 类型: 字符串 10. **快递单号 (F_ora_Text2)** - 类型: 字符串 - 值: `{logistics_code}` 11. **原始单号 (F_USQR_TEXT)** - 类型: 字符串 - 值: `{{details_list.tid}}` #### 明细信息配置 对于明细信息(FEntity),每个子字段也需要进行相应的映射和转换: 1. **物料编码 (FMaterialId)** - 类型: 字符串 - 值: `{{details_list.spec_no}}` - 转换器: `ConvertObjectParser`, 参数:`FNumber` 2. **实退数量 (FRealQty)** - 类型: 字符串 - 值: `{{details_list.num}}` 3. **是否赠品 (FIsFree)** ```sql CASE WHEN '{{details_list.right_price}}'>0 THEN 'false' ELSE 'true' END ``` 4. **含税单价 (FTaxPrice)** – 类型: 字符串 – 值: `{{details_list.right_price}}` 5. **仓库 (FStockId)** – 类型: 字符串 – 值: `{warehouse_no}` – 转换器:`ConvertObjectParser`, 参数:`FNumber` 6. 其他字段如备注、订单单号等均按照相应的规则进行配置。 #### 财务信息配置 财务信息(SubHeadEntity)也需要进行相应的映射: 1. 结算组织(FSettleOrgId) – 类型: 字符串 – 值:{shop_no} – 转换器:`ConvertObjectParser`, 参数:`FNumber` – 映射方向:`positive`, 目标ID:`645de1b5a8df401f85176e98` #### 数据写入操作 完成所有字段映射和转换后,通过POST请求将数据发送至金蝶云星空API接口。请求体包含所有必要的字段及其对应值,确保数据格式符合目标系统要求。 ```json { "FormId": "SAL_RETURNSTOCK", "Operation": "Save", "IsAutoSubmitAndAudit": true, "IsVerifyBaseDataField": true, "BatchCount": "5", "Model": { // 数据模型内容,包括上述所有字段及其值。 } } ``` 通过以上步骤,我们成功地将源平台的数据转换为金蝶云星空所需的格式,并实现了数据的无缝对接。这不仅提高了数据处理效率,也确保了业务流程的顺畅运行。 ![如何对接用友BIP接口](https://pic.qeasy.cloud/T21.png~tplv-syqr462i7n-qeasy.image)