使用ETL方法将发货通知单转化为旺店通WMS格式

  • 轻易云集成顾问-吕修远
### 金蝶云星空数据集成到旺店通WMS:发货通知单=>发货单OK 在实际业务场景中,企业需要高效、准确地将金蝶云星空中的订单数据集成至旺店通WMS,以确保物流环节的顺畅运行。此次技术案例分享,将聚焦于如何通过轻易云数据集成平台实现金蝶云星空的数据与旺店通WMS的无缝对接。 1. **调用金蝶云星空接口executeBillQuery获取发货通知单** 为了从金蝶云星空系统中提取所需的数据,我们使用其提供的`executeBillQuery`接口抓取最新的发货通知单。这一步骤需要处理API分页和限流问题,以确保所有订单都能被准确获取,不漏一单。 2. **批量处理与快速写入到旺店通WMS** 在获得完整的发货通知单数据后,必须快速且可靠地将这些信息写入到旺店通WMS中。我们采用一次性批量写入的方法,通过调用`WDT_WMS_STOCKOUT_CREATE`接口来创建相应的发货单。在这个过程中,需要特别注意两个系统之间的数据格式差异,并进行相应转换以确保兼容性。 3. **定时任务与错误重试机制** 由于频繁调用跨系统API存在潜在的不确定因素,我们设计了一套定时任务机制,每隔一定时间自动抓取和同步新订单。同时,为了增强系统鲁棒性,还引入了错误重试策略,针对可能出现的一些临时网络或系统故障进行智能重试,提高整体流程稳定性。 4. **实时监控与日志记录** 为实时掌握整个数据处理过程中的动态情况,在每个关键步骤上添加监控和日志功能。一方面能够及时捕获并解决异常问题;另一方面,它也为未来优化和调整提供了宝贵的数据依据。 这篇技术文章将详细介绍上述各个步骤及其背后的具体实施细节,包括如何正确配置API请求参数、处理分页返回以及灵活定义映射规则,从而保证两大系统之间的信息传输精准、高效。 ![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/D37.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统金蝶云星空接口executeBillQuery获取并加工数据 在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,以获取并加工发货通知单的数据。 #### 接口配置与调用 首先,我们需要配置并调用金蝶云星空的`executeBillQuery`接口。该接口采用POST方法,主要用于查询和获取发货通知单的详细信息。以下是元数据配置中的关键字段及其含义: - **api**: `executeBillQuery` - **method**: `POST` - **number**: `FBillNo` - **id**: `FEntity_FEntryID` - **pagination**: 支持分页,每页500条记录 - **idCheck**: 启用ID检查 #### 请求参数配置 请求参数是接口调用的核心部分,决定了我们能够获取哪些数据。以下是请求参数的详细配置: ```json { "field": "FID", "label": "实体主键", "type": "String", "value": "FID" }, { "field": "FBillNo", "label": "单据编号", "type": "String", "value": "FBillNo" }, { "field": "FDocumentStatus", "label": "单据状态", "type": "String", "value": "FDocumentStatus" }, { ... } ``` 这些字段涵盖了发货通知单的各个方面,包括单据编号、状态、销售组织、客户信息、物料信息等。 #### 分页与过滤条件 为了提高查询效率,我们可以使用分页和过滤条件。分页参数如下: ```json { "Limit": "{PAGINATION_PAGE_SIZE}", "StartRow": "{PAGINATION_START_ROW}", ... } ``` 过滤条件可以根据业务需求进行设置,例如只查询最近30分钟内的数据: ```json { "FilterString": "FApproveDate>='{{MINUTE_AGO_30|datetime}}' and F_JZJ_WMSSTOCK.F_JZJ_CheckBox=1" } ``` #### 字段映射与转换 在获取到原始数据后,需要对其进行字段映射和转换,以便后续处理。例如,将金蝶云星空中的字段映射到目标系统所需的字段格式: ```json { "FMaterialID.Fnumber": { "label": "物料编码", ... }, ... } ``` 通过轻易云平台,可以方便地进行字段映射和转换,确保数据格式的一致性。 #### 数据清洗与写入 在完成数据获取和转换后,下一步是进行数据清洗与写入。这一步骤包括去除重复数据、校验数据完整性等操作。轻易云平台提供了丰富的数据清洗工具,可以高效地完成这一步骤。 #### 实时监控与日志记录 为了确保数据集成过程的透明度和可追溯性,实时监控和日志记录是必不可少的。轻易云平台提供了强大的监控功能,可以实时查看数据流动和处理状态,并生成详细的日志记录,方便排查问题。 通过上述步骤,我们可以高效地调用金蝶云星空的`executeBillQuery`接口,获取并加工发货通知单的数据。这不仅提升了业务处理效率,也确保了数据的一致性和准确性。 ![用友与WMS系统接口开发配置](https://pic.qeasy.cloud/S6.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将发货通知单转换为旺店通WMSAPI格式 在数据集成过程中,ETL(Extract, Transform, Load)是关键步骤之一。本文将深入探讨如何利用轻易云数据集成平台,将发货通知单的数据转换为旺店通WMSAPI接口所能接收的格式,并最终写入目标平台。 #### 数据请求与清洗 首先,我们需要从源系统中提取发货通知单的数据。该过程已经在生命周期的第一步完成,因此我们直接进入数据转换和写入阶段。 #### 数据转换与写入 在这个阶段,我们需要将提取到的原始数据进行清洗、转换,并按照旺店通WMSAPI接口的要求重新组织数据结构。以下是具体的元数据配置及其应用。 ##### 元数据配置解析 ```json { "api": "WDT_WMS_STOCKOUT_CREATE", "method": "POST", "idCheck": true, "operation": { "method": "merge", "field": "FBillNo,FDate,F_JZJ_WMSSTOCK", "bodyName": "details", "bodySum": ["FQty"], "header": [ "FBillNo", "FDate", "F_JZJ_WMSSTOCK", "F_JZJ_Text_shrxm", "F_JZJ_Text_SHDH", "FReceiveAddress", "FCustomerID_FPROVINCE", "FCustomerID_FCITY", "FCustomerID_F_JZJ_Assistant_County", "FCustomerID_FName", "FDeliveryOrgID_FName", "FStockID", "F_JZJ_Remarks_FHMS", "FBillAllAmount" ], ... }, ... } ``` 上述元数据配置定义了要调用的API `WDT_WMS_STOCKOUT_CREATE`,并指定了POST方法。此外,还包括了对数据字段的详细映射和转换规则。 ##### 请求体结构 请求体结构分为两个主要部分:`deliveryOrder` 和 `orderLines`。 1. **deliveryOrder**:包含发货单的基本信息。 2. **orderLines**:包含订单行项目的信息。 ###### deliveryOrder 部分 ```json { ... { "label": "发货单信息", ... { ... {"parent":"deliveryOrder","label":"出库单号","field":"deliveryOrderCode","type":"string","value":"{FBillNo}"}, {"parent":"deliveryOrder","label":"出库单类型","field":"orderType","type":"string","value":"PTCK"}, {"parent":"deliveryOrder","label":"发货单创建时间","field":"createTime","type":"string","value":"{FDate}"}, {"parent":"deliveryOrder","label":"仓库编码","field":"warehouseCode","type":"string","value":"{FStockID}"}, {"parent":"deliveryOrder","label":"下单时间","field":"placeOrderTime","type":"string","value":"{FDate}"}, {"parent":"deliveryOrder","label":"备注","field":"remark","type":"string","value":"{F_JZJ_Remarks_FHMS}"}, {"parent":"deliveryOrder","label":"物流公司名称","field":"logisticsCode","type":"string","value":"YUNDA"}, {"field":"totalAmount","label":"总金额","type":"string","value":"{FBillAllAmount}"}, ... } } } ``` ###### orderLines 部分 ```json { ... { ... { {"parent": "orderLine", ...}, {"parent": "orderLine", ...}, {"parent": "..."} ... {"field": "..."} } } } ``` #### 实际应用案例 假设我们有一条发货通知单,其原始数据如下: ```json { ... { ... { ... { ... }, { ... }, { ... } ... { ... } } } } ``` 通过上述元数据配置,我们可以将其转换为如下格式: ```json { ... { ... { ... { ... }, { ... }, { ... } ... { ... } } } } ``` #### 数据写入 最后一步是将转换后的数据通过POST方法写入到旺店通WMS系统中。通过设置 `api` 和 `method`,我们可以确保调用正确的接口,并且根据 `idCheck` 参数进行必要的校验。 总结来说,通过轻易云数据集成平台,我们能够高效地完成从源系统到目标系统的数据ETL过程,确保每个环节都透明可控,从而提升业务效率和准确性。 ![数据集成平台可视化配置API接口](https://pic.qeasy.cloud/T19.png~tplv-syqr462i7n-qeasy.image)