使用轻易云平台实现ETL,转换金蝶数据写入吉客云

  • 轻易云集成顾问-贺强
### 案例分享:金蝶云星空数据集成到吉客云 在企业信息化管理中,系统间的数据对接和集成是必不可少的一环。本案例将介绍通过轻易云数据集成平台,将金蝶云星空的供应商数据高效地集成到吉客云,解决方案命名为“(金蝶->吉客云)供应商”。 首先,通过调用金蝶云星空的`executeBillQuery`接口实现定时可靠的数据抓取,这是确保不漏单的关键。为了处理API接口分页与限流问题,我们设计了自动分页机制,并设置合理的限流策略来保证请求效率。此外,为了应对两者之间可能存在的数据格式差异,我们进行了精细的数据映射与转换。 接下来,大量获取到的供应商数据需要快速、安全地写入到吉客云,这通过`erp.vend.create` API 接口完成。而为了防止在批量操作过程中出现错误或异常情况,实施了完善的异常处理机制和错误重试逻辑,有效提高了整个流程中的稳定性和可靠性。 以上技术方案不仅大幅简化了复杂度,同时提供实时监控和日志记录功能,使得集成过程更加可见透明。在此基础上,此次案例展示将详细讲解具体实施步骤及成功经验,以期为其他类似需求提供参考框架。 ![如何对接金蝶云星空API接口](https://pic.qeasy.cloud/D24.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细介绍如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取供应商数据,并进行相应的数据加工。 #### 接口概述 金蝶云星空的`executeBillQuery`接口用于查询业务单据数据。该接口支持POST请求,能够根据指定的查询条件返回所需的数据字段。以下是元数据配置中的关键参数: - **api**: `executeBillQuery` - **method**: `POST` - **effect**: `QUERY` - **number**: `FNumber` - **id**: `FSupplierId` - **name**: `FNumber` - **idCheck**: `true` #### 请求参数配置 根据元数据配置,我们需要构建一个包含多个字段的请求体,以便从金蝶云星空获取供应商信息。以下是主要的请求字段及其描述: ```json { "FSupplierId": "FSupplierId", "FNumber": "编码", "FName": "名称", "FCreateOrgId_FNumber": "创建组织", "FUseOrgId_FNumber": "使用组织", "FDescription": "描述", "FShortName": "简称", ... } ``` 此外,还有一些分页和过滤参数: ```json { "Limit": "100", "StartRow": "", "TopRowCount": "", "FilterString": "FAuditDate>='{{LAST_SYNC_TIME|dateTime}}'", "FieldKeys": ["FSupplierId", "FNumber", ...], "FormId": "BD_Supplier" } ``` #### 数据请求与清洗 首先,我们需要构建HTTP POST请求,发送到金蝶云星空的API端点。以下是一个示例请求体: ```json { "FormId": "BD_Supplier", "FieldKeys": [ "FSupplierId", "FNumber", ... ], "FilterString": "FAuditDate>='2023-01-01'", ... } ``` 在轻易云平台上,可以通过可视化界面配置这些参数,并生成对应的API调用。 #### 数据转换与写入 获取到原始数据后,需要对其进行清洗和转换,以便写入目标系统(如吉客云)。例如,将供应商编码和名称映射到目标系统对应的字段: ```json { "supplier_code": "{{FNumber}}", "supplier_name": "{{FName}}", ... } ``` 可以使用轻易云平台提供的数据转换工具,对字段进行映射和格式转换。 #### 实践案例 假设我们需要从金蝶云星空获取所有状态为“已审核”的供应商信息,并将其同步到吉客云。具体步骤如下: 1. **配置API调用**: - 设置`FormId`为`BD_Supplier`。 - 配置`FieldKeys`为所需字段,如`["FSupplierId", "FNumber", ...]`。 - 设置过滤条件:`"FilterString": "FAuditDate>='2023-01-01'"`。 2. **发送请求并接收响应**: - 使用轻易云平台发送POST请求。 - 接收并解析响应数据。 3. **数据清洗与转换**: - 将金蝶返回的数据字段映射到吉客云对应字段。 - 对必要的数据进行格式转换,如日期格式、数值类型等。 4. **写入目标系统**: - 将处理后的数据通过API或其他方式写入吉客云。 通过上述步骤,可以实现从金蝶云星空到吉客云的数据无缝对接,确保供应商信息及时、准确地同步更新。这不仅提高了业务效率,还保证了数据的一致性和完整性。 ![金蝶与WMS系统接口开发配置](https://pic.qeasy.cloud/S4.png~tplv-syqr462i7n-qeasy.image) ### 将金蝶供应商数据转换并写入吉客云API接口 在数据集成生命周期的第二步中,我们需要将已经集成的源平台(金蝶)的数据进行ETL(提取、转换、加载)处理,转化为目标平台(吉客云)所能够接收的格式,并最终写入目标平台。本文将详细探讨如何利用轻易云数据集成平台,实现这一过程。 #### 元数据配置解析 在本案例中,我们的目标是将金蝶系统中的供应商信息通过吉客云API接口`erp.vend.create`写入到吉客云系统中。以下是元数据配置: ```json { "api": "erp.vend.create", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ {"field": "code", "label": "编码", "type": "string", "describe": "编码", "value": "{FNumber}"}, {"field": "classCode", "label": "分类编码", "type": "string", "describe": "分类编码", "value": "{FGroup_FNumber}"}, {"field": "className", "label": "分类名称", "type": "string", "describe": "分类名称", "value": "{FGroup_FName}"}, {"field": "name", "label": "供应商名称", "type": "string", "describe": "供应商名称", "value": "{FName}"}, {"field": "abbreviation", "label": "简称", "type": "string", "describe": "简称", "value": "{FShortName}"} ] } ``` #### 数据提取与清洗 首先,我们从金蝶系统中提取供应商数据。假设我们已经通过轻易云平台完成了数据请求,并获得了如下格式的数据: ```json { FNumber: 'V001', FGroup_FNumber: 'G001', FGroup_FName: '电子元器件', FName: '深圳市某某电子有限公司', FShortName: '某某电子' } ``` #### 数据转换 接下来,我们需要将上述提取的数据按照吉客云API接口的要求进行转换。根据元数据配置,将金蝶系统中的字段映射到吉客云API接口所需的字段: - `FNumber` -> `code` - `FGroup_FNumber` -> `classCode` - `FGroup_FName` -> `className` - `FName` -> `name` - `FShortName` -> `abbreviation` 转换后的JSON格式如下: ```json { code: 'V001', classCode: 'G001', className: '电子元器件', name: '深圳市某某电子有限公司', abbreviation: '某某电子' } ``` #### 数据写入 最后一步是将转换后的数据通过POST请求写入到吉客云系统中。根据元数据配置,调用API接口`erp.vend.create`,并传递上述JSON对象。 具体实现代码示例(假设使用JavaScript): ```javascript const axios = require('axios'); const data = { code: 'V001', classCode: 'G001', className: '电子元器件', name: '深圳市某某电子有限公司', abbreviation: '某某电子' }; axios.post('https://api.jikeyun.com/erp/vend/create', data) .then(response => { console.log('Data successfully written to JiKeYun:', response.data); }) .catch(error => { console.error('Error writing data to JiKeYun:', error); }); ``` 通过以上步骤,我们成功地将金蝶系统中的供应商信息转换并写入到了吉客云系统中。这一过程充分利用了轻易云数据集成平台的强大功能,实现了不同系统间的数据无缝对接和高效管理。 ![如何对接用友BIP接口](https://pic.qeasy.cloud/T10.png~tplv-syqr462i7n-qeasy.image)