金蝶云星空数据写入:使用轻易云平台实现ETL转换

  • 轻易云集成顾问-杨嫦
### 旺店通·旗舰奇门数据集成到金蝶云星空:技术案例分享 在实际的业务场景中,不同系统之间的数据对接和集成往往是企业数字化转型过程中面临的重要挑战。本文将分享一个具体的系统对接案例:如何通过轻易云数据集成平台,将旺店通·旗舰奇门的数据高效地集成至金蝶云星空,实现采购入库单信息的无缝流转与同步。 #### 案例背景及技术要点 本次实施方案命名为“旺店通-采购入库单-->金蝶-采购入库单【中转仓】【关联】”,旨在解决两大主要问题: 1. 如何从旺店通·旗舰奇门系统获取并处理大量采购入库单数据。 2. 如何确保这些数据精确、及时地写入到金蝶云星空,供后续业务处理使用。 首先,我们利用了旺店通·旗舰奇门提供的API接口`wdt.wms.stockin.purchase.querywithdetail`来抓取详细的采购入库数据信息。这一过程需要解决分页和限流的问题,以确保大规模数据能被顺利获取且不遗漏。同时,为应对潜在的数据质量问题,我们引入了异常检测机制,实时监控并记录日志。 为了保证大量数据能够快速、高效地写入到金蝶云星空,我们采用其批量保存接口`batchSave`,结合自定义的数据转换逻辑,对不同格式的数据进行映射与转换。此外,还特别注重调用可靠性,通过定时任务调度实现稳定抓取,并配置错误重试机制以提升任务成功率。 #### 数据流程设计 整个流程从视图设计出发,采用可视化工具构建直观易懂的数据流图。透明可见的操作界面,以及集中式全生命周期管理功能,极大提升了各个环节的管控力度。在此过程中,通过API资产管理功能,可以统一查看并控制相关API资源的消耗情况,有助于优化配置,提高整体效率。 总之,这一系列措施不仅保证了从旺店通·旗舰奇门到金蝶云星空间的大量数据传输得以顺畅完成,更完善了解决方案中的监控、告警和修复能力,为企业带来了显著的信息处理效益。 ![如何开发用友BIP接口](https://pic.qeasy.cloud/D19.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·旗舰奇门接口获取并加工数据 在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口`wdt.wms.stockin.purchase.querywithdetail`,并对获取的数据进行初步加工。 #### 接口调用配置 首先,我们需要配置API接口的基本信息和请求参数。根据提供的元数据配置,以下是具体的配置细节: - **API名称**: `wdt.wms.stockin.purchase.querywithdetail` - **请求方法**: `POST` - **分页参数**: - `page_size`: 每页大小,默认值为50 - `page_no`: 页号,默认值为1 - **业务参数**: - `start_time`: 开始时间,使用占位符`{{LAST_SYNC_TIME|datetime}}`动态获取上次同步时间 - `end_time`: 结束时间,使用占位符`{{CURRENT_TIME|datetime}}`动态获取当前时间 - `status`: 入库单状态,固定值为80(已完成) - `warehouse_no`: 仓库编号,固定值为W005 - `stockin_no`: 入库单号,可选参数 - `purchase_no`: 采购单号,可选参数 #### 请求参数示例 ```json { "pager": { "page_size": "50", "page_no": "1" }, "params": { "start_time": "{{LAST_SYNC_TIME|datetime}}", "end_time": "{{CURRENT_TIME|datetime}}", "status": "80", "warehouse_no": "W005" } } ``` #### 数据过滤条件 在实际应用中,我们可能需要对返回的数据进行过滤。根据元数据配置中的条件,可以添加如下过滤条件: - **provider_no**: 不在指定供应商编号列表中。例如:不包含供应商编号`S10001` ```json "condition_bk":[[{"field":"provider_no","logic":"notin","value":"S10001"}]], "condition":[[{"field":"provider_no","logic":"notin","value":"S10001"}]] ``` #### 数据格式转换 为了确保数据的一致性和可读性,我们需要对部分字段进行格式转换。例如,将返回结果中的`remark`字段重命名为`remark_new`,并确保其类型为字符串。 ```json "formatResponse":[{"old":"remark","new":"remark_new","format":"string"}] ``` #### 调用与处理流程 1. **发送请求**: 使用配置好的请求参数,通过轻易云平台发送POST请求到旺店通·旗舰奇门接口。 2. **接收响应**: 获取接口返回的数据,并根据预定义的格式转换规则进行处理。 3. **数据清洗**: 根据过滤条件,对返回的数据进行清洗和筛选。 4. **存储与后续处理**: 将清洗后的数据存储到目标系统或数据库中,以便后续的数据转换与写入操作。 #### 实际案例分析 假设我们需要获取某一时间段内所有已完成的采购入库单,并且排除特定供应商的数据。通过上述配置和流程,我们可以实现以下功能: 1. 动态获取上次同步时间和当前时间,确保每次调用都能获取最新的数据。 2. 分页处理大批量数据,提高接口调用效率。 3. 格式化和重命名字段,使得数据结构更加清晰明了。 4. 应用过滤条件,排除不需要的数据,提高数据质量。 通过这种方式,我们不仅能够高效地调用源系统API,还能对返回的数据进行有效的清洗和加工,为后续的数据集成奠定坚实基础。 ![钉钉与ERP系统接口开发配置](https://pic.qeasy.cloud/S13.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将旺店通采购入库单转换并写入金蝶云星空API接口 在数据集成的生命周期中,将源平台的数据转换为目标平台可接收的格式是关键的一步。本文将详细探讨如何使用轻易云数据集成平台,将旺店通的采购入库单数据通过ETL(提取、转换、加载)过程,转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。 #### 配置元数据 在进行数据转换之前,我们需要配置元数据,以确保每个字段都能正确映射到目标平台。以下是针对金蝶云星空API接口`batchSave`方法的元数据配置: ```json { "api": "batchSave", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 1, "method": "batchArraySave" }, "request": [ { "field": "FBillTypeID", "label": "单据类型", "type": "string", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "RKD01_SYS", "mappingDirection": "positive" }, { ... } ], ... } ``` #### 数据请求与清洗 首先,我们从旺店通获取采购入库单的数据。这一步包括对原始数据进行初步清洗和验证,确保数据完整性和准确性。例如,我们需要验证采购单号、供应商编号等关键字段。 #### 数据转换 接下来,我们进入ETL过程中的核心步骤:数据转换。根据元数据配置,将源平台的数据字段映射到目标平台所需的字段格式。 1. **单据类型(FBillTypeID)**: ```json { "field": "FBillTypeID", "label": "单据类型", ... "value": "RKD01_SYS" } ``` 使用`ConvertObjectParser`解析器将值转换为金蝶云星空所需的格式。 2. **业务类型(FBusinessType)**: ```json { ... "value": "_findCollection find FBusinessType from ... where FBillNo={purchase_no}" } ``` 利用查询语句动态获取业务类型。 3. **单据编号(FBillNo)**: ```json { ... "value": "{order_no}" } ``` 直接映射订单编号。 4. **入库日期(FDate)**: ```json { ... "value": "{{check_time|datetime}}" } ``` 使用模板引擎将检查时间格式化为日期字符串。 5. **收料组织和采购组织(FStockOrgId, FPurchaseOrgId)**: ```json { ... "parser": {"name":"ConvertObjectParser","params":"FNumber"}, ... "value":"100.01" } ``` 固定值映射,并使用解析器进行格式转换。 6. **供应商(FSupplierId)**: ```json { ... {"name":"ConvertObjectParser","params":"FNumber"}, ... {"value":"{provider_no}"} } ``` 7. **财务信息(FInStockFin)**: - 结算组织和付款组织: ```json { ... {"name":"ConvertObjectParser","params":"FNumber"}, ... {"value":"100.01"} } ``` 8. **明细信息(FInStockEntry)**: - 包含物料编码、实收数量、含税单价等字段,每个字段都需要根据源数据进行映射和转换。 - 示例:物料编码 ```json { ... {"name":"ConvertObjectParser","params":"FNumber"}, ... {"value":"{{details_list.goods_no}}"} } ``` 9. **关联关系表(FInStockEntry_Link)**: - 转换规则、源单表、源单内码等字段,通过查询语句动态获取。 10. **其他字段**: - 如采购备注、旺店通采购单号等,直接映射或通过模板引擎处理。 #### 数据写入 完成所有字段的映射和转换后,最终生成符合金蝶云星空API接口要求的数据结构。通过`POST`方法调用`batchSave`接口,将处理后的数据写入目标平台: ```json { ..., "_data_":{ ..., "_rows_":[...] }, ..., "_otherRequest_":[...] } ``` 以上步骤展示了如何使用轻易云数据集成平台,将旺店通的采购入库单数据进行ETL处理,并成功写入金蝶云星空系统。通过精确配置元数据和灵活应用解析器及模板引擎,可以高效实现不同系统间的数据无缝对接。 ![泛微OA与ERP系统接口开发配置](https://pic.qeasy.cloud/T14.png~tplv-syqr462i7n-qeasy.image)