使用轻易云平台实现旺店通与金蝶云的数据转化与写入

  • 轻易云集成顾问-胡秀丛
### 旺店通·旗舰奇门数据集成到金蝶云星空的技术案例分享 在本次系统对接项目中,我们成功实现了旺店通·旗舰奇门的数据与金蝶云星空的无缝集成。具体方案名称为:旺店通-采购入库单-->金蝶-采购入库单【外仓】【关联】。通过该方案,确保了大量采购入库数据能够实时、准确地传输至金蝶云星空,从而提高整体业务处理效率和准确性。 首先,在数据获取方面,我们调用了旺店通·旗舰奇门的API接口`wdt.wms.stockin.purchase.querywithdetail`来定时抓取采购入库单明细。这一过程需要重点解决分页和限流问题,以防止因大量请求导致接口性能下降或超出频率限制。在实施过程中,通过自定义轮询逻辑及批量处理机制,有效控制每次请求的数据量,并保持较高的数据抓取速率。 其次,针对两套系统间的数据格式差异,我们利用轻易云平台提供的可视化数据流设计工具,自定义了一系列数据转换规则,以保证从旺店通·旗舰奇门获取的数据记录能与金蝶云星空所需格式完全匹配。在保证源端和目标端字段映射正确后,进一步对可能存在的不一致情况进行了异常检测和质量监控,确保所有进入金蝶云星空系统的数据都符合预期。 为了实现高效写入操作,我们调用了金蝶云星空的API接口`batchSave`进行大批量数据导入。此步骤需要特别关注异常处理与重试机制,当遇到网络抖动或临时性服务器错误时,系统可以自动重试特定次数以保障任务完成。此外,通过中央监控和告警系统,对每一次写操作进行实时跟踪,一旦发现任何潜在问题,可以立即采取相应措施进行修复。 以上是我们在实际运作中的关键技术点。在随后的详细内容中,将深入探讨各个环节中的具体配置及代码实现策略。 ![如何对接钉钉API接口](https://pic.qeasy.cloud/D5.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·旗舰奇门接口获取并加工数据 在轻易云数据集成平台的生命周期中,调用源系统接口是关键的第一步。本文将详细介绍如何通过调用旺店通·旗舰奇门接口`wdt.wms.stockin.purchase.querywithdetail`来获取采购入库单数据,并进行初步的数据加工。 #### 接口调用配置 首先,我们需要配置接口调用的元数据。以下是具体的配置细节: ```json { "api": "wdt.wms.stockin.purchase.querywithdetail", "method": "POST", "number": "order_no", "id": "stockin_id", "idCheck": true, "formatResponse": [ { "old": "remark", "new": "remark_new", "format": "string" } ], "request": [ { "field": "pager", "label": "分页参数", "type": "object", "children": [ { "field": "page_size", "label": "分页大小", "type": "string", "value": "50", "parent": "pager" }, { "field": "page_no", "label": "页号", "type": "string", "value": "1", "parent": "pager" } ] }, { "field": "params", ... ``` #### 请求参数解析 1. **分页参数**: - `page_size`:设置为50,表示每次请求返回50条记录。 - `page_no`:初始值为1,表示从第一页开始请求。 2. **业务参数**: - `start_time` 和 `end_time`:分别代表查询的开始时间和结束时间,这里使用了动态变量`{{LAST_SYNC_TIME|datetime}}`和`{{CURRENT_TIME|datetime}}`来自动填充。 - `status`:设置为80,表示只查询已完成的入库单。 - `warehouse_no`, `stockin_no`, `purchase_no`:这些字段用于进一步过滤数据,根据实际需求填写。 #### 数据过滤条件 元数据中还定义了一些条件,用于过滤不需要的数据: ```json "condition_bk":[ [{"field":"provider_no","logic":"notin","value":"S10001"}] ], "condition":[ [{"field":"provider_no","logic":"notin","value":"S10001"},{"field":"warehouse_no","logic":"eqv2","value":"W034"}], [{"field":"warehouse_no","logic":"eqv2","value":"W032"},{"field":"provider_no","logic":"notin","value":"S10001"}], [{"field":"warehouse_no","logic":"eqv2","value":"W036"},{"field":"provider_no","logic":"notin","value":"S10001"}] ] ``` 这些条件确保了只有符合特定仓库编号和供应商编号的数据会被返回。 #### 数据格式化 在响应处理部分,我们对返回的数据进行了格式化: ```json "formatResponse":[ {"old":"remark","new":"remark_new","format":"string"} ] ``` 这一步将返回结果中的字段`remark`重命名为`remark_new`,并确保其类型为字符串。 #### 实际调用与处理 在实际操作中,通过轻易云平台的可视化界面,我们可以方便地配置上述元数据,并实时监控接口调用情况。以下是一个示例代码片段,用于展示如何通过Python脚本实现这一过程: ```python import requests import json url = 'https://api.wangdian.cn/openapi2/wdt.wms.stockin.purchase.querywithdetail' headers = {'Content-Type': 'application/json'} payload = { 'pager': { 'page_size': '50', 'page_no': '1' }, 'params': { 'start_time': '{{LAST_SYNC_TIME|datetime}}', 'end_time': '{{CURRENT_TIME|datetime}}', 'status': '80', 'warehouse_no': '', 'stockin_no': '', 'purchase_no': '' } } response = requests.post(url, headers=headers, data=json.dumps(payload)) data = response.json() # 格式化响应数据 for item in data['data']: item['remark_new'] = str(item.pop('remark', '')) print(data) ``` 通过上述步骤,我们成功地从旺店通·旗舰奇门接口获取了采购入库单数据,并进行了初步的数据加工,为后续的数据转换与写入奠定了基础。 ![钉钉与MES系统接口开发配置](https://pic.qeasy.cloud/S12.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现旺店通采购入库单到金蝶云星空的ETL转换与写入 在数据集成过程中,ETL(Extract, Transform, Load)是一个关键步骤。本文将详细探讨如何利用轻易云数据集成平台,将旺店通的采购入库单数据进行转换,并通过金蝶云星空API接口写入目标平台。 #### 数据请求与清洗 首先,从源系统(旺店通)获取采购入库单的数据,并对其进行初步清洗。这一步骤通常包括数据格式的标准化、去重和错误修正等操作。假设我们已经完成了这一步骤,接下来我们将重点关注数据的转换和写入。 #### 数据转换与写入 为了将清洗后的数据转换为金蝶云星空API接口能够接收的格式,我们需要配置相应的元数据。以下是一个详细的元数据配置示例: ```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" }, { "field": "FBusinessType", ... } ], ... } ``` ##### 配置解析 1. **API接口配置**:`api`字段指定了调用的API接口名称,这里是`batchSave`。`method`字段指定了HTTP请求方法,这里是`POST`。 2. **操作配置**:`operation`字段定义了操作类型,包括行键、行数和方法名称。例如,这里使用了批量保存方法`batchArraySave`。 3. **请求字段映射**: - `FBillTypeID`: 单据类型,固定值为“RKD01_SYS”,使用`ConvertObjectParser`进行对象转换。 - `FBusinessType`: 业务类型,通过动态查询获取。 - `FBillNo`: 单据编号,直接映射自源系统中的订单编号。 - `FDate`: 入库日期,使用日期时间格式化函数。 - `FStockOrgId`, `FPurchaseOrgId`, `FSupplierId`: 分别为收料组织、采购组织和供应商,均使用对象转换器进行处理。 - `FInStockFin`: 财务信息,包括结算组织和付款组织,同样使用对象转换器。 4. **明细信息映射**: - `FInStockEntry`: 明细信息数组,每一项包含物料编码、实收数量、含税单价、仓库等字段。 - `FMaterialId`: 物料编码,通过对象转换器映射。 - `FRealQty`: 实收数量,直接映射自源系统中的数量字段。 - `FTaxPrice`: 含税单价,通过动态查询获取。 - `FStockId`: 仓库,通过对象转换器映射。 - `FNote`: 备注,直接映射自源系统中的备注字段。 5. **关联关系表**: - 包含转换规则、源单表、源单内码和源单分录内码等字段,用于建立与源系统记录的关联关系。 6. **其他请求参数**: - 包括业务对象表单Id(如“STK_InStock”)、是否自动提交并审核、执行操作类型(如“Save”)以及是否验证基础资料等。 #### 数据写入 配置完成后,将数据发送至金蝶云星空API接口。以下是一个示例请求: ```json { "FormId": "STK_InStock", ... } ``` 通过上述配置和请求,我们可以将旺店通的采购入库单数据成功地转换并写入到金蝶云星空系统中,实现不同系统间的数据无缝对接。 #### 总结 本文详细介绍了如何利用轻易云数据集成平台,将旺店通的采购入库单数据进行ETL转换,并通过金蝶云星空API接口写入目标平台。通过合理配置元数据,我们能够高效地实现复杂的数据集成任务,提高业务流程的自动化程度。 ![数据集成平台API接口配置](https://pic.qeasy.cloud/T25.png~tplv-syqr462i7n-qeasy.image)