销售出库单跨系统集成实践:从旺店通到金蝶云的完整流程

  • 轻易云集成顾问-张妍琪
### 旗舰-旺店通-销售出库单——>金蝶-销售出库单 在复杂的企业运营中,系统间的数据集成至关重要。本文将分享一个实际案例:如何通过轻易云数据集成平台,将旺店通·旗舰奇门中的销售出库单高效、稳定地对接到金蝶云星空中。 为了实现这一目标,我们主要采用了两大API接口:从旺店通·旗舰奇门获取数据的 `wdt.wms.stockout.sales.querywithdetail` 和将数据批量写入到金蝶云星空的 `batchSave`。整个集成流程涉及多个关键技术环节,包括确保不漏单、大量数据快速写入以及处理分页和限流问题等。 首先,我们需要解决的是如何调用并抓取旺店通·旗舰奇门接口 `wdt.wms.stockout.sales.querywithdetail` 的数据信息。这一过程不仅要求我们定时可靠地获取最新数据,还需要应对大量数据信息进行高效处理。为此,通过配置API请求参数,合理设置时间间隔和分页策略,以确保所有销售出库单能够按时且完整地被抓取。 其次是如何优化这些抓取的数据,在这个过程中,要特别注意两点。一方面,要解决原始数据格式与目标系统之间存在的差异,需要通过自定义映射规则,将不同字段内容准确转换匹配;另一方面,还要设计合适的数据清洗规则,过滤掉无效或重复的信息,提高整体集成效率。 最后,当所有准备工作完成后,即可利用Goldwind Cloud提供的批量保存功能,实现向金蝶云星空批量高速写入。同时,为保障整个过程中不会出现意外,中途还需加入实时监控与日志记录机制,一旦发生错误,则需触发相应重试机制来恢复进程,保证最终业务连续性及正确性。 以上是本次技术案例开端部分简单概述。在下文中,我们会详细探讨各个具体步骤、配置方法以及所涉及的重要技术细节,从而帮助大家更好理解并实践这一经典场景应用方案。 ![如何对接金蝶云星空API接口](https://pic.qeasy.cloud/D26.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·旗舰奇门接口获取并加工数据 在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口 `wdt.wms.stockout.sales.querywithdetail` 获取销售出库单数据,并进行必要的数据加工。 #### 接口调用配置 首先,我们需要配置接口调用的元数据。根据提供的元数据配置,接口使用 `POST` 方法,主要参数包括分页参数和业务参数。 ```json { "api": "wdt.wms.stockout.sales.querywithdetail", "method": "POST", "number": "order_no", "id": "stockout_id", "idCheck": true, "formatResponse": [ { "old": "consign_time", "new": "short_date", "format": "date" } ], "request": [ { "field": "pager", "label": "分页参数", "type": "object", "children": [ { "field": "page_size", "label": "分页大小", "type": "string", "value": "200", "parent": "pager" }, { "field": "page_no", "label": "页号", "type": "string", "value": "1", "parent": "pager" } ] }, { "field": "params", ... } ], ... } ``` #### 请求参数解析 请求参数分为分页参数和业务参数两部分: - **分页参数**: - `page_size`: 每页返回的数据条数,默认值为200。 - `page_no`: 当前页码,默认值为1。 - **业务参数**: - `start_time` 和 `end_time`: 查询的时间范围,这里使用了动态变量 `{{DAYS_AGO_1|date}}` 来表示前一天的日期。 - `status_type`: 出库单状态,默认值为0。 - `warehouse_no`, `stockout_no`, `shop_nos`, `src_order_no`, `need_sn`, `position`: 分别表示仓库编码、出库单编号、店铺编号(多个店铺编号使用英文逗号分隔)、销售订单号、是否返回SN信息、是否按照货位排序等。 #### 数据格式化与转换 在获取到原始数据后,需要对其进行格式化和转换。例如,将字段 `consign_time` 转换为新的字段名 `short_date` 并格式化为日期类型: ```json "formatResponse":[ { ... { ... { ... { ... } } } } ] ``` #### 数据过滤与条件设置 为了确保数据的准确性和有效性,可以设置条件过滤。例如,通过条件过滤排除特定店铺编号的数据: ```json "condition_bk":[ [ { ... } ] ] ``` 在这个例子中,我们排除了编号为 `"29,76,28,33,40,37,38,36,DADAN004,DADAN003,DADAN001,DADAN002"` 的店铺。 #### 实际操作步骤 1. **配置请求元数据**:在轻易云平台上,根据上述配置创建一个新的API调用任务。 2. **发送请求**:通过POST方法发送请求,获取销售出库单的详细信息。 3. **处理响应**:对响应数据进行格式化和转换,将字段名从 `consign_time` 改为 `short_date` 并格式化为日期类型。 4. **应用过滤条件**:根据设定的条件过滤掉不需要的数据,例如特定店铺编号的数据。 5. **存储与后续处理**:将处理后的数据写入目标系统(如金蝶),完成整个数据集成过程的第一步。 通过以上步骤,我们可以高效地从旺店通·旗舰奇门接口获取并加工销售出库单数据,为后续的数据转换与写入打下坚实基础。 ![电商OMS与WMS系统接口开发配置](https://pic.qeasy.cloud/S24.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现销售出库单ETL转换并写入金蝶云星空API接口 在数据集成的生命周期中,将源平台的数据转换为目标平台可接受的格式是关键步骤。本文将详细探讨如何利用轻易云数据集成平台,将旗舰-旺店通的销售出库单数据进行ETL转换,并通过金蝶云星空API接口写入目标平台。 #### 数据请求与清洗 在数据请求与清洗阶段,我们已经从源系统(如旺店通)获取了原始数据。接下来,我们需要将这些数据转换为金蝶云星空API能够接收的格式。 #### 数据转换与写入 我们将重点关注如何配置元数据,以便将清洗后的数据正确地映射并写入金蝶云星空。以下是具体的元数据配置和解析: ```json { "api": "batchSave", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "XSCKD01_SYS" }, { "field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号" }, { "field": "FDate", "label": "日期", ... } ], ... } ``` #### 核心字段解析与映射 1. **单据类型(FBillTypeID)**: - 类型:字符串 - 描述:单据类型 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 值:`XSCKD01_SYS` 2. **单据编号(FBillNo)**: - 类型:字符串 - 描述:单据编号 3. **日期(FDate)**: - 类型:字符串 - 描述:日期 - 值:`{short_date} 00:00:00` 4. **销售组织(FSaleOrgId)**: - 类型:字符串 - 描述:组织 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 值:`101` 5. **客户(FCustomerID)**: - 类型:字符串 - 描述:基础资料 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 值: ```json "_mongoQuery 3c9b5a58-0a09-3ae7-b7ea-20fbf5f16fa3 findField=content.FNumber where={\"content.FName\":{\"$eq\":\"{shop_name}\"}}" ``` 6. **旺店通备注(F_TBIK_WDTBZ)**: - 类型:字符串 - 描述:多行文本 - 值:`{shop_name}-{warehouse_no}-{short_date}` #### 明细信息配置 明细信息是一个数组,包含多个字段: 1. **物料编码(FMaterialID)**: - 类型:字符串 - 描述:基础资料 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 值:`{details_list_spec_no}` 2. **实发数量(FRealQty)**: - 类型:字符串 - 描述:数量 - 值: ```json "_function round('{details_list_goods_count}',0)" ``` 3. **含税单价(FTaxPrice)**: - 类型:字符串 - 描述:单价 - 值: ```json "_function '{details_list_paid}'/round('{details_list_goods_count}',0)" ``` 4. **仓库(FStockID)**: - 类型:字符串 - 描述:基础资料 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 值:`{warehouse_no}` #### 执行操作配置 其他请求和操作配置如下: ```json { ... {"field":"FormId","label":"业务对象表单Id","type":"string","describe":"必须填写金蝶的表单ID如:PUR_PurchaseOrder","value":"SAL_OUTSTOCK"}, {"field":"Operation","label":"执行的操作","type":"string","describe":"执行的操作","value":"Save"}, {"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","describe":"提交并审核","value":"false"}, {"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","describe":"是否验证所有的基础资料有效性,布尔类,默认false(非必录)","value":"true"}, {"field":"SubSystemId","label":"系统模块","type":"string","describe":"默认仓库模块","value":"21"} } ``` 通过上述配置,我们可以确保从源系统获取的数据经过ETL转换后,能够准确无误地写入到金蝶云星空系统中。这种高效的数据集成方式,不仅提升了业务透明度和效率,还确保了各个环节的数据准确性和一致性。 ![泛微OA与ERP系统接口开发配置](https://pic.qeasy.cloud/T22.png~tplv-syqr462i7n-qeasy.image)