数据集成教程:旺店通数据同步到金蝶云

  • 轻易云集成顾问-林峰
### 案例分享:旺店通·企业奇门数据集成到金蝶云星空 在当今复杂的业务环境中,系统间的数据集成需求不断增加。本文将详细探讨如何通过轻易云数据集成平台,实现旺店通销售退货单同步至金蝶销售退货单【店铺】的技术方案。 #### 1. 接口对接与数据转换 本案例中,我们需要采用`wdt.stockin.order.query.refund`接口从旺店通·企业奇门获取销售退货单数据,并使用金蝶云星空的`batchSave`接口进行数据写入。这就涉及到多个关键技术点,包括API调用、分页处理、限流机制以及数据格式差异的处理。 #### 2. 数据抓取与写入机制 为了保障数据不漏单,我们实现了定时可靠的数据抓取机制,从而确保所有待集成的数据都能按预期时间被获取。同时,为了提升效率和性能,高吞吐量的数据写入能力被应用于大量订单同步过程中,使得每次批量操作能够快速完成。 #### 3. 异常处理与监控 在实际操作中,可能会遇到网络波动或API限流问题。为此,我们设置了一系列异常处理策略,如错误重试机制,并结合实时监控和日志记录功能来确保任务执行中的每一步都透明可见。一旦出现问题,可以及时告警并采取措施修复。此外,通过提供自定义转换逻辑,满足特定业务需求,进一步优化了整体流程。 接下来文章将详细介绍具体实施步骤及代码示例,以便更好地理解这一复杂但高效的系统集成过程。 ![钉钉与MES系统接口开发配置](https://pic.qeasy.cloud/D18.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.stockin.order.query.refund获取并加工数据 在数据集成生命周期的第一步,调用源系统接口获取数据是至关重要的一环。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockin.order.query.refund`,并对获取的数据进行加工处理。 #### 接口调用配置 首先,我们需要配置接口调用的元数据。以下是具体的元数据配置: ```json { "api": "wdt.stockin.order.query.refund", "method": "POST", "number": "order_no", "id": "stockin_id", "pagination": { "pageSize": 50 }, "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编辑中30待审核60待结算80已完成(默认查询80已完成单据)", "value": "80" }, { "field": "shop_no", "label": "店铺编号", "type": "string", "describe":"代表店铺所有属性的唯一编码,用于店铺区分,ERP内支持自定义(ERP店铺界面设置),用于获取指定店铺单据数据信息" } ], ... } ``` #### 请求参数解析 1. **start_time** 和 **end_time**:用于增量获取数据,分别表示查询的开始和结束时间。通过模板变量`{{LAST_SYNC_TIME|datetime}}`和`{{CURRENT_TIME|datetime}}`动态生成。 2. **status**:固定值为“80”,表示只查询已完成的入库单。 3. **shop_no**:用于指定店铺编号,以便获取特定店铺的数据。 #### 分页处理 为了高效处理大批量数据,我们采用分页机制。分页参数如下: - **page_size**:每页返回的数据条数,范围为1到50。这里设置为50。 - **page_no**:页号,从0页开始。 ```json { ... “otherRequest”: [ { “field”: “page_size”, “label”: “分页大小”, “type”: “string”, “describe”: “每页返回的数据条数,输入值范围1~50,不传本参数,输入值默认为40,使用举例单击这里”, “value”: “{PAGINATION_PAGE_SIZE}” }, { “field”: “page_no”, “label”: “页号”, “type”: “string”, “describe”: “不传值默认从0页开始”, “value”: “{PAGINATION_START_PAGE}” } ] } ``` #### 数据过滤条件 为了进一步精确筛选所需数据,我们可以设置过滤条件: ```json { ... ”condition“: [ [ {“field“: ”shop_name“, ”logic“: ”like“, ”value“: ”七遇“}, {“field“: ”warehouse_name“, ”logic“: ”notlike“, ”value“: ”推广“}, {“field“: ”fenxiao_nick“, ”logic“: ”isnull“} ] ] } ``` 这些条件确保我们只获取符合特定要求的数据,例如店铺名称包含"七遇",仓库名称不包含"推广",且分销昵称为空的数据。 #### 数据清洗与转换 在成功调用接口并获取原始数据后,需要对数据进行清洗与转换。这一步骤包括但不限于: 1. **字段映射**:将原始字段映射到目标系统所需的字段。例如,将`order_no`映射为目标系统中的订单编号。 2. **格式转换**:确保日期、金额等字段符合目标系统的格式要求。 3. **去重处理**:根据业务需求,对重复数据进行去重处理。 #### 实践案例 假设我们已经成功调用了接口并获得了如下原始数据: ```json [ { “order_no”: “12345”, “stockin_id”: “67890”, ... } ] ``` 我们需要将其转换为目标系统所需的格式,例如: ```json [ { “订单编号”: “12345”, “入库ID”: “67890”, ... } ] ``` 通过上述步骤,我们可以高效地从旺店通·企业奇门接口获取并加工销售退货单数据,为后续的数据写入和业务处理打下坚实基础。 ![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/S24.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现旺店通销售退货单同步至金蝶云星空 在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细探讨如何通过轻易云数据集成平台完成这一过程。 #### 元数据配置解析 元数据配置是实现数据转换和写入的关键。在本案例中,我们需要将旺店通销售退货单的数据同步至金蝶云星空。以下是具体的元数据配置解析: ```json { "api": "batchSave", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 10, "method": "batchArraySave" }, "request": [ { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "XSTHD01_SYS" }, { ... } ], ... } ``` #### 数据字段映射与转换 1. **单据类型 (FBillTypeID)**: - 类型:`string` - 描述:单据类型 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 固定值:`XSTHD01_SYS` 2. **单据编号 (FBillNo)**: - 类型:`string` - 描述:单据编号 - 值:`{order_no}` 3. **销售组织 (FSaleOrgId)**: - 类型:`string` - 描述:组织 - 转换器:`ConvertObjectParser`,参数为`FNumber` - 动态值:通过查找集合 `_findCollection find FCOUNTRY from 1c7e5053-1f36-35c8-844e-ceed3ac87bb9 where FName={shop_name}` 获取 4. **日期 (FDate)**: - 类型:`string` - 描述:日期 - 值:`{check_time}` 5. **库存组织 (FStockOrgId)**: - 类型:`string` - 描述:组织 - 转换器:`ConvertObjectParser`,参数为 `FNumber` - 动态值: `{warehouse_no}` 6. **退货客户 (FRetcustId)**: - 类型:`string` - 描述:基础资料 - 转换器:`ConvertObjectParser`,参数为 `FName` - 动态值: `{shop_name}` 7. **明细信息 (FEntity)**: 包含多个子字段,如物料编码、实退数量、含税单价等。 示例子字段: ```json { "field": "FMaterialId", ... ... } ``` #### 接口调用与请求构建 在完成元数据配置后,我们需要构建实际的API请求。以下是一个示例请求: ```json { "FormId": "SAL_RETURNSTOCK", ... } ``` 通过上述配置和请求构建,我们可以确保源平台的数据能够被正确转换并写入到金蝶云星空中。 #### 特殊处理与优化 1. **基础资料验证**: 配置项 `IsVerifyBaseDataField: true` 确保所有基础资料的有效性。 2. **自动提交与审核**: 配置项 `IsAutoSubmitAndAudit: true` 实现自动提交和审核,提高效率。 3. **批量处理**: 使用 `batchArraySave` 方法进行批量处理,提高数据传输效率。 通过以上步骤和配置,我们可以高效地将旺店通销售退货单的数据同步至金蝶云星空,实现系统间的数据无缝对接。 ![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/T20.png~tplv-syqr462i7n-qeasy.image)