轻易云平台助力数据集成:从ETL转换到写入旺店通

  • 轻易云集成顾问-彭萍
### 金蝶云星空数据集成到旺店通·企业奇门:高效处理与实时监控 在系统对接和数据集成的过程中,如何快速、安全且准确地将金蝶云星空的数据迁移到旺店通·企业奇门,是众多企业关注的重中之重。本文将通过一个实际运行的方案展示具体实现方法,该方案名为“金蝶分布式调出单=>旺店通采购退货出库单(ok)”。 首先,我们需要围绕金蝶云星空和旺店通·企业奇门之间的数据接口进行详解。为了确保从金蝶云星空获取的数据不漏单,我们采用了定时可靠抓取机制。这项技术依赖于executeBillQuery API,通过分页处理及限流策略,避免服务器过载,同时确保每次查询都能完整返回所需数据。 在数据写入阶段,大量捕捉到的信息需要快速、无误地存储至目标平台——旺店通·企业奇门。在此过程中,调用wdt.purchase.return.order.push API显得尤为重要。为了应对可能发生的错误与异常情况,建立了完善的错误重试机制,以保证每条记录能够成功提交并被业务系统正确识别。 另外,不同平台间存在的数据格式差异也是一大挑战。因此,在实施过程中,对两套系统之间进行了针对性的定制化数据映射。从而,使整个流程中的数据转换更加灵活精准,为后续操作打下坚实基础。 最后,为全面掌握各环节状态,实现高度透明可视化管理,通过实时日志记录与监控功能,不断追踪和分析整个流程中的任何变化。这不仅提高了运维效率,还极大降低了风险隐患,使整个系统对接过程更加稳定可靠。 通过以上措施,我们有效解决了跨平台、大规模、高频率的数据传输难题,并最终实现业务需求目标。在接下来的内容中,将进一步探讨具体技术细节及解决方案实施过程。 ![企业微信与ERP系统接口开发配置](https://pic.qeasy.cloud/D8.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细介绍如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,并对获取的数据进行加工处理。 #### 接口配置与请求参数 首先,我们需要配置元数据以便正确调用金蝶云星空的`executeBillQuery`接口。以下是关键的元数据配置: ```json { "api": "executeBillQuery", "method": "POST", "number": "FBillNo", "id": "FSTKTRSOUTENTRY_FEntryID", "pagination": { "pageSize": 500 }, "idCheck": true, "request": [ {"field":"FSTKTRSOUTENTRY_FEntryID","label":"FEntryID","type":"string","value":"FSTKTRSOUTENTRY_FEntryID"}, {"field":"FID","label":"实体主键","type":"string","value":"FID"}, {"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"}, {"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"}, {"field":"FStockInOrgID_FNumber","label":"调入库存组织","type":"string","value":"FStockInOrgID.FNumber"}, {"field":"FDate","label":"日期","type":"string","value":"FDate"}, {"field":"FBillTypeID","label":"单据类型","type":"string","value":"FBillTypeID"}, {"field":"FTransferDirect","label":"调拨方向","type":"string","value":"FTransferDirect"}, {"field":"FNOTE","label":"备注","type":"string","value":"FNOTE"}, {"field":"FCreateDate","label":"创建日期","type":"string","value":"FCreateDate"}, {"field":"FApproveDate","label":"审核日期","type":"string","value":"FApproveDate"}, {"field":...} ], "otherRequest": [ {"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"}, {"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"}, {"field":...} ] } ``` #### 请求示例 在实际操作中,我们需要构建一个HTTP POST请求,包含必要的字段和过滤条件。例如: ```json { "FormId": "STK_TRANSFEROUT", "FieldKeys": ["FID", ...], "FilterString": "( FApproveDate>='2023-01-01' and FStockOrgID.fnumber in ( '7000','3000') and FStockInOrgID.fnumber = '8000')", ... } ``` #### 数据处理与清洗 获取到原始数据后,需要对其进行清洗和转换,以满足目标系统的需求。以下是一些常见的数据处理步骤: 1. **字段映射**:将源系统字段映射到目标系统字段。例如,将`FBillNo`映射为目标系统中的`OrderNumber`。 2. **数据格式转换**:将日期格式从YYYY-MM-DD转换为目标系统所需的格式。 3. **数据过滤**:剔除不符合业务规则的数据,例如状态为“已取消”的记录。 #### 示例代码 以下是一个示例代码片段,用于调用接口并处理返回的数据: ```python import requests import json # 配置请求参数 payload = { 'FormId': 'STK_TRANSFEROUT', 'FieldKeys': ['FID', 'FBillNo', 'FDocumentStatus', ...], 'FilterString': "( FApproveDate>='2023-01-01' and FStockOrgID.fnumber in ( '7000','3000') and FStockInOrgID.fnumber = '8000')", } # 发起HTTP POST请求 response = requests.post('https://api.kingdee.com/executeBillQuery', data=json.dumps(payload), headers={'Content-Type': 'application/json'}) # 检查响应状态码 if response.status_code == 200: data = response.json() # 数据清洗与转换 cleaned_data = [] for record in data['Result']: cleaned_record = { 'OrderNumber': record['FBillNo'], 'Status': record['FDocumentStatus'], ... } cleaned_data.append(cleaned_record) # 输出或进一步处理cleaned_data else: print(f"Error: {response.status_code}, {response.text}") ``` 通过上述步骤,我们可以高效地从金蝶云星空获取所需数据,并进行必要的加工处理,为后续的数据写入和业务应用打下坚实基础。 ![如何对接用友BIP接口](https://pic.qeasy.cloud/S23.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台生命周期第二步:ETL转换与写入旺店通·企业奇门API接口 在数据集成过程中,ETL(Extract, Transform, Load)是关键的一环。本文将详细探讨如何将已经集成的源平台数据进行ETL转换,并转为目标平台——旺店通·企业奇门API接口所能够接收的格式,最终写入目标平台。 #### 元数据配置解析 我们以金蝶分布式调出单到旺店通采购退货出库单的集成为例,来详细说明ETL转换过程中的技术细节。以下是元数据配置: ```json { "api": "wdt.purchase.return.order.push", "effect": "EXECUTE", "method": "POST", "idCheck": true, "operation": { "method": "merge", "field": "FBillNo,FSrcStockID_FNumber", "bodyName": "detailss_list", "bodySum": ["F_UHZG_JJQty"], "header": ["FSUPPLIERID_FNumber", "FDestStockID_FNumber", "FSrcStockID_FNumber", "FBillNo"], "body": ["FPrice", "FQty", "FMaterialID_FNumber", "FLOT", "F_UHZG_JJQty", "FNOTE"] }, ... } ``` #### 数据请求与清洗 首先,我们需要从源平台获取原始数据,并进行必要的清洗和预处理。这一步骤确保数据的准确性和一致性,为后续的转换奠定基础。具体操作包括: 1. **数据请求**:通过API接口从金蝶系统中请求调出单的数据。 2. **数据清洗**:对请求到的数据进行清洗,包括去除冗余字段、格式化日期、校验数值等。 #### 数据转换 接下来,我们进入数据转换阶段,将清洗后的数据按照旺店通·企业奇门API接口要求的格式进行转换。以下是关键步骤: 1. **字段映射**:根据元数据配置,将源平台的数据字段映射到目标平台的字段。例如: - `FBillNo` 映射为 `outer_no` - `FNOTE` 映射为 `remark` - `detailss_list.FMaterialID_FNumber` 映射为 `spec_no` - `detailss_list.F_UHZG_JJQty` 映射为 `num` 2. **合并操作**:根据元数据配置中的合并策略,将多个字段合并为一个。例如,`FBillNo` 和 `FSrcStockID_FNumber` 合并为一个唯一标识符。 3. **计算汇总值**:对于需要汇总的字段,如 `F_UHZG_JJQty`,需要计算其总和,并写入目标字段。 4. **生成请求体**:将转换后的数据组装成符合旺店通·企业奇门API接口要求的JSON格式。例如: ```json { "return_no": "{FBillNo}", ... "detail_list": [ { "spec_no": "{{detailss_list.FMaterialID_FNumber}}", ... "num": "{{detailss_list.F_UHZG_JJQty}}" } ] } ``` #### 数据写入 最后,将转换后的数据通过POST方法写入目标平台——旺店通·企业奇门API接口。以下是关键步骤: 1. **构建HTTP请求**:根据元数据配置中的API信息,构建HTTP POST请求。 2. **发送请求**:将构建好的JSON请求体发送到目标API接口。 3. **处理响应**:接收并处理目标平台返回的响应信息,确保数据成功写入。如果出现错误,根据错误信息进行相应处理和重试机制。 通过以上步骤,我们实现了从金蝶分布式调出单到旺店通采购退货出库单的数据集成。在这个过程中,轻易云数据集成平台提供了强大的可视化操作界面和实时监控功能,使得整个ETL过程透明、高效。 这种全异步、支持多种异构系统集成的平台,不仅提高了业务透明度和效率,还极大地简化了复杂的数据集成任务,为企业提供了强有力的数据管理工具。 ![用友与外部系统接口集成开发](https://pic.qeasy.cloud/T24.png~tplv-syqr462i7n-qeasy.image)