利用API实现金蝶云与管易云的数据对接和转换

  • 轻易云集成顾问-冯潇
### 金蝶云星空与管易云数据集成案例:分步式调入单到其他入库单(京东自营) 在企业信息系统的复杂环境中,不同平台之间的数据集成常常面临巨大的挑战。本文将详细探讨如何使用轻易云数据集成平台,将金蝶云星空中的分步式调入单数据高效对接至管易云,生成对应的其他入库单(京东自营)。 为了实现这一目标,我们需要充分利用金蝶云星空和管易云提供的API接口。具体而言,通过调用金蝶云星空的`executeBillQuery`接口来获取调入单据,并通过管易云的`gy.erp.stock.other.in.add`接口进行实际写入,完成库存操作。 #### 高吞吐量的数据写入能力 首先,要确保大量数据能够快速被集成,选择适合大规模并发处理的数据写入方案是必不可少的一环。轻易云平台支持高吞吐量的数据写入,使得从金蝶系统中抓取的大量订单数据能迅速、高效地传输到管易系统。此外,这一特性还保证了在高峰业务期间,也能够维持较低延迟和高响应速度,从而提升整体业务处理时效性。 #### 集中的监控与告警系统 实时跟踪每一个数据包流动状态及其性能表现,是确保整个集成过程顺畅运行的重要保障。在本次案例中,我们设置了一套集中化的监控和告警机制,对各个关键节点进行全程监管。一旦出现异常,会立即触发预警,同时保存详细日志以供后续分析。这种透明可视化管理极大降低了人工干预频次,提高了运维效率。 #### 自定义转换逻辑与API资产管理 由于金蝶和管易两者间存在一定数据格式上的差异,为此我们采用自定义转换逻辑进行了相应调整。从结构规范、字段映射,到值域约束,每一步都经过精确配置,以适应特定业务需求。同时,通过API资产管理功能,全面掌握所有API调用情况,有助于优化资源配置,实现更流畅、更可靠的数据对接流程。 下一节内容将深入解读如何逐步构建上述方案,包括如何调用内置或外部服务完成复杂的数据转换,以及面对分页、限流等问题时采取哪些技术手段。这些细节不仅能帮助您理解整体实施步骤,还能为您的其它项目提供借鉴。 ![数据集成平台可视化配置API接口](https://pic.qeasy.cloud/D21.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,以获取并加工数据。 #### 接口概述 `executeBillQuery`是金蝶云星空提供的一个查询接口,用于获取特定业务对象的数据。该接口支持POST请求,并且需要传递多个参数来定义查询条件和返回字段。 #### 元数据配置解析 根据提供的元数据配置,我们可以看到以下关键参数: - **api**: `executeBillQuery` - **effect**: `QUERY` - **method**: `POST` - **number**: `FBillNo` - **id**: `FSTKTRSINENTRY_FEntryID` - **name**: `FBillNo` - **idCheck**: `true` 这些参数定义了API的基本信息和请求方式。接下来,我们将重点关注请求参数和其他请求配置。 #### 请求参数 元数据中定义了多个请求参数,每个参数都有其特定的用途: 1. **FSTKTRSINENTRY_FEntryID**(分录主键ID) 2. **FID**(实体主键) 3. **FBillNo**(单据编号) 4. **FNOTE**(备注) 5. **FQty**(调入数量) 6. **F_UQRW_BaseProperty**(物料外部码) 7. **F_UQRW_BaseProperty1**(仓库外部码) 8. **FMaterialID**(物料编码) 9. **F_UQRW_DRCKLX**(调入仓库类型) 10. **F_UQRW_DCCKLX**(调出仓库类型) 这些字段涵盖了业务对象的主要属性,确保我们能够获取到完整的数据记录。 #### 其他请求配置 除了基本的请求参数外,还有一些其他配置项: 1. **Limit** 和 **StartRow** - 用于分页查询,控制每次查询返回的数据量和起始行索引。 2. **TopRowCount** - 返回总行数,用于了解查询结果的规模。 3. **FilterString** - 过滤条件,例如:`FSupplierId.FNumber = 'VEN00010' and FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'`。 4. **FieldKeys** - 需查询的字段key集合,通过逗号分隔。 5. **FormId** - 业务对象表单Id,例如:`STK_TRANSFERIN`。 这些配置项使得我们能够灵活地控制查询范围和返回结果,从而提高数据处理效率。 #### 调用示例 以下是一个调用`executeBillQuery`接口的示例代码片段: ```json { "api": "executeBillQuery", "method": "POST", "params": { "FormId": "STK_TRANSFERIN", "FieldKeys": ["FBillNo", "FID", "FQty", "FMaterialID", "F_UQRW_BaseProperty"], "FilterString": "FApproveDate>='2023-01-01'", "Limit": 100, "StartRow": 0 } } ``` 在这个示例中,我们指定了业务对象表单Id为`STK_TRANSFERIN`,并且只查询特定字段。同时,通过设置过滤条件和分页参数,确保我们能够高效地获取所需数据。 #### 数据加工 在获取到原始数据后,我们需要对其进行清洗和转换,以便后续处理。例如,可以使用轻易云平台提供的数据转换工具,对字段进行格式化、合并或拆分操作。这一步骤确保了数据的一致性和准确性,为后续的数据写入奠定基础。 #### 总结 通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,可以高效地获取并加工所需业务数据。合理配置元数据和请求参数,是实现无缝数据对接的重要前提。在实际应用中,根据具体需求调整过滤条件和返回字段,将极大提升数据处理效率。 ![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/S2.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将金蝶分步式调入单转换为管易其他入库单(京东自营) 在数据集成生命周期的第二步中,我们需要将从源平台(金蝶)获取的数据进行ETL(提取、转换、加载)处理,以符合目标平台(管易云API接口)的格式要求。以下是具体的技术实现过程。 #### 数据请求与清洗 首先,从金蝶系统中提取需要的数据。假设我们已经完成了数据的初步清洗和准备工作,接下来我们重点关注如何将这些数据转换为管易云API能够接受的格式。 #### 数据转换与写入 在轻易云数据集成平台中,我们通过配置元数据来实现对目标API接口的调用。以下是针对管易云API接口`gy.erp.stock.other.in.add`的详细配置说明: ```json { "api": "gy.erp.stock.other.in.add", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "warehouse_code", "label": "仓库代码", "type": "string", "describe": "111", "value": "{F_UQRW_BaseProperty1}" }, { "field": "note", "label": "备注", "type": "string", "describe": "111", "value": "{FNOTE}" }, { "field": "wms_bizcode", "label": "第三方系统单号", "type": "string", "describe": "判断排重的依据", "value": "{FBillNo}" }, { "field": "mail_no", "label": "物流单号", "type": "string", "value": "{FBillNo}" }, { "field": "details", "label": "入库明细", "type": ":array", 'value': 'list', 'children': [ { 'field': 'item_code', 'label': '商品代码', 'type': 'string', 'value': '{F_UQRW_BaseProperty}' }, { 'field': 'qty', 'label': '数量', 'type': 'string', 'value': '{FQty}' } ] } ], 'groupCalculate': { 'headerGroup': ['FBillNo', 'FNOTE', 'F_UQRW_BaseProperty1'], 'bodyGroup': ['F_UQRW_BaseProperty', 'FQty'], 'bodyName': ':list', 'calculate': [] } } ``` #### 配置解析 1. **API基本信息** - `api`: 指定调用的管易云API接口。 - `effect`: 执行操作类型。 - `method`: HTTP请求方法,这里使用`POST`。 - `idCheck`: 是否进行ID检查。 2. **请求参数映射** - `warehouse_code`: 仓库代码,映射到金蝶系统中的字段`{F_UQRW_BaseProperty1}`。 - `note`: 备注信息,映射到金蝶系统中的字段`{FNOTE}`。 - `wms_bizcode`: 第三方系统单号,用于排重,映射到金蝶系统中的字段`{FBillNo}`。 - `mail_no`: 物流单号,同样映射到金蝶系统中的字段`{FBillNo}`。 3. **入库明细** - `details`: 入库明细是一个数组类型,包含多个子字段。 - `item_code`: 商品代码,映射到金蝶系统中的字段`{F_UQRW_BaseProperty}`。 - `qty`: 数量,映射到金蝶系统中的字段`{FQty}`。 4. **分组计算** - `headerGroup`: 定义头部信息的分组字段,如单据编号、备注和仓库代码。 - `bodyGroup`: 定义明细信息的分组字段,如商品代码和数量。 - `bodyName`: 明细部分的名称,这里定义为`list`。 #### 数据写入 在完成上述配置后,通过轻易云平台执行ETL操作,将转换后的数据发送至管易云API接口,实现数据写入目标平台。这一步骤确保了源平台的数据能够准确无误地传输并存储在目标平台中。 通过以上配置和操作,我们成功地将金蝶分步式调入单的数据转换为符合管易其他入库单(京东自营)格式的数据,并写入到管易云平台,实现了不同系统间的数据无缝对接。 ![泛微OA与ERP系统接口开发配置](https://pic.qeasy.cloud/T7.png~tplv-syqr462i7n-qeasy.image)