数据转换与写入:从旺店通到金蝶云的实践

  • 轻易云集成顾问-彭萍
### 案例分享:旺店通·企业奇门数据集成到金蝶云星空 在业务高速发展的背景下,电商平台与ERP系统的数据无缝对接显得尤为重要。本次案例,我们将重点展示如何使用轻易云数据集成平台,实现旺店通·企业奇门的采购入库单数据无缝对接到金蝶云星空,通过API接口实现高效、实时、安全的数据传输。 首先,我们需要解决的是如何确保从旺店通·企业奇门获取每一条有效的订单信息,并完整地写入到金蝶云星空。通过调用`wdt.stockin.order.query.purchase`接口抓取采购入库单数据,这是核心步骤之一。该API能够精准提取指定时间段内的所有采购入库单数据,可设置定时任务以保证数据抓取的可靠性和及时性。在处理大量订单时,尤其需关注分页和限流问题,以免因请求额度超标或返回结果集过大导致的数据遗漏或丢失。 然后,要快速且高效地将这些海量数据写入到金蝶云星空,这里我们使用`batchSave` API进行批量写入操作,这不仅能显著提升处理效率,还能降低服务器压力。不过,由于两端系统间的数据格式可能存在差异,需要定制化映射方案,以确保所传递的数据结构匹配并被正确解读。此外,为应对意外情况,整个过程中必须设计完善的异常处理及错误重试机制,以确保集成过程中的稳定性和持续性。 在实际实施中,还可以借助轻易云的平台特性,对整个数据流动过程进行实时监控与日志记录。从而更好地追踪每一个环节,如若发生异常也能迅速定位问题源头并采取补救措施。同时,在面向多样化需求场景时,也不妨针对具体业务特点开展细致调优,例如灵活控制DataFlow执行频率、适当调整分页参数等策略优化。这些技术手段不仅保障了业务连续性,更极大程度上优化了整体性能表现。 上述内容奠定了此次元数据配置与跨系统联动的一些基础要点。在后续部分,将深入探讨整个解决方案及具体实现路径,包括详细代码示例和工具配置教程,为您提供全方位指导。 ![打通企业微信数据接口](https://pic.qeasy.cloud/D1.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.stockin.order.query.purchase获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockin.order.query.purchase`,并对获取的数据进行初步加工。 #### 接口调用配置 首先,我们需要配置元数据,以便正确调用`wdt.stockin.order.query.purchase`接口。以下是该接口的元数据配置: ```json { "api": "wdt.stockin.order.query.purchase", "effect": "QUERY", "method": "POST", "number": "order_no", "id": "stockin_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": "入库单状态 10已取消20编辑中25待价格确认30待审核60待结算80已完成(默认80)", "value":"80" }, { ... } ], ... } ``` #### 请求参数详解 1. **start_time 和 end_time**: 用于指定查询的时间范围。通过模板变量`{{LAST_SYNC_TIME|datetime}}`和`{{CURRENT_TIME|datetime}}`分别设置上次同步时间和当前时间,实现增量数据获取。 2. **status**: 默认值为80,即只查询已完成的入库单。 3. **src_order_no 和 warehouse_no**: 可选参数,用于进一步过滤查询结果。 4. **分页参数**: `page_size`和`page_no`用于控制分页查询,每页返回的数据条数和页号。 #### 调用示例 通过上述配置,我们可以构建一个POST请求来调用接口: ```json { ... // 请求体 { start_time: '2023-01-01 00:00:00', end_time: '2023-01-31 23:59:59', status: '80', page_size: '40', page_no: '0' } } ``` #### 数据处理与清洗 成功调用接口后,我们会得到一个包含多个采购入库单的响应。接下来,需要对这些原始数据进行清洗和初步加工,以便后续的数据转换与写入阶段。 1. **字段映射与转换**: - 将响应中的字段映射到目标系统所需的字段。例如,将`order_no`映射为目标系统中的订单编号。 - 对日期格式进行标准化处理,如将所有日期字段统一转换为ISO8601格式。 2. **数据过滤**: - 根据业务需求过滤掉不必要的数据。例如,只保留特定仓库编号的数据。 3. **异常处理**: - 对缺失或异常值进行处理。例如,如果某些必填字段缺失,可以记录日志并跳过该条记录。 #### 自动填充响应 在元数据配置中,我们启用了`autoFillResponse`选项,这意味着平台会自动处理部分响应内容。这一功能极大简化了开发工作,使我们能够专注于核心业务逻辑。 通过上述步骤,我们成功实现了从旺店通·企业奇门接口获取采购入库单并对其进行初步加工,为后续的数据转换与写入奠定了基础。在整个过程中,轻易云平台提供了强大的可视化操作界面和实时监控功能,使得每个环节都清晰透明,大大提升了集成效率。 ![企业微信与ERP系统接口开发配置](https://pic.qeasy.cloud/S7.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将采购入库单数据转换并写入金蝶云星空API接口 在数据集成的生命周期中,将源平台的数据进行ETL转换并写入目标平台是一个关键步骤。本文将详细探讨如何使用轻易云数据集成平台将采购入库单数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。 #### 数据请求与清洗 首先,确保从源平台(如旺店通)成功请求到所需的采购入库单数据,并对其进行必要的清洗和预处理。这一步骤虽然重要,但本文重点在于后续的ETL转换和写入过程,因此不做详细展开。 #### 数据转换与写入 在轻易云数据集成平台中,我们需要配置元数据以实现将清洗后的数据转换为金蝶云星空API接口可接受的格式。以下是具体的元数据配置及其解析: ```json { "api": "batchSave", "method": "POST", "number": "code", "id": "code", "idCheck": true, "operation": { "rowsKey": "array", "rows": 1, "method": "batchArraySave" }, "request": [ { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "RKD01_SYS" }, { ... } ], ... } ``` #### 配置解析 1. **基础字段配置** - `FBillTypeID`:设置单据类型,固定值为"RKD01_SYS"。 - `FBillNo`:映射源平台的订单编号`{order_no}`。 - `FSupplierId`:供应商信息,通过`ConvertObjectParser`解析供应商编号`{provider_no}`。 - `FDate`:入库日期,直接映射为源平台提供的检查时间`{check_time}`。 - `FNoteText`:备注信息,映射为源平台提供的备注字段`{remark}`。 - `FWDTCJR`:旺店通创建人,映射为操作员名称`{operator_name}`。 - `FSettleTypeId`:结算方式,固定值为"JSFS04_SYS",通过解析器进行编号转换。 2. **明细信息配置** 明细信息通过数组形式传递,每个子项包括以下字段: - `FMaterialId`:物料编码,通过解析器将规格编号`{{details_list.spec_no}}`转换为物料编码。 - `FRealQty`:实收数量,直接映射为商品数量`{{details_list.goods_count}}`。 - `FPrice`:单价,映射为成本价格`{{details_list.cost_price}}`。 - `FStockId`:仓库,通过解析器将仓库编号`{warehouse_no}`转换为仓库ID。 - `FGiveAway`:是否赠品,根据价格判断是否赠品,当价格为0时设置为true,否则false。 - `FTaxPrice`:含税单价,映射为税后价格`{{details_list.tax_price}}`。 3. **其他请求参数** - `FormId`: 设置业务对象表单ID,为"STK_InStock"。 - `IsAutoSubmitAndAudit`: 设置是否自动提交并审核,为true。 - `Operation`: 执行操作类型,为"Save"。 - `IsVerifyBaseDataField`: 是否验证基础资料有效性,为false(非必录)。 - `SubSystemId`: 系统模块ID,为21(默认仓库模块)。 #### 数据提交 通过上述配置,我们可以使用POST方法将处理好的JSON数据发送到金蝶云星空API接口。具体操作如下: 1. 确保所有字段都已正确映射和转换。 2. 使用轻易云数据集成平台提供的工具或自定义脚本发送HTTP POST请求至金蝶云星空API接口。 ```http POST /k3cloud/api/batchSave HTTP/1.1 Host: your-k3cloud-server Content-Type: application/json Authorization: Bearer your-access-token { // JSON payload as per the above configuration } ``` 通过以上步骤,我们能够高效地将采购入库单从源平台转换并写入到金蝶云星空,实现不同系统间的数据无缝对接。 ![用友BIP接口开发配置](https://pic.qeasy.cloud/T4.png~tplv-syqr462i7n-qeasy.image)