如何利用轻易云平台集成金蝶云与旺店通数据

  • 轻易云集成顾问-冯潇
### 金蝶云星空数据集成到旺店通·企业奇门的技术解析 在本案例中,我们将重点探讨如何通过轻易云平台实现金蝶云星空数据与旺店通·企业奇门系统的高效对接。以“简单生产退库单对接其他出库单——金蝶—旺店通”为实际运行方案,本次集成任务需求如下: 首先,为了确保从金蝶云星空的数据不漏单,我们采用了其API接口executeBillQuery,定时可靠地抓取相关数据。这一过程需要处理分页和限流问题,通过适当的批量请求机制和错误重试策略来保证数据完整性。 其次,在大量数据写入到旺店通·企业奇门时,利用其wdt.stockout.order.push API接口进行操作。考虑到两者之间的数据格式差异,我们专门设计了一套定制化的数据映射逻辑,确保每条记录都能准确无误地写入目标系统。 此外,为保障流程透明度和实时监控能力,我们引入了详细的日志记录机制。不仅能追踪每一个请求及其响应状态,还便于在发生异常时快速定位并采取纠正措施。特别是在面对接口调用失败或速率限制等异常情况时,实施有效的错误重试机制,以最大程度提升整体集成稳定性。 通过上述步骤,实现了从金蝶云星空至旺店通·企业奇门全程自动化、高效且精确定向的数据同步操作。在随后的部分中,将进一步介绍具体配置步骤及主要代码实现细节。 ![金蝶与外部系统打通接口](https://pic.qeasy.cloud/D3.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成生命周期的第一步中,调用源系统的API接口是至关重要的一环。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,以获取并加工生产退库单的数据。 #### 接口配置与请求参数 首先,我们需要了解`executeBillQuery`接口的基本配置和请求参数。根据提供的元数据配置,接口采用POST方法进行调用,主要用于查询(effect: QUERY)。以下是关键的请求参数: - **FID**: 实体主键 - **FDocumentStatus**: 单据状态 - **FBillNo**: 单据编号 - **FApproveDate**: 审核日期 - **FDescription**: 备注 - **FBillType.FNumber**: 单据类型 - **FEntity_FEntryID**: 实体主键 - **FMaterialId.FNumber**: 物料编码 - **FOutStockType**: 退库类型 - **FUnitID.FNumber**: 单位 - **FOwnerTypeId**: 货主类型 - **FOwnerId.FNumber**: 货主 - **FStockId.FNumber**: 仓库 - **FOutQty**: 实退数量 此外,还有一些分页和过滤参数: - **Limit**: 最大行数,用于分页控制。 - **StartRow**: 开始行索引。 - **TopRowCount**: 返回总行数。 - **FilterString**: 过滤条件,例如:`FSupplierId.FNumber = 'VEN00010' and FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'` - **FieldKeys**: 查询字段集合。 - **FormId**: 业务对象表单ID,例如:`SP_OUTSTOCK` #### 构建请求 在实际操作中,我们需要构建一个符合上述参数要求的请求。以下是一个示例请求: ```json { "FormId": "SP_OUTSTOCK", "FieldKeys": [ "FID", "FDocumentStatus", "FBillNo", "FApproveDate", "FDescription", "FBillType.FNumber", "FEntity_FEntryID", "FMaterialId.FNumber", "FOutStockType", "FUnitID.FNumber", "FOwnerTypeId", "FOwnerId.FNumber", "FStockId.FNumber", "FOutQty" ], "FilterString": "FDocumentStatus='C' and FStockId.FNumber='001' and FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'", "Limit": "{PAGINATION_PAGE_SIZE}", "StartRow": "{PAGINATION_START_ROW}" } ``` #### 数据清洗与转换 获取到数据后,需要对其进行清洗和转换,以便后续写入目标系统。在轻易云平台上,可以通过可视化界面设置数据清洗规则。例如: 1. **字段映射与重命名** - 将金蝶返回的字段名映射为目标系统所需的字段名。 - 示例:将`FBillNo`映射为目标系统中的`OrderNo`。 2. **数据格式转换** - 将日期格式从金蝶格式转换为目标系统所需格式。 - 示例:将审核日期`2023/10/01`转换为`2023-10-01T00:00:00Z`。 3. **数据过滤** - 根据业务需求过滤掉不需要的数据记录。 - 示例:仅保留审核通过且仓库编号为‘001’的记录。 #### 实际案例应用 假设我们需要将生产退库单的数据对接到旺店通系统,具体步骤如下: 1. 调用金蝶云星空的`executeBillQuery`接口,获取生产退库单的数据。 2. 对返回的数据进行清洗和转换,确保符合旺店通系统的数据格式要求。 3. 将处理后的数据通过轻易云平台写入旺店通系统,实现无缝对接。 通过上述步骤,我们可以高效地完成从金蝶云星空到旺店通的数据集成任务。这不仅提高了数据处理效率,还确保了数据的一致性和准确性。 ![系统集成平台API接口配置](https://pic.qeasy.cloud/S7.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台生命周期第二步:ETL转换与写入旺店通·企业奇门API接口 在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是一个至关重要的环节。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,并转为目标平台旺店通·企业奇门API接口所能够接收的格式,最终写入目标平台。 #### API接口配置 在对接过程中,我们需要配置旺店通·企业奇门的API接口。以下是我们使用的元数据配置: ```json { "api": "wdt.stockout.order.push", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "outer_no", "label": "外部单号", "type": "string", "describe": "外部系统的唯一单据编号,避免重复推送数据", "value": "{FBillNo}" }, { "field": "warehouse_no", "label": "仓库编号", "type": "string", "describe": "代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置)", "value": "{FStockId}" }, { "field": "remark", "label": "备注", "type": "string", "describe": "其他出库单备注", "value": "简单生产退库" }, { "field": "reason", ... ``` #### 数据请求与清洗 首先,我们需要从源系统中提取数据。这一步通常涉及到连接数据库或调用API获取原始数据。在这个案例中,我们假设已经从金蝶系统中获取了生产退库单的数据。 #### 数据转换 接下来,我们需要将这些原始数据转换为旺店通·企业奇门API所需的格式。以下是具体字段映射和转换逻辑: 1. **外部单号 (outer_no)**: 对应金蝶系统中的 `FBillNo`。 2. **仓库编号 (warehouse_no)**: 对应金蝶系统中的 `FStockId`。 3. **备注 (remark)**: 固定值为“简单生产退库”。 4. **货品列表节点 (detail_list)**: - **商家编码 (spec_no)**: 对应金蝶系统中的 `FMaterialId`。 - **出库数量 (num)**: 对应金蝶系统中的 `FOutQty`。 - **价格 (price)** 和 **批次 (batch_no)**: 根据业务需求进行填充。 #### 数据写入 完成数据转换后,我们将其通过POST请求写入到旺店通·企业奇门API接口。以下是一个示例请求体: ```json { ... { ... { ... }, { ... } } } ``` 在这个过程中,轻易云数据集成平台提供了全透明可视化操作界面,使得每个环节都清晰易懂,并实时监控数据流动和处理状态。这不仅提升了业务透明度,还极大地提高了效率。 通过上述步骤,我们成功实现了从金蝶系统到旺店通·企业奇门的无缝数据对接。轻易云数据集成平台在这一过程中发挥了关键作用,确保了数据处理过程的高效性和可靠性。 ![如何对接企业微信API接口](https://pic.qeasy.cloud/T10.png~tplv-syqr462i7n-qeasy.image)