利用轻易云平台实现旺店通与金蝶云星空API的ETL过程

  • 轻易云集成顾问-孙传友
### 旺店通·企业奇门数据集成到金蝶云星空的技术实现 在系统对接和数据集成项目中,实现多个平台间的数据无缝流动对于提升业务效率尤为关键。本文将重点分享一个具体案例:如何通过轻易云数据集成平台,将旺店通·企业奇门的采购退料单数据高效可靠地集成到金蝶云星空系统,确保数据实时同步与准确处理。 #### 数据获取与接口调用概述 首先,我们需要从旺店通·企业奇门中抓取采购退料单相关的数据。为了实现这一目标,我们使用了其提供的API接口: `wdt.stockout.order.query.return`。在实际操作过程中,必须注意该接口调用时可能遇到的分页及限流问题,以保证大量数据能够快速而稳定地采集。 ```json 请求示例: { "appkey": "your_app_key", "sid": "your_sid", "timestamp": 1234567890, ... } ``` #### 批量写入至金蝶云星空 成功获取并处理完来自旺店通的数据后,下一个关键步骤是将这些数据批量写入到金蝶云星空中。这一步骤同样依赖于特定API接口进行操作,即: `batchSave`。通过此API,可一次性将处理好的大容量数据高效导入,显著提升了整体工作效率。 ```json 请求示例: { "dataObjectTypeName":"PUR_PURCHASERETURNORDER", ... } ``` #### 数据格式转换与映射 由于两个系统间的数据结构和字段定义并不完全一致,需要进行必要的数据格式转换和映射。例如,在从旺店通获取到原始JSON格式的数据之后,通过预设规则将其转化成为符合金蝶云标准的结构。在这个过程中,对于字段对应关系、类型匹配等细节需特别注意,并合理规划对应策略来避免错误发生。 #### 实时监控与异常重试机制 整个集成过程由轻易云平台进行全程监控,实时记录各个环节的状态及日志信息。当出现任何异常情况时,如网络波动或服务临时不可用,该平台会触发自动重试机制,从而有效保障了任务完成率。此外,这些日志信息也为我们后续分析问题、优化流程提供了重要依据。 结论段将在实现上述步骤后的效果总结,包括成功应对各种挑战的方法和所取得的一系列成果,总体上保证了这次跨系统对接任务圆满完成。 ![用友与CRM系统接口开发配置](https://pic.qeasy.cloud/D29.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.stockout.order.query.return获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口`wdt.stockout.order.query.return`来获取并加工数据。 #### 接口调用配置 首先,我们需要配置元数据以便正确调用接口。以下是配置的关键参数: - **api**: `wdt.stockout.order.query.return` - **method**: `POST` - **number**: `order_no` - **id**: `stockout_id` - **pagination**: - `pageSize`: 50 - **idCheck**: true 请求参数的详细配置如下: 1. **start_time**: - **label**: 开始时间 - **type**: string - **value**: `{{LAST_SYNC_TIME|datetime}}` 2. **end_time**: - **label**: 结束时间 - **type**: string - **describe**: 按最后修改时间增量获取数据,格式:yyyy-MM-dd HH:mm:ss - **value**: `{{CURRENT_TIME|datetime}}` 3. **warehouse_no**: - **label**: 仓库编号 - **type**: string 4. **status**: - **label**: 出库单状态 - **type**: string - **describe**: 出库单状态5:已取消,50:待审核,55:已审核,95:已发货,110:已完成(默认查已发货已完成单据) - **value**: 110 5. **page_no**: - **label**: 页号 - **type**: string - **value**: `{PAGINATION_START_PAGE}` 6. **page_size**: - **label**: 分页大小 - **type**: string - **describe**: 每页返回的数据条数,输入值范围1~30,不传本参数,输入值默认为30, - **value**: `{PAGINATION_PAGE_SIZE}` 7. **src_order_no** - **label**: 上层单据编号 - **type**: string #### 数据请求与清洗 在进行数据请求时,我们需要确保请求参数的准确性和完整性。以下是一个示例请求体: ```json { "start_time": "2023-10-01 00:00:00", "end_time": "2023-10-02 00:00:00", "warehouse_no": "WH001", "status": "110", "page_no": "1", "page_size": "50" } ``` 通过上述请求,我们可以获取指定时间段内、特定仓库、状态为“已完成”的出库单信息。 #### 数据转换与写入 获取到的数据通常需要进行一定的转换和清洗,以便后续处理和写入目标系统。在轻易云平台上,可以使用内置的转换工具对数据进行处理。例如,将日期格式从`yyyy-MM-dd HH:mm:ss`转换为目标系统所需的格式。 以下是一个简单的数据转换示例: ```python def transform_data(data): for record in data: record['formatted_date'] = datetime.strptime(record['date'], '%Y-%m-%d %H:%M:%S').strftime('%d/%m/%Y') return data ``` #### 实践案例 假设我们需要将旺店通的采购退料单数据集成到金蝶系统中。首先,通过上述配置和请求获取旺店通的数据,然后对数据进行必要的清洗和转换,最后写入金蝶系统。 ```python # 获取数据 response = requests.post(api_url, json=request_body) data = response.json() # 数据清洗与转换 cleaned_data = transform_data(data) # 写入金蝶系统(伪代码) for record in cleaned_data: kingdee_api.write(record) ``` 通过这种方式,我们可以实现不同系统间的数据无缝对接,并确保数据的一致性和准确性。 总结来说,通过轻易云平台调用旺店通·企业奇门接口`wdt.stockout.order.query.return`并进行适当的数据处理,可以高效地实现跨系统的数据集成。这一过程不仅提高了业务透明度,还显著提升了工作效率。 ![轻易云数据集成平台金蝶集成接口配置](https://pic.qeasy.cloud/S5.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将旺店通采购退料单数据转换并写入金蝶云星空API接口 在数据集成的生命周期中,ETL(Extract, Transform, Load)过程是至关重要的一环。本文将详细探讨如何利用轻易云数据集成平台,将来自旺店通的采购退料单数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。 #### 数据请求与清洗 首先,我们需要从源系统(旺店通)提取原始数据。这一步骤包括对采购退料单数据的请求和初步清洗,以确保数据的准确性和一致性。此处不再赘述,重点放在下一步的数据转换与写入。 #### 数据转换与写入 在轻易云数据集成平台中,我们使用配置好的元数据来实现对源数据的转换,并通过API接口将其写入金蝶云星空。以下是关键步骤和技术细节: ##### 1. 配置API接口参数 根据提供的元数据配置,我们需要设置金蝶云星空的API接口参数。主要参数包括: - `FormId`: 表单ID,指定业务对象表单,例如`PUR_MRB`。 - `Operation`: 执行操作类型,如`batchSave`。 - `IsAutoSubmitAndAudit`: 是否自动提交并审核,布尔值`true`。 - `IsVerifyBaseDataField`: 是否验证基础资料有效性,布尔值`true`。 - `SubSystemId`: 系统模块ID,例如仓库模块`21`。 - `InterationFlags`: 允许负库存设置,例如`STK_InvCheckResult`。 ##### 2. 构建请求报文 根据元数据配置,我们需要构建一个符合金蝶云星空API要求的请求报文。以下是一个示例: ```json { "FormId": "PUR_MRB", "Operation": "batchSave", "IsAutoSubmitAndAudit": true, "IsVerifyBaseDataField": true, "SubSystemId": "21", "InterationFlags": "STK_InvCheckResult", "Model": { "FBillNo": "{order_no}", "FDate": "{modified}", "FStockOrgId": "_findCollection find FAPPORGID_Fnumber from 9bb51c4a-5f57-33e1-b828-48b601f6f1b2 where FBillNo={pr_api_outer_no}", ... "FPURMRBENTRY": [ { "FMATERIALID": "{{details_list.spec_no}}", "FRMREALQTY": "{{details_list.goods_count}}", ... } ] } } ``` ##### 3. 字段解析与映射 在构建请求报文时,需要对字段进行解析和映射。例如: - **单据编号** (`FBillNo`) 映射到 `{order_no}`。 - **退料日期** (`FDate`) 映射到 `{modified}`。 - **退料组织** (`FStockOrgId`) 使用 `_findCollection find FAPPORGID_Fnumber from ... where FBillNo={pr_api_outer_no}` 进行解析。 类似地,对于明细信息中的字段,也需要进行相应的映射和解析。例如: ```json { "FMATERIALID": "{{details_list.spec_no}}", "FRMREALQTY": "{{details_list.goods_count}}", ... } ``` ##### 4. 提交请求并处理响应 完成报文构建后,通过POST方法将其提交至金蝶云星空API接口。示例代码如下: ```python import requests import json url = 'https://api.kingdee.com/batchSave' headers = {'Content-Type': 'application/json'} data = { # 构建好的请求报文 } response = requests.post(url, headers=headers, data=json.dumps(data)) if response.status_code == 200: print("Data successfully written to Kingdee Cloud.") else: print(f"Failed to write data: {response.text}") ``` 通过上述步骤,即可实现从旺店通到金蝶云星空的数据转换与写入。关键在于正确配置元数据,并确保每个字段都能准确映射和解析,从而保证数据的一致性和完整性。 ![打通企业微信数据接口](https://pic.qeasy.cloud/T24.png~tplv-syqr462i7n-qeasy.image)