ETL转换:将旺店通调拨入库单转为金蝶直接调拨单的实现方法

  • 轻易云集成顾问-曹润
### 旺店通·企业奇门数据集成到金蝶云星空: 从调拨入库单到直接调拨单的实现 在系统集成项目中,跨平台的数据对接是一个常见且关键的任务。本文将详细分享一个技术案例:如何利用轻易云数据集成平台,实现旺店通·企业奇门的数据与金蝶云星空系统无缝对接,具体过程包括从获取旺店通调拨入库单数据,到在金蝶中生成对应的直接调拨单。 #### 接口概述 首先,需要明确两个核心API接口: 1. 获取旺店通·企业奇门数据的API:`wdt.stockin.order.query` 2. 写入金蝶云星空数据的API:`batchSave` 我们的目标是在确保高效、准确和透明处理机制下,将来自旺店通的数据快速写入到金蝶云星空,同时实现实时监控和问题检测,以确保整个集成过程顺畅无误。 #### 数据获取与处理 通过调用`wdt.stockin.order.query`接口,我们能够定时抓取并批量获取旺店通中的调拨入库订单。这一过程中需要特别注意接口分页和限流策略,以应对大规模数据查询可能带来的性能瓶颈。为此,可以利用轻易云的平台特性,通过设置合理请求频率及使用集中监控和告警系统,实现异常状况下自动重试,保证采集任务不漏单、不重叠。 #### 数据转换与映射 由于不同系统间存在数据结构差异,从而产生了必须进行相应的数据转换与映射需求。在这个案例中,我们采用自定义逻辑,对原始JSON格式的数据进行结构调整,使其符合金蝶云星空所需格式,通过可视化工具设计并优化这部分流程,提高开发效率并减低出错概率。 #### 数据写入与确认 通过调用金蝶云星空提供的`batchSave`接口完成最终的数据写入。在这一环节同样不能忽略事务一致性以及错误处理机制,如网络波动等情况下,即便发生故障也能通过幂等设计重新提交缺失部分。此外,还需设置可靠有效地日志记录和状态追踪功能,以便于后期审计和问题排查。如果遇到业务特性上的特殊需求,比如附加字段或有条件过滤,也可以灵活调整映射规则以满足实际操作要求。 综上,本案例以充分体现出基于轻易云平台结合多种实用功能,实现复杂跨平台数据对接中的高效管理、清晰透明,并解决各种细节问题的方法。从而显示出专业级别系统整合方案价值所在。 ![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/D30.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockin.order.query`,以获取并加工调拨入库单数据。 #### 接口配置与调用 首先,我们需要配置元数据,以便正确调用`wdt.stockin.order.query`接口。以下是关键的元数据配置: ```json { "api": "wdt.stockin.order.query", "method": "POST", "number": "stockin_no", "id": "stockin_no", "pagination": { "pageSize": 50 }, "idCheck": true, "request": [ { "field": "start_time", "label": "开始时间", "type": "string", "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{LAST_SYNC_TIME|datetime}}" }, { "field": "end_time", "label": "结束时间", "type": "string", "describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{CURRENT_TIME|datetime}}" }, { "field": "order_type", "label": "源单据类别", "type": "string", "describe": [ {"1":"采购入库"}, {"2":"调拨入库"}, {"4":"盘盈入库"}, {"5":"生产入库"}, {"6":"其他入库"}, {"7":"保修入库"}, {"8":"纠错入库"}, {"9":"初始化入库"}, {"10":"预入库"}, {"11":"JIT退货入库"}, {"12":"委外入库"} ], "value": [ {"2":"调拨入库"} ] }, { ... } ], ... } ``` #### 数据请求与清洗 在进行数据请求时,我们需要确保请求参数的准确性和完整性。以下是关键参数及其作用: - `start_time` 和 `end_time`:用于按最后修改时间增量获取数据,确保只获取指定时间范围内的数据。 - `order_type`:指定为"2"(调拨入库),确保只获取调拨入库单据。 - `status`:设置为"80"(已完成),过滤出已完成的单据。 通过这些参数,我们可以精准地获取所需的数据。 #### 数据转换与写入 在成功获取数据后,需要对数据进行清洗和转换,以便写入目标系统。在此过程中,可以利用轻易云平台提供的可视化工具,对数据进行必要的处理。例如: - **字段映射**:将源系统中的字段映射到目标系统中的相应字段。 - **数据格式转换**:将日期、数值等字段转换为目标系统所需的格式。 - **业务逻辑处理**:根据业务需求,对某些字段进行计算或逻辑判断。 以下是一个简单的数据转换示例: ```json { ... { "_source_field_1_":{ "_target_field_1_":{ "_transformation_logic_1_" } } ... } ``` #### 实际应用案例 假设我们需要将旺店通中的调拨入库单同步到金蝶系统中。在实际操作中,可以按照以下步骤进行: 1. **配置元数据**:如上所述,配置好请求参数和分页信息。 2. **调用接口**:通过轻易云平台发起HTTP POST请求,调用`wdt.stockin.order.query`接口。 3. **处理响应**:解析返回的数据,根据业务需求进行清洗和转换。 4. **写入目标系统**:将处理后的数据写入金蝶系统,生成相应的直接调拨单。 通过上述步骤,我们可以实现从旺店通到金蝶系统的数据无缝对接,提高业务效率和透明度。 ![如何对接企业微信API接口](https://pic.qeasy.cloud/S17.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台ETL转换:将旺店通调拨入库单转为金蝶直接调拨单 在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台将已经集成的源平台数据进行ETL转换,并转为目标平台——金蝶云星空API接口所能够接收的格式,最终写入目标平台。 #### 数据请求与清洗 在进行ETL转换之前,首先需要从源平台(如旺店通)请求并清洗数据。假设我们已经完成了这一阶段,并且获得了如下结构的数据: ```json { "order_no": "DB20230401", "warehouse_name": "WH001", "check_time": "2023-04-01", "remark": "本次调拨包含紧急物资", "item_list": [ { "goods_no": "G001", "num": 100, "product_remark": "紧急物资" }, { "goods_no": "G002", "num": 200, "product_remark": "" } ] } ``` #### 数据转换与写入 为了将上述数据转化为金蝶云星空API接口所能接收的格式,我们需要遵循以下元数据配置: ```json { "api": "batchSave", "method": "POST", ... } ``` 具体步骤如下: 1. **设置基础信息** 首先,我们需要设置单据的基础信息,包括单据编号、单据类型、业务类型、调拨方向等。这些信息可以通过简单的映射和转换来实现。例如: ```json { "FBillNo": "{order_no}", ... } ``` 2. **组织信息** 接下来,需要设置组织相关的信息,如销售组织、结算组织、调出库存组织等。这些字段通常需要通过特定的解析器(如`ConvertObjectParser`)进行转换。例如: ```json { "FSaleOrgId": "{warehouse_name}", ... } ``` 3. **日期和备注** 日期和备注字段可以直接从源数据中提取并赋值: ```json { "FDate": "{check_time}", "FNote": "{remark}" } ``` 4. **明细信息** 明细信息部分相对复杂,需要处理多个子字段。每个子字段可能涉及到不同的解析器和映射规则。例如,物料编码需要通过`ConvertObjectParser`进行解析: ```json { "FBillEntry": [ { ... "FMaterialId": "{{item_list.goods_no}}", ... } ] } ``` 5. **其他配置** 最后,还需要设置一些其他必要的配置项,如业务对象表单ID、是否自动提交并审核等: ```json { ... "FormId": "STK_TransferDirect", ... "IsAutoSubmitAndAudit": true, ... "IsVerifyBaseDataField": true, ... "Operation": "Save" } ``` #### 实际应用案例 结合以上步骤,我们可以构建一个完整的请求体,将其发送到金蝶云星空API接口,实现数据写入。以下是一个示例请求体: ```json { "FormId":"STK_TransferDirect", ... "IsAutoSubmitAndAudit":true, ... "Model":{ ... "FBillNo":"DB20230401", ... "FSaleOrgId":"WH001", ... ... }, { ... { ... {"FMaterialId":"G001",...}, {"FMaterialId":"G002",...} ... } ] } } ``` 通过这种方式,我们能够高效地将源平台的数据转换为目标平台所需的格式,并成功写入目标系统,从而实现不同系统间的数据无缝对接。 ![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/T3.png~tplv-syqr462i7n-qeasy.image)