利用轻易云平台实现金蝶云星空API数据转换与写入

  • 轻易云集成顾问-李国敏
### 案例分享:旺店通·旗舰奇门销售退货单集成到金蝶云星空 在本案例中,我们将重点探讨如何通过06-ToB销售退货单集成方案(无关联),实现旺店通·旗舰奇门的销售退货数据高效、准确地对接至金蝶云星空系统。本次技术实施的核心涉及两个主要API接口——获取旺店通·旗舰奇门数据的`wdt.wms.stockin.refund.querywithdetail`和向金蝶云星空写入数据的`batchSave`。整个流程旨在确保数据从抓取到写入过程中的完整性和一致性。 首先,为了保证从旺店通·旗舰奇门获取的数据不漏单且稳定,我们采用定时任务来可靠地抓取接口数据。利用轻易云平台提供的调度功能,可以设定固定时间间隔自动调用 `wdt.wms.stockin.refund.querywithdetail` API,确保所有待处理的销售退货单都能够及时同步。 其次,为了解决大规模数据快速写入的问题,需要特别关注批量处理机制。在对接到金蝶云星空时,通过优化 `batchSave` API 调用频率与并发量,实现大量数据流高效导入。这不仅提高了系统响应速度,同时有效规避了因请求过多而引起服务瓶颈或失败的重要隐患。 此外,由于两套系统的数据结构存在差异,必须进行格式化转换及映射表配置,以匹配各自字段要求。例如,从旺店通·旗舰奇门返回的数据需要根据业务需求重新组织后,再调用 `batchSave` 接口进行对应字段映射与存储操作。同时,通过实时监控日志记录,每一笔交易详情都可以清晰追溯,有助于迅速定位与解决异常问题,提高整体运作效率。 总之,在此次元数据信息整合过程中,不仅要克服分页限流挑战,还需针对不同API机制设计灵活多变的方法。这样才能成功实现从旺店通·旗舰奇门到金蝶云星空全链条无缝衔接,有力辅助企业提升运营管理水平。 ![数据集成平台API接口配置](https://pic.qeasy.cloud/D1.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·旗舰奇门接口获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口 `wdt.wms.stockin.refund.querywithdetail` 获取并加工数据。 #### 接口配置与请求参数 首先,我们需要配置接口的元数据,以确保能够正确地调用和处理数据。以下是该接口的元数据配置: ```json { "api": "wdt.wms.stockin.refund.querywithdetail", "method": "POST", "number": "order_no", "id": "order_no", "idCheck": true, "request": [ { "field": "pager", "label": "分页参数", "type": "object", "children": [ { "field": "page_size", "label": "分页大小", "type": "string", "value": "50", "parent": "pager" }, { "field": "page_no", "label": "页号", "type": "string", "value": "1", "parent": "pager" } ] }, { "field": "params", ... } ], ... } ``` #### 请求参数解析 - **分页参数 (`pager`)**: - `page_size`: 每页返回的数据条数,设置为50。 - `page_no`: 当前请求的页码,初始值为1。 - **业务参数 (`params`)**: - `start_time` 和 `end_time`: 分别表示查询的开始时间和结束时间,使用模板变量 `{{LAST_SYNC_TIME|datetime}}` 和 `{{CURRENT_TIME|datetime}}` 动态生成。 - `status`: 入库单状态,值为80表示已完成。 - `time_type`: 时间条件类型,不传默认为0,即修改时间。 - `warehouse_no`, `shop_nos`, `stockin_no`: 分别表示仓库编码、店铺编号(多个店铺编号使用英文逗号分隔)和入库单号。 #### 数据请求与清洗 在配置好元数据后,通过轻易云平台发送POST请求到旺店通·旗舰奇门接口。以下是一个示例请求体: ```json { ... { "pager": { ... }, ... { ... { ... { ... } } } } } ``` 返回的数据需要进行清洗和转换,以便后续处理。常见的数据清洗操作包括: - **字段映射**:将返回的数据字段映射到目标系统所需的字段。例如,将`order_no`映射为目标系统中的订单编号。 - **数据过滤**:根据业务需求过滤不必要的数据。例如,只保留状态为80(已完成)的记录。 - **格式转换**:将日期格式转换为目标系统所需的格式。 #### 数据转换与写入 清洗后的数据需要进一步转换,并写入到目标系统。在此过程中,可以利用轻易云平台提供的可视化工具进行操作,确保每一步都透明可见。以下是一个示例转换规则: ```json { ... } ``` 通过上述步骤,我们可以高效地从旺店通·旗舰奇门接口获取并加工数据,为后续的数据处理打下坚实基础。这一过程不仅提高了数据集成的效率,还确保了数据的一致性和准确性。 ![用友与SCM系统接口开发配置](https://pic.qeasy.cloud/S20.png~tplv-syqr462i7n-qeasy.image) ### 利用轻易云数据集成平台实现金蝶云星空API接口的数据转换与写入 在数据集成的生命周期中,将已经集成的源平台数据进行ETL转换并写入目标平台是至关重要的一步。本文将详细探讨如何利用轻易云数据集成平台,将源平台的数据转换为金蝶云星空API接口所能够接收的格式,并最终写入目标平台。 #### 元数据配置解析 首先,我们需要理解元数据配置中的各个字段及其含义。以下是一个典型的元数据配置示例: ```json { "api": "batchSave", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 1, "method": "batchArraySave" }, "request": [ { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "XSTHD01_SYS" }, ... ], ... } ``` #### 数据请求与清洗 在ETL过程的第一步,我们需要从源系统请求原始数据,并对其进行清洗和预处理。这一步骤通常包括以下几项任务: - **数据过滤**:根据业务需求筛选出需要处理的数据。 - **数据标准化**:将不同格式的数据统一为标准格式。 - **错误处理**:识别并修正数据中的错误。 #### 数据转换与写入 接下来,我们进入本文的重点,即如何将清洗后的数据转换为金蝶云星空API接口所能接受的格式,并写入目标平台。 ##### API接口配置 根据元数据配置,我们可以看到API接口的基本信息,如`api`、`method`、`idCheck`等。这些信息决定了我们如何调用金蝶云星空的API进行数据写入。 ##### 字段映射与解析 元数据配置中的`request`字段定义了需要传递给API的具体参数。每个参数都有以下几个属性: - `field`: 字段名 - `label`: 字段标签 - `type`: 数据类型(如string, date, int等) - `describe`: 字段描述 - `parser`: 数据解析器,用于将源系统的数据转换为目标系统所需格式 - `value`: 字段值,可以是固定值或动态值 例如,以下字段定义了单据类型: ```json { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型", ... } ``` 其中,`parser`字段使用了`ConvertObjectParser`解析器,将源系统的数据转换为目标系统所需的格式。 ##### 嵌套结构处理 一些复杂的数据结构可能包含嵌套字段,例如明细信息(FEntity)和财务信息(SubHeadEntity)。这些嵌套结构需要特别处理,以确保所有子字段都能正确映射和解析。例如: ```json { ... { "field":"FEntity", ... "children":[ { ... { field: 'FMaterialId', label: '物料编码', type: 'string', parser: { name: 'ConvertObjectParser', params: 'FNumber' }, value: '{{details_list.spec_no}}' }, ... } ] } } ``` ##### 调用API进行批量保存 在完成所有字段映射和解析后,我们可以调用金蝶云星空的批量保存API。根据元数据配置,使用POST方法调用`batchSave`接口,并传递已转换的数据。 例如,使用Python代码调用API: ```python import requests import json url = 'https://api.kingdee.com/batchSave' headers = {'Content-Type': 'application/json'} data = { # 根据元数据配置生成的数据结构 } response = requests.post(url, headers=headers, data=json.dumps(data)) if response.status_code == 200: print('Data saved successfully') else: print('Failed to save data') ``` 通过这种方式,我们可以将清洗和转换后的数据无缝地写入到金蝶云星空平台,实现不同系统间的数据集成。 #### 总结 本文详细探讨了如何利用轻易云数据集成平台,将源平台的数据进行ETL转换,并通过金蝶云星空API接口写入目标平台。通过理解和应用元数据配置,我们可以高效地完成这一关键步骤,确保业务流程的顺利进行。 ![金蝶云星空API接口配置](https://pic.qeasy.cloud/T4.png~tplv-syqr462i7n-qeasy.image)