使用轻易云数据集成平台完成金蝶与易仓的ETL转换

  • 轻易云集成顾问-张妍琪
### 金蝶云星空数据集成到易仓:采购入库单对接案例分享 在这个案例中,我们将探讨如何有效地将金蝶云星空的采购入库单数据无缝集成到易仓系统,通过轻易云平台实现这一过程。具体方案名称为“Done-金蝶-采购入库单——>易仓-采购单”,本文着重分享技术要点和实际操作步骤。 首先,确保从金蝶云星空获取数据时不漏单是至关重要的一环。我们使用了executeBillQuery接口,该接口支持分页查询功能,但需处理好分页和限流问题,以保证每次请求能顺利完成并返回完整的数据。同时,为了避免遗漏或重复抓取,定时可靠的调度机制被设置来定期调用该API。 为了高效快速地将大量数据写入易仓系统,我们利用syncPurchaseOrders API进行批量插入操作。在此过程中,必须关注双方系统之间的数据格式差异,并做必要的转换处理。例如,将金蝶云星空中的字段映射为符合易仓要求的格式,这一步通常需要通过轻易云提供的自定义映射工具来实现,高效且准确地达到目标。 另外,当出现异常情况时,例如网络中断或数据冲突,系统采用错误重试机制进行自动修复。这一机制不仅大幅降低了人为干预所需时间,也提升了整个流程的稳定性与可靠性。同时,各个关键步骤均有日志记录与实时监控,以便优化流程及后续排查故障。 总之,通过这些技术手段和配置策略,我们成功实现了一个稳定、高效、透明的数据集成解决方案,使得企业能够更加迅速、准确地进行业务操作。 ![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/D2.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取采购入库单的数据,并进行初步加工。 #### 接口配置与请求参数 首先,我们需要配置好调用金蝶云星空接口的元数据。根据提供的元数据配置,我们可以看到`executeBillQuery`接口的详细信息,包括请求方法、字段映射和其他请求参数。 ```json { "api": "executeBillQuery", "effect": "QUERY", "method": "POST", "number": "FBillNo", "id": "FInStockEntry_FEntryId", ... } ``` 该接口使用POST方法进行调用,主要查询采购入库单的数据。以下是一些关键字段及其描述: - `FBillNo`: 单据编号 - `FInStockEntry_FEntryId`: 入库分录ID - `FDocumentStatus`: 单据状态 - `FDate`: 入库日期 - `FSupplierId_FNumber`: 供应商编码 #### 请求示例 为了获取采购入库单的数据,我们需要构建一个请求体,该请求体包含了必要的查询条件和字段集合。例如,我们可以设置过滤条件为特定供应商编码,并且仅查询特定时间段内已审核的单据。 ```json { "FormId": "STK_InStock", "FieldKeys": [ "FBillNo", "FInStockEntry_FEntryId", "FDocumentStatus", "FDate", "FSupplierId.FNumber" ], "FilterString": "FSupplierId.FNumber = 'VEN00010' and FApproveDate >= '2023-01-01'", "Limit": 100, "StartRow": 0 } ``` 在上述请求中,`FormId`指定了业务对象表单ID为采购入库单(`STK_InStock`),`FieldKeys`指定了我们需要查询的字段集合,`FilterString`设置了过滤条件,限制查询结果为特定供应商且审核日期在2023年1月1日之后的记录。 #### 数据清洗与转换 获取到原始数据后,我们需要对数据进行清洗和转换,以便后续处理。轻易云平台提供了强大的数据处理功能,可以通过编写脚本或配置规则来实现这一过程。 例如,对于获取到的采购入库单数据,我们可能需要进行以下操作: 1. **字段重命名**:将原始字段名转换为目标系统所需的字段名。 2. **数据格式转换**:将日期格式从字符串转换为标准日期格式。 3. **过滤无效记录**:移除状态为“作废”的记录。 以下是一个简单的数据清洗示例: ```python def clean_data(record): # 重命名字段 record['bill_no'] = record.pop('FBillNo') record['entry_id'] = record.pop('FInStockEntry_FEntryId') # 转换日期格式 record['date'] = datetime.strptime(record['FDate'], '%Y-%m-%d') # 移除作废记录 if record['FDocumentStatus'] == '作废': return None return record cleaned_data = [clean_data(record) for record in raw_data if clean_data(record)] ``` #### 数据写入目标系统 完成数据清洗和转换后,下一步是将处理后的数据写入目标系统。在本案例中,目标系统是易仓的采购单模块。轻易云平台支持多种异构系统的数据写入,可以通过配置相应的API接口或数据库连接来实现这一过程。 例如,可以通过以下方式将清洗后的数据写入易仓: ```python def write_to_target_system(data): for record in data: response = requests.post('https://target-system-api.com/purchase-orders', json=record) if response.status_code != 200: log.error(f"Failed to write record: {record}") write_to_target_system(cleaned_data) ``` #### 总结 通过轻易云数据集成平台调用金蝶云星空接口获取采购入库单的数据,并进行初步加工,是实现不同系统间无缝对接的重要步骤。本文详细介绍了如何配置和调用`executeBillQuery`接口,以及如何对获取到的数据进行清洗和转换,为后续的数据处理和写入打下坚实基础。 ![金蝶与外部系统打通接口](https://pic.qeasy.cloud/S17.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现金蝶采购入库单到易仓采购单的ETL转换 在数据集成过程中,将金蝶采购入库单的数据转换并写入到易仓平台的采购单接口是一个典型的ETL(Extract, Transform, Load)过程。本文将详细探讨如何利用轻易云数据集成平台进行这一过程的配置和实现。 #### 1. 数据请求与清洗 首先,从源系统(金蝶)提取采购入库单数据。此步骤包括对数据的清洗和预处理,确保数据质量和一致性。由于本文重点在于ETL转换部分,数据请求与清洗的细节不再赘述。 #### 2. 数据转换与写入 接下来,我们进入生命周期的第二步:将已经集成的源平台数据进行ETL转换,并转为目标平台(易仓API接口)所能够接收的格式,最终写入目标平台。 ##### 2.1 配置目标API接口 根据提供的元数据配置,我们需要将金蝶采购入库单的数据映射到易仓采购单API接口`syncPurchaseOrders`。以下是具体字段映射及其配置: ```json { "api": "syncPurchaseOrders", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ {"field": "action_type", "label": "操作类型", "type": "string", "describe": "采购单操作类型 ADD:创建;EDIT:编辑;默认 ADD", "value": "ADD"}, {"field": "warehouse_id", "label": "仓库ID", "type": "string", "value": "28"}, {"field": "po_status", "label": "单据状态", "type": "string", "describe": "1:待确认,2:待审核,3:已审核 默认值:待确认", "value": "3"}, {"field": "po_type", "label": "补货方式", "type": "string", "value": "3"}, {"field": "suppiler_id", "label": "供应商ID", ![金蝶与外部系统打通接口](https://pic.qeasy.cloud/T16.png~tplv-syqr462i7n-qeasy.image)