技术解析:管易销售发货单到金蝶其他出库单的智能集成

  • 轻易云集成顾问-李国敏
### 管易销售发货单到金蝶其他出库单的数据集成案例 在本技术分享中,我们将深入探讨如何通过轻易云数据集成平台,实现管易云·奇门系统中的销售发货单数据,自动同步至金蝶云星空的其他出库单。具体方案名为“管易销售发货单-->金蝶其他出库单(其他出库单同步(线下))”。 此项目的关键在于高效处理和实时监控庞大的数据流动,同时确保各个环节的准确性与可靠性。为了实现这一目标,我们运用了以下策略: 1. **高吞吐量的数据写入能力**: - 保障了大量管易云·奇门系统中的发货数据能够快速、高效地写入到金蝶云星空。 2. **定时抓取与批量处理**: - 通过定时可靠地抓取`gy.erp.trade.deliverys.get`接口数据,以避免漏单,并批量整合这些数据后,再使用`batchSave`接口将其推送至金蝶云星空。 3. **分页与限流机制**: - 为应对API调用频率限制及大规模分页问题,对获取和发送的数据进行了智能分段管理,确保每次请求不超负荷且稳定执行。 4. **自定义数据转换及映射逻辑**: - 针对管易云·奇门和金蝶云星空之间存在的数据结构差异,自定义了转换逻辑,保证跨系统间的数据有效兼容。同时,在轻松可视化的环境中设计并管理整个流程,使得操作更加直观、简洁。 5. **集中监控与实时告警**: - 数据处理过程通过集中式监控和告警系统进行全程监督,一旦出现异常情况,例如网络延迟或API故障,将及时通知相关人员,以便立即采取措施进行修正。 6. **错误重试机制与质量控制**: - 落实严格的错误重试机制,同时结合丰富的日志记录功能,即使遇到意外中断等问题,也能迅速恢复正常业务流程,并保持高质量标准以达成无缝衔接。 以上是我们面临的一些主要技术挑战以及相对应解决方案。在接下来的详细实施步骤部分,我们将具体解析每一个环节,从初始配置,到实际运行状态,以及最终结果验证的方法,一一详尽介绍。 ![用友与外部系统接口集成开发](https://pic.qeasy.cloud/D24.png~tplv-syqr462i7n-qeasy.image) ### 调用管易云·奇门接口gy.erp.trade.deliverys.get获取并加工数据 在数据集成的生命周期中,调用源系统接口是关键的第一步。本文将详细探讨如何通过轻易云数据集成平台调用管易云·奇门接口`gy.erp.trade.deliverys.get`来获取销售发货单数据,并进行初步加工处理。 #### 接口调用配置 首先,我们需要配置接口调用的元数据。根据提供的元数据配置,以下是具体的请求参数和其描述: - **start_create**: 创建时间开始段,类型为`datetime`。 - **end_create**: 创建时间结束段,类型为`datetime`。 - **start_modify_date**: 修改时间开始段,类型为`datetime`,默认值为上次同步时间(`{{LAST_SYNC_TIME|datetime}}`)。 - **end_modify_date**: 修改时间结束段,类型为`datetime`,默认值为当前时间(`{{CURRENT_TIME|datetime}}`)。 - **del**: 是否返回已作废的单据,类型为`int`,默认值为0(不返回已作废的单据)。 - **delivery**: 发货状态,类型为`int`,默认值为1(发货成功)。 - **code**: 单据编码,类型为`string`。 - **warehouse_code**: 仓库编码,类型为`string`。 - **shop_code**: 店铺编码,类型为`string`。 - **outer_code**: 平台单号,类型为 `string`。 - **mail_no**: 物流单号,类型为 `string`。 - **start_delivery_date**: 发货时间开始段,类型为 `datetime`。 - **end_delivery_date**: 发货时间结束段,类型为 `datetime`。 分页参数: - **page_no**: 页码,类型为 `int`, 默认值1。 - **page_size**: 每页大小, 类型为 `int`, 默认值20。 #### 数据请求与清洗 在实际操作中,我们通过POST方法发送请求,以获取符合条件的销售发货单数据。以下是一个示例请求体: ```json { "start_create": "2023-01-01T00:00:00", "end_create": "2023-01-31T23:59:59", "start_modify_date": "{{LAST_SYNC_TIME|datetime}}", "end_modify_date": "{{CURRENT_TIME|datetime}}", "del": 0, "delivery": 1, "page_no": 1, "page_size": 20 } ``` 在接收到响应后,我们需要对数据进行初步清洗和验证。轻易云平台提供了自动填充响应(autoFillResponse)的功能,可以简化这一过程。 #### 数据转换与写入 在完成数据请求与清洗后,我们进入数据转换与写入阶段。此时,需要将获取到的数据转换成目标系统所需的格式。在本案例中,我们将销售发货单数据转换成金蝶其他出库单的数据格式。 例如,将管易云中的字段映射到金蝶系统中的相应字段: ```json { "source_field_1": "target_field_1", "source_field_2": "target_field_2", ... } ``` #### 条件过滤 根据元数据配置中的条件过滤规则,我们可以进一步筛选需要处理的数据。例如: ```json { "condition_bk": [ { "field": "platform_code", "logic": "like", "value": "CKSQ" } ], "condition": [ { "field": "platform_code", "logic": "like", "value": "CKSQ" }, { "field": "details.order_type", "logic": "neqv2", "value": "Maintain" } ] } ``` 这些条件确保我们只处理特定平台代码且订单类型不等于“Maintain”的记录。 #### 实时监控与调试 轻易云平台提供了实时监控和调试功能,可以帮助我们在整个过程中跟踪数据流动和处理状态。一旦发现问题,可以迅速定位并解决,从而提高整体效率和透明度。 通过以上步骤,我们成功实现了从管易云·奇门接口获取销售发货单数据,并将其转换和写入到金蝶其他出库单中。这一过程不仅保证了数据的一致性和准确性,还大大提升了业务处理效率。 ![打通用友BIP数据接口](https://pic.qeasy.cloud/S10.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现金蝶云星空API接口的数据转换与写入 在数据集成的生命周期中,数据转换与写入是关键的一步。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据(例如管易销售发货单)转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。 #### 数据请求与清洗 首先,我们需要从源系统(管易销售发货单)获取原始数据,并进行必要的清洗和预处理。这一步骤确保了数据的准确性和一致性,为后续的ETL(提取、转换、加载)过程打下基础。 #### 数据转换与写入 接下来,我们重点讨论如何将清洗后的数据通过ETL过程转换为金蝶云星空API所需的格式,并最终写入目标平台。以下是具体操作步骤: 1. **定义API接口和请求方法** 我们使用金蝶云星空提供的`batchSave` API接口,采用POST方法进行数据提交。具体配置如下: ```json { "api": "batchSave", "method": "POST", "idCheck": true } ``` 2. **配置请求参数** 请求参数包括单据编号、单据类型、库存组织、日期等字段。以下是部分关键字段的配置示例: - **单据编号(FBillNo)** ```json { "field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号" } ``` - **单据类型(FBillTypeID)** ```json { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "{FBillTypeID}", "mapping": { "target": "65534498a757d6663904dc1e", "direction": "positive" } } ``` 3. **处理复杂字段** 对于一些复杂字段,如明细信息(FEntity),我们需要进一步细化配置。例如,明细信息中的物料编码、实发数量等字段: - **物料编码(FMaterialId)** ```json { "field": "FMaterialId", "label": "物料编码", "type": "string", "describe": "基础资料", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "{{details.FNumber}}" } ``` - **实发数量(FQty)** ```json { "field": "FQty", 'label': '实发数量', 'type': 'string', 'describe': '数量', 'value': '{qty}' } ``` 4. **提交并审核** 在所有字段配置完成后,我们可以设置是否自动提交并审核,以及是否验证基础资料有效性: ```json { 'IsAutoSubmitAndAudit': true, 'IsVerifyBaseDataField': true, 'Operation': 'Save' } ``` 5. **执行操作** 最后,通过批量保存方法将处理后的数据提交到金蝶云星空系统: ```json { 'operation': { 'rowsKey': 'array', 'rows': 1, 'method': 'batchArraySave' } } ``` #### 实践案例 假设我们有一份管易销售发货单,需要将其转化为金蝶其他出库单。以下是一个具体的元数据配置示例: ```json { 'api':'batchSave', ... 'request':[{ ... {'field':'FBillNo','label':'单据编号','type':'string','describe':'单据编号'}, {'field':'FBillTypeID','label':'单据类型','type':'string','describe':'单据类型',...}, {'field':'FStockOrgId','label':'库存组织','type':'string','describe':'组织',...}, {'field':'FDate','label':'日期','type':'string','describe':'日期',...}, ... }], ... } ``` 通过上述配置,我们能够成功地将管易销售发货单的数据转换并写入到金蝶云星空系统中,实现不同系统间的数据无缝对接。这不仅提高了业务流程的透明度和效率,也确保了数据的一致性和准确性。 ![钉钉与MES系统接口开发配置](https://pic.qeasy.cloud/T26.png~tplv-syqr462i7n-qeasy.image)