销售出库单数据从旺店通到金蝶云星空的高效传输方法

  • 轻易云集成顾问-孙传友
### 销售出库单对接:旺店通·企业奇门数据集成到金蝶云星空的实践案例 在本次技术分享中,我们将探讨如何有效实现旺店通·企业奇门销售出库单数据与金蝶云星空平台的无缝对接。针对销售出库单对接这一场景,本文重点分析了API调用、数据处理和异常监控等关键环节,确保高效且准确的数据传输。 在集成过程中,我们利用了轻易云数据集成平台提供的强大功能,实现了从旺店通·企业奇门获取销售出库单数据到成功写入金蝶云星空的一系列操作。这一过程主要涉及以下几个关键点: 1. **调用接口wdt.stockout.order.query.trade**:为了抓取旺店通·企业奇门系统中的销售出库单信息,我们需要定时可靠地调用其`wdt.stockout.order.query.trade`接口。在实施过程中,通过设置合理的调度任务及策略,确保不会漏订单。 2. **快速写入大量数据到金蝶云星空**:通过优化批量写入机制和调整并发处理能力,我们保证了从上游获取的大量订单可以迅速、安全地写入到下游目标系统,即使用金蝶云星空的`batchSave` API进行持久化存储。 3. **分页与限流管理**:考虑到旺店通·企业奇门接口有分页和限流限制,对每次请求进行适当分页,并结合重试机制,有效应对由于流量控制导致的数据丢失问题,从而保障整个链路上的稳定性与可靠性。 4. **格式差异处理**:源系统(旺店通)与目标系统(金蝶)的数据结构存在一定差异。在此环节中,通过自定义转换规则,将原始JSON对象转换为符合目标表结构要求的数据格式,同时保持字段完整性及类型准确性,为后续的数据存储打好基础。 5. **实时监控与日志记录**:为了提高透明度及排查潜在问题,在每个接口调用阶段都进行了详尽的日志记录,包括请求参数、返回结果以及执行状态。同时引入实时监控工具,以便快速识别并解决异常情况,例如网络延迟或者服务不可达等常见问题。 以上这些方法不仅提升了整体业务流程效率,还显著降低了因人工操作可能带来的错误风险,使得跨系统间的数据同步变得更加稳定、可靠。通过详细介绍该案例,希望能够为面临类似需求的技术人员提供一些启发和参考。 ![如何对接钉钉API接口](https://pic.qeasy.cloud/D29.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统旺店通·企业奇门接口wdt.stockout.order.query.trade获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是关键的第一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockout.order.query.trade`,并对获取的数据进行初步加工。 #### 接口调用配置 首先,我们需要配置元数据以便正确调用`wdt.stockout.order.query.trade`接口。以下是该接口的元数据配置: ```json { "api": "wdt.stockout.order.query.trade", "effect": "QUERY", "method": "POST", "number": "order_no", "id": "stockout_id", "name": "order_no", "idCheck": true, "request": [ {"field":"start_time","label":"开始时间","type":"datetime","describe":"增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss","value":"{{LAST_SYNC_TIME|datetime}}"}, {"field":"end_time","label":"结束时间","type":"datetime","describe":"增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss","value":"{{CURRENT_TIME|datetime}}"}, {"field":"status","label":"状态","type":"string","describe":"5已取消,55已审核,95已发货,105 部分打款,110已完成,113:异常发货","value":"95,105,110,113"}, {"field":"src_order_no","label":"系统订单编号","type":"string","describe":"系统订单编号"}, {"field":"src_tid","label":"原始单号","type":"string","describe":"原始单号"}, {"field":"stockout_no","label":"出库单号","type":"string","describe":"出库单号"}, {"field":"shop_no","label":"店铺编号","type":"string","describe":"代表店铺所有属性的唯一编码,用于店铺区分,ERP内支持自定义(ERP店铺界面设置),用于获取指定店铺单据数据信息"}, {"field":"warehouse_no","label":"仓库编号","type":"string","describe":"代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置),用于获取指定仓库单据数据信息(不支持一次推送多个仓库编号)"}, {"field":"is_by_modified","label":"is_by_modified","type":"string","describe":"is_by_modified"} ], "otherRequest": [ {"field": "page_size", "label": "分页大小", "type": "string", "describe": "每页返回的数据条数,输入值范围1~100,不传本参数,输入值默认为40", "value": "{PAGINATION_PAGE_SIZE}"}, {"field": "page_no", "label": "页号", "type": "string", "describe": "不传值默认从0页开始", "value": "{PAGINATION_START_PAGE}"} ], "autoFillResponse": true, "condition":[ [{"field": "warehouse_no", "logic": "notlike", "value": "WH"}], [{"field": "fullname", "logic": "neqv2", "value": "\u7a46\u601d\u4e50"}], [{"field": 'shop_no', 'logic': 'notin', 'value': '202009,203003,202006'}] ] } ``` #### 请求参数解析 1. **时间范围**: - `start_time` 和 `end_time` 用于定义增量获取数据的时间范围。`start_time`表示上次同步的时间点,而`end_time`则是当前时间。 - 时间格式为 `yyyy-MM-dd HH:mm:ss`。 2. **状态过滤**: - `status` 字段用于过滤订单状态,包括已取消、已审核、已发货、部分打款、已完成和异常发货等状态。 3. **其他字段**: - `src_order_no`, `src_tid`, `stockout_no`, `shop_no`, 和 `warehouse_no` 等字段用于进一步过滤和识别特定订单信息。 4. **分页参数**: - `page_size` 和 `page_no` 用于控制分页请求,每次请求返回的数据条数和页码。 #### 数据请求与清洗 在配置好元数据后,通过轻易云平台发送POST请求到旺店通·企业奇门接口。以下是一个示例请求体: ```json { “start_time”: “2023-09-01 00:00:00”, “end_time”: “2023-09-30 23:59:59”, “status”: “95,105,110,113”, “page_size”: “40”, “page_no”: “0” } ``` 响应的数据会自动填充到预定义的结构中,并根据条件进行初步清洗。例如: - 排除仓库编号包含“WH”的记录。 - 排除订单全名为“穆思乐”的记录。 - 排除特定店铺编号(如202009,203003,202006)的记录。 #### 数据加工与转换 在接收到并清洗后的数据后,可以进行进一步的数据加工和转换。例如,将订单状态码转换为更具可读性的文本描述,将日期格式标准化等。这些操作可以通过轻易云平台提供的可视化工具或自定义脚本来实现。 通过上述步骤,我们能够高效地从旺店通·企业奇门接口获取并处理销售出库单的数据,为后续的数据写入和业务分析奠定坚实基础。 ![打通用友BIP数据接口](https://pic.qeasy.cloud/S22.png~tplv-syqr462i7n-qeasy.image) ### 利用轻易云数据集成平台实现销售出库单对接金蝶云星空API接口的ETL转换 在数据集成过程中,将源平台的数据转换为目标平台所需格式是至关重要的一步。本文将详细探讨如何利用轻易云数据集成平台,将销售出库单数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。 #### 1. 数据请求与清洗 在进行ETL(Extract, Transform, Load)转换之前,首先需要从源系统请求并清洗数据。假设我们已经完成了这一步,接下来重点介绍如何将清洗后的数据进行转换和写入。 #### 2. 数据转换与写入 我们需要将销售出库单数据按照金蝶云星空API接口的要求进行转换。以下是关键的元数据配置: ```json { "api": "batchSave", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ {"field":"FBillTypeID","label":"单据类型","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"XSCKD09_SYS"}, {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"}, {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{consign_time}"}, {"field":"FStockOrgId","label":"发货组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"}, {"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"}, {"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"货主类型","value":"BD_OwnerOrg"}, {"field":"FOwnerIdHead","label":"货主","type":"string","describe":"货主","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"}, {"field":"FCustomerID","label":"客户","type": "string", "describe": "基础资料", "parser": {"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{shop_no}", "mapping": {"target": "6530a4924293641e341cf8b7", "direction": "positive"}}, {"field": "F_RDIY_Text5", "label": "原始订单号", "type": "string", "describe": "文本", "value": "{src_tids}"}, {"field": "FNote", "label": "备注", "type": "string", "describe": "多行文本", "value": "{remark}"}, {"field": "FReceiveAddress", ![打通金蝶云星空数据接口](https://pic.qeasy.cloud/T18.png~tplv-syqr462i7n-qeasy.image)