轻易云平台中数据ETL转换与管易云API集成案例

  • 轻易云集成顾问-陈洁琳
### 金蝶云星空与管易云系统对接集成案例分享——金蝶物料到管易商品 在本次技术案例中,我们将探讨如何高效地实现金蝶云星空的数据集成到管易云这一过程。通过轻易云数据集成平台的强大功能,尤其是其全透明可视化操作界面和实时监控能力,我们能够确保从金蝶云星空获取的数据准确无误,并快速写入到管易云中,从而提升整体业务效率。 #### 案例背景 此次任务主要涉及的是将金蝶物料信息(Item)迁移至管易商品模块。由于两个系统的API接口结构和数据格式不同,这一过程中需要处理多种技术挑战,包括分页处理、限流机制、自定义数据转换逻辑以及错误重试等关键问题。 #### 数据获取与写入 首先,通过调用金蝶云星空的`executeBillQuery` API接口,我们能定时抓取最新的物料信息。在这个步骤中,确保每一次请求都完整并不遗漏任何记录至关重要,因此我们设置了可靠的分页策略来逐步获取所有所需的数据。同时,为应对可能存在的大量并发请求,实现了性能优化和限流控制,以保证系统稳定运行。 接下来,将这些数据转换为适用于管易商品模块的格式,并通过调用 `gy.erp.item.add` 接口实现批量写入。这一步骤中的自定义数据映射尤为重要,必须仔细处理两者之间的数据差异,例如字段名称和结构上的变化。此外,通过轻易平台提供的数据质量监控功能,及时检测并修正任何异常或错误,再加上集中监控和告警系统,有助于实时跟踪整个数据集成任务状态。 #### 集成方案概述 为了具体展示该方案实施过程,本例利用轻松构建可视化数据流设计工具,使得复杂流程变得直观且容易管理。以下即为相关步骤: 1. 调用`executeBillQuery` 获取金蝶云星空物料。 2. 解析返回结果,根据预设规则进行必要转换。 3. 使用`gy.erp.item.add` 将转换后的物料批量写入至管平台。 4. 设置异常处理及重试机制以保障流程可靠性。 5. 实时监测与日志记录覆盖整个生命周期管理周期,为问题定位提供依据。 上述步骤简要介绍了我们的高效便捷解决方案,在后续章节里,将详细讲解如何配置每个环节,以及相关代码示范及注意事项。 ![数据集成平台API接口配置](https://pic.qeasy.cloud/D34.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,以获取并加工物料数据,并将其传递到管易商品系统。 #### 接口配置与元数据解析 首先,我们需要理解并配置元数据,以便正确调用`executeBillQuery`接口。以下是元数据配置的关键部分: ```json { "api": "executeBillQuery", "effect": "QUERY", "method": "POST", "number": "FNumber", "id": "FMasterId", "name": "FNumber", "idCheck": true, ... } ``` 该配置定义了API的基本信息,包括请求方法(POST)、主要字段(如`FNumber`和`FMasterId`)以及是否进行ID检查(`idCheck: true`)。 #### 请求参数详解 请求参数是调用接口时必须提供的信息。以下是主要的请求参数及其含义: - `FMasterId`: 主键ID,用于唯一标识物料。 - `FNumber`: 编码,物料的唯一编码。 - `FName`: 名称,物料的名称。 - `F_UQRW_Text`: 外部码,用于外部系统标识。 - `FBaseUnitId_FNumber`: 基本单位编码,表示物料的基本计量单位。 - `F_UQRW_Combo`: 是否传递OMS,标识是否需要传递到OMS系统。 - `FSpecification`: 规格型号,描述物料的规格和型号。 - `FForbidStatus`: 禁用状态,表示物料是否被禁用。 此外,还有一些其他请求参数用于分页和过滤: - `Limit`: 最大行数,用于分页控制,每次查询返回的最大记录数。 - `StartRow`: 开始行索引,用于分页控制,从哪一行开始查询。 - `TopRowCount`: 返回总行数,用于获取查询结果的总记录数。 - `FilterString`: 过滤条件,例如根据供应商编号和审批日期进行过滤。 - `FieldKeys`: 查询字段集合,指定需要返回的字段。 #### 示例请求配置 根据上述元数据,我们可以构建一个示例请求配置: ```json { "FormId": "BD_MATERIAL", "FieldKeys": ["FMasterId", "FNumber", "FName", "F_UQRW_Text", "FBaseUnitId.FNumber", "F_UQRW_Combo", "FSpecification", "FForbidStatus"], "FilterString": "FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' AND F_UQRW_Combo='是'", "Limit": 2000, "StartRow": "{PAGINATION_START_ROW}" } ``` 在这个示例中,我们指定了业务对象表单ID(`FormId: BD_MATERIAL`),需要查询的字段集合,以及过滤条件和分页参数。 #### 数据处理与转换 获取到原始数据后,需要对其进行清洗和转换,以符合目标系统(管易商品)的要求。例如,可以通过轻易云的数据处理功能,将金蝶云星空返回的数据格式化为管易商品所需的数据结构。 ```json { // 原始数据 { "data": [ { "ID": "1001", "编码": "MAT001", ... }, ... ] } } ``` 经过清洗和转换后: ```json { // 转换后的数据 { "items": [ { "item_id": "1001", "item_code": "MAT001", ... }, ... ] } } ``` #### 自动填充响应 在元数据配置中,我们启用了自动填充响应功能(`autoFillResponse: true`),这意味着平台会自动将接口响应的数据填充到目标系统所需的位置,大大简化了开发工作量。 通过以上步骤,我们成功实现了从金蝶云星空获取物料数据,并将其加工后传递到管易商品系统。这不仅提高了数据处理效率,也确保了数据的一致性和准确性。 ![数据集成平台可视化配置API接口](https://pic.qeasy.cloud/S21.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台:ETL转换与管易云API接口集成 在数据集成生命周期的第二步中,我们重点关注将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,最终转为目标平台管易云API接口所能够接收的格式,并写入目标平台。以下是一个详细的技术案例,展示如何利用轻易云数据集成平台实现这一过程。 #### 元数据配置解析 首先,我们需要理解元数据配置中的各个字段及其含义: ```json { "api": "gy.erp.item.add", "effect": "EXECUTE", "method": "POST", "number": "1", "id": "1", "name": "1", "idCheck": true, "request": [ { "field": "code", "label": "商品代码", "type": "string", "describe": "商品代码", "value": "{F_UQRW_Text}" }, { "field": "name", "label": "商品名称", "type": "string", "describe": "商品名称", "value": "{FName}" }, { "field": "unit_code", "label": "商品单位code", "type": "string", "describe": "商品单位code", "value": "{FBaseUnitId_FNumber}" } ] } ``` - `api`: 目标API接口名称,这里是`gy.erp.item.add`。 - `effect`: 操作类型,这里是`EXECUTE`,表示执行操作。 - `method`: 请求方法,这里是`POST`。 - `request`: 请求参数列表,每个参数包含以下属性: - `field`: API接口中的字段名。 - `label`: 字段标签,便于理解。 - `type`: 字段类型,这里都是字符串类型。 - `describe`: 字段描述。 - `value`: 对应源数据中的字段映射。 #### 数据转换与写入 在实际操作中,我们需要从金蝶物料系统提取数据,并通过轻易云的数据清洗和转换功能,将其转化为管易云API能够接受的格式。以下是具体步骤: 1. **提取数据(Extract)**: 从金蝶物料系统提取原始数据。假设我们提取到的数据如下: ```json { "_id":"12345", "_name":"Example Product", "_unitCode":"EA" } ``` 2. **数据清洗与转换(Transform)**: 根据元数据配置,对提取到的数据进行清洗和转换。映射关系如下: - `{F_UQRW_Text}` -> `_id` - `{FName}` -> `_name` - `{FBaseUnitId_FNumber}` -> `_unitCode` 转换后的数据格式应符合管易云API要求: ```json { “code”: “12345”, “name”: “Example Product”, “unit_code”: “EA” } ``` 3. **加载(Load)**: 使用HTTP POST方法,将转换后的数据发送到管易云API接口。请求示例如下: ```http POST /gy.erp.item.add HTTP/1.1 Host: api.guanyiyun.com Content-Type: application/json { “code”: “12345”, “name”: “Example Product”, “unit_code”: “EA” } ``` #### 实际应用中的注意事项 - **字段映射准确性**:确保每个字段都正确映射,避免因字段错误导致的数据传输失败。 - **数据类型一致性**:确保源数据和目标API要求的数据类型一致,例如字符串、数字等。 - **错误处理机制**:在实际应用中,需要设计完善的错误处理机制,捕获并记录任何可能发生的错误,以便后续排查和修复。 通过上述步骤,我们可以高效地完成从金蝶物料系统到管易云平台的数据集成任务。这不仅提升了业务流程的自动化程度,也确保了数据的一致性和准确性。 ![钉钉与ERP系统接口开发配置](https://pic.qeasy.cloud/T12.png~tplv-syqr462i7n-qeasy.image)