如何配置并优化金蝶云星空与旺店通接口数据传输

  • 轻易云集成顾问-陈洁琳
### 金蝶云星空数据集成到旺店通·企业奇门的技术实践 在复杂多变的商业环境中,实现系统间的数据无缝对接已经成为企业高效运营的重要保障。本篇技术案例将深入探讨如何通过轻易云数据集成平台,成功实现金蝶云星空与旺店通·企业奇门之间的数据对接。在具体操作中,我们主要关注直接调拨单对接其他出库单这一实际业务需求,方案名称为“直接调拨单对接其他出库单==>金蝶—旺店通”。 1. **保证集成数据不漏单** 在应用executeBillQuery接口从金蝶云获取调拨单时,通过定时任务可靠地抓取接口数据,是确保不漏掉业务订单信息的关键。一旦抓取到新数据,本次处理则立即结束,为下一次调用准备充足时间。 2. **大量数据快速写入** 为了提高效率,将批量提取的数据传递到旺店通,并调用wdt.stockout.order.push API进行批量写入。在这里需要特别注意的是,一次性处理的大量数据会影响系统性能,因此要根据实际情况合理设置分页和限流策略。 3. **实时监控与日志记录** 实现整个过程的透明化管理至关重要。每当触发一次API调用,都应当生成详细的日志记录,并且配合实时监控组件,以便了解当前所有处理中或已完成的数据状态。这不仅能有效防止问题,还能在出现异常状况时迅速响应并提升修复效率。 4. **异构系统间格式转换** 金蝶云星空与旺店通·企业奇门之间存在一定的数据格式差异。为了确保两者顺利衔接,需要设立一套完整而可靠的映射规则,从字段名称、类型,到值域范围均需完全匹配。此外,这些规则还必须满足灵活调整,以适应未来可能发生的新变化。 5. **错误重试机制** 尽管我们尽可能优化各个环节,但意外情况总是难以避免。比如网络波动导致请求失败,此时预先设计好的异常处理和重试机制就显得尤为重要。通过精准捕获错误信息并重新尝试发送,无疑大幅提升整体稳定性和容错率。 本文将详细介绍上述步骤及相关技术细节,旨在帮助大家更好地理解如何利用现代化工具高效、安全地进行系统集成工作。同时,也希望能够提供一些实战经验,为类似场景下的问题解决提供参考依据。 ![打通金蝶云星空数据接口](https://pic.qeasy.cloud/D13.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取并加工数据。 #### 接口配置与请求参数 首先,我们需要理解元数据配置中的各个字段及其作用。以下是关键字段的解析: - **api**: `"executeBillQuery"`,表示我们调用的是金蝶云星空的查询接口。 - **method**: `"POST"`,请求方法为POST。 - **number**: `"FBillNo"`,单据编号。 - **id**: `"FBillEntry_FEntryID"`,分录ID。 - **idCheck**: `true`,表示需要进行ID检查。 请求参数主要分为两部分:`request`和`otherRequest`。 ##### request部分 ```json [ {"field":"FBillEntry_FEntryID","label":"FEntryID","type":"string","describe":"FEntryID","value":"FBillEntry_FEntryID"}, {"field":"FID","label":"实体主键","type":"string","describe":"实体主键","value":"FID"}, {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"FBillNo"}, {"field":"FDocumentStatus","label":"单据状态","type":"string","describe":"单据状态","value":"FDocumentStatus"}, {"field":"FStockOrgId_FNumber","label":"调入库存组织","type":"string","describe":"调入库存组织","value":"FStockOrgId.FNumber"}, // ...其他字段省略 ] ``` 这些字段定义了我们需要从金蝶云星空获取的数据项。每个字段包含以下信息: - `field`: 字段名 - `label`: 字段标签 - `type`: 数据类型 - `describe`: 字段描述 - `value`: 对应的实际值 ##### otherRequest部分 ```json [ {"field":"Limit","label":"最大行数","type":"string","describe":"金蝶的查询分页参数","value":"500"}, {"field":"FieldKeys","label":"需查询的字段key集合","type":"array","describe":"金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber", "parser":{"name": "ArrayToString", "params": ","}}, {"field": "TopRowCount", "label": "返回总行数", "type": "int", "describe": "金蝶的查询分页参数"}, {"field": "FilterString", "label": "过滤条件", "type": "string", "describe": "示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=", "value": "FDocumentStatus='C' and FSrcStockId.FNumber='001' and FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'"}, {"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "STK_TransferDirect"}, {"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数"} ] ``` 这些字段用于控制查询行为,例如分页、过滤条件等。 #### 调用接口 在配置好元数据后,我们可以通过轻易云平台发起对金蝶云星空接口的调用。以下是一个示例请求: ```json { "apiName": "/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery", "methodName": "", // 请求体内容 { ... // 填充请求参数 ... // 填充otherRequest参数 ... } } ``` #### 数据清洗与加工 获取到数据后,我们需要对其进行清洗和加工。这一步通常包括以下几个步骤: 1. **数据验证**:确保每个字段的数据类型和内容符合预期。例如,检查日期格式是否正确,数值是否在合理范围内等。 2. **数据转换**:根据业务需求,将原始数据转换为目标系统所需的格式。例如,将日期格式从`YYYY-MM-DD`转换为`MM/DD/YYYY`。 3. **数据过滤**:根据特定条件筛选出需要的数据。例如,只保留状态为“已审核”的记录。 #### 实践案例 假设我们需要从金蝶云星空中获取所有状态为“已审核”的直接调拨单,并将其导入到旺店通系统中。具体步骤如下: 1. **配置元数据**:如上文所述,设置好所有必要的字段和过滤条件。 2. **发起请求**:通过轻易云平台调用`executeBillQuery`接口,并传递配置好的请求参数。 3. **处理响应**:对返回的数据进行清洗、转换和过滤。 4. **写入目标系统**:将处理后的数据通过相应接口写入旺店通系统。 通过以上步骤,我们可以实现从金蝶云星空到旺店通系统的数据无缝对接。这不仅提高了工作效率,还确保了数据的一致性和准确性。 ![轻易云数据集成平台金蝶集成接口配置](https://pic.qeasy.cloud/S1.png~tplv-syqr462i7n-qeasy.image) ### 数据集成案例:将源平台数据ETL转换并写入旺店通·企业奇门API接口 在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)处理,转为目标平台——旺店通·企业奇门API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何利用轻易云数据集成平台配置元数据,实现这一过程。 #### API接口及元数据配置 首先,我们需要了解目标API接口及其元数据配置。本文的目标API接口为`wdt.stockout.order.push`,该接口用于将其他出库单的数据推送到旺店通系统中。以下是该接口的元数据配置: ```json { "api": "wdt.stockout.order.push", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "outer_no", "label": "外部单号", "type": "string", "describe": "外部系统的唯一单据编号,避免重复推送数据", "value": "{FBillNo}" }, { "field": "warehouse_no", "label": "仓库编号", "type": "string", "describe": "代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置)", "value": "{FSrcStockId_FNumber}" }, { "field": "remark", "label": "备注", "type": "string", "describe": "其他出库单备注", "value": "调拨出库" }, { "field": "reason", "label": "其他出库原因", "type": "string", "describe": "" }, { "field": "detail_list", ... } ], ... } ``` #### 配置与转换步骤 1. **提取源数据**: 首先,从源平台提取需要转换的数据。假设我们从金蝶系统中提取了一个调拨单,其字段包括`FBillNo`(单据编号)、`FSrcStockId_FNumber`(源仓库编号)、`FMaterialId_FNumber`(物料编码)、`FQty`(数量)等。 2. **转换数据格式**: 根据旺店通API接口的要求,将提取的数据进行格式转换。具体步骤如下: - **外部单号**:将金蝶系统中的`FBillNo`字段映射到旺店通API的`outer_no`字段。 - **仓库编号**:将金蝶系统中的`FSrcStockId_FNumber`字段映射到旺店通API的`warehouse_no`字段。 - **备注**:固定值“调拨出库”映射到旺店通API的`remark`字段。 - **货品列表节点**:将金蝶系统中的物料编码和数量分别映射到旺店通API的`detail_list.spec_no`和`detail_list.num`字段。 3. **生成请求报文**: 根据上述映射关系,生成符合旺店通API要求的请求报文。例如: ```json { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { outer_no: '12345', warehouse_no: 'WH001', remark: '调拨出库', reason: '', detail_list: [ { spec_no: 'MAT001', num: '10' }, { spec_no: 'MAT002', num: '20' } ], is_check: '1' } } } } } } } } } } } } } } } } } } } } } } } ``` 4. **发送请求并写入目标平台**: 使用HTTP POST方法,将生成的请求报文发送至旺店通·企业奇门API接口,实现数据写入。 #### 实践案例 假设我们有一条从金蝶系统中提取的数据如下: ```json { FBillNo: '12345', FSrcStockId_FNumber: 'WH001', FMaterialId_FNumber: ['MAT001', 'MAT002'], FQty: ['10', '20'] } ``` 根据上述配置和步骤,我们最终生成并发送给旺店通·企业奇门API接口的数据报文如下: ```json { outer_no: '12345', warehouse_no: 'WH001', remark: '调拨出库', reason: '', detail_list: [ { spec_no: 'MAT001', num: '10' }, { spec_no: 'MAT002', num: '20' } ], is_check: '1' } ``` 通过轻易云数据集成平台,我们可以高效地完成从金蝶系统到旺店通系统的数据ETL转换和写入过程,实现不同系统间的数据无缝对接。这不仅提高了业务流程的自动化程度,也确保了数据的一致性和准确性。 ![如何开发金蝶云星空API接口](https://pic.qeasy.cloud/T13.png~tplv-syqr462i7n-qeasy.image)