轻易云解决方案:金蝶云数据集成至旺店通的技术详解

  • 轻易云集成顾问-蔡威
### 金蝶云星空数据集成到旺店通·企业奇门:组装子项出库 在复杂的供应链和仓储管理中,实现不同系统间的数据无缝对接,是提升业务效率和准确性的关键。在本篇技术案例中,我们将探讨如何通过轻易云数据集成平台,将金蝶云星空系统中的组装子项出库数据,经过处理后集成到旺店通·企业奇门。 首先,通过调用金蝶云星空的API接口`executeBillQuery`获取相关的数据。这一步骤必须确保高吞吐量,以便在短时间内抓取大量订单信息。在具体实现过程中,需要处理分页与限流的问题,以防止API请求超出限制。同时,为了保证不漏单,每次查询都会记录最后成功获取的数据标识,作为下一轮抓取的起点。 其次,对从金蝶云星空获取到的数据进行自定义转换。由于两端系统使用的字段结构可能存在差异,所以需要设定相应的映射规则。这些规则可以通过可视化设计工具灵活配置,使得整个过程更加直观易于管理。此外,还需进行必要的异常检测和数据质量监控,以确保传输过来的数据符合目的系统要求,并及时处理潜在问题。 最终,处理后的数据会通过调用旺店通·企业奇门写入接口`wdt.stockout.order.push`进行批量推送。同样,这一步骤还包括集中监控和告警功能,可以实时跟踪每个任务执行状态,任何错误发生时都能立即响应并重新尝试。这种可靠性机制确保了所有有效订单能够顺利进入目标系统,从而完成整体流程闭环。 这一系列操作通过轻易云平台全透明可视化界面实现,不仅简化了复杂操作,也大幅提高了实施效率。下面详细解析各个步骤及其背后的技术原理。 ![钉钉与WMS系统接口开发配置](https://pic.qeasy.cloud/D38.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,以获取并加工“组装子项出库”相关的数据。 #### 接口配置与请求参数 首先,我们需要配置元数据以便正确调用金蝶云星空的API。以下是关键的元数据配置: ```json { "api": "executeBillQuery", "method": "POST", "number": "FBillNo", "id": "FSubEntity_FDetailID", "pagination": {"pageSize": 500}, "idCheck": true, "request": [ {"field":"FID","label":"实体主键","type":"string","value":"FID"}, {"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"}, {"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"}, {"field":"FStockOrgId_FNumber","label":"库存组织","type":"string","value":"FStockOrgId.FNumber"}, {"field":"FDate","label":"日期","type":"string","value":"FDate"}, {"field":"FBillTypeID","label":"单据类型","type":"string","value":"FBillTypeID"}, {"field":"FOwnerTypeIdHead","label":"成品货主类型","type":"string","value":"FOwnerTypeIdHead"}, {"field":"FOwnerIdHead_FNumber","label":"成品货主","type":"string","value":"FOwnerIdHead.FNumber"}, {"field":"FAffairType","label":"事务类型","type":"string","value":"FAffairType"}, {"field":"FEE","label":"费用","type":"string","value":"FEE"}, {"field": "FDeptID_FNumber", "label": "部门", "type": "string", "value": "FDeptID.FNumber"}, // ...省略部分字段... ], "otherRequest": [ {"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"}, {"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"}, {"field": "TopRowCount", "label": "返回总行数", "type": int, describe: 金蝶的查询分页参数}, { field: FilterString, label: 过滤条件, type: string, describe: 示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=, value: FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FAFFAIRTYPE = 'Assembly' and FStockIDSETY.FNumber<>'39' }, { field: FieldKeys, label: 需查询的字段key集合, type: array, describe: 金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber, parser: {name: ArrayToString, params:,} }, {field: FormId, label: 业务对象表单Id, type: string, describe: 必须填写金蝶的表单ID如:PUR_PurchaseOrder, value: STK_AssembledApp}, {field: FBillNo, label: FBillNo, type: string} ] } ``` #### 请求构建与发送 在构建请求时,我们需要特别注意以下几点: 1. **分页处理**:由于数据量可能较大,我们设置了分页参数,每页返回500条记录。 2. **过滤条件**:使用`FilterString`字段来定义具体的过滤条件,例如只获取特定事务类型和库存状态的数据。 3. **字段选择**:通过`FieldKeys`指定需要查询的字段,确保只返回必要的数据,减少不必要的数据传输。 构建请求示例: ```json { method: POST, url: https://api.kingdee.com/executeBillQuery, headers: { Content-Type: application/json }, data:{ FormId:"STK_AssembledApp", FieldKeys:"FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,...", FilterString:"FApproveDate>='2023-01-01' and FAFFAIRTYPE = 'Assembly' and FStockIDSETY.FNumber<>'39'", Limit:"500", StartRow:"0" } } ``` #### 数据清洗与转换 在接收到原始数据后,需要进行清洗和转换,以便后续处理。以下是一些常见的数据清洗操作: 1. **去除无效记录**:根据业务规则去除无效或重复记录。 2. **字段映射**:将原始字段映射到目标系统所需的字段格式。 3. **数据类型转换**:确保所有字段的数据类型符合目标系统要求,例如日期格式转换、数值类型校验等。 示例代码: ```python def clean_and_transform(data): cleaned_data = [] for record in data: if record['FDocumentStatus'] != 'A': continue transformed_record = { 'bill_no': record['FBillNo'], 'date': convert_date(record['FDate']), 'stock_org': record['FStockOrgId_FNumber'], // ...其他字段映射... } cleaned_data.append(transformed_record) return cleaned_data def convert_date(date_str): # 假设日期格式为YYYY-MM-DD return datetime.strptime(date_str, '%Y-%m-%d').strftime('%d/%m/%Y') ``` #### 数据写入 清洗和转换后的数据可以通过轻易云平台写入到目标系统中。这一步通常涉及到调用目标系统的API,并确保数据按预期方式存储。 总结以上步骤,通过轻易云数据集成平台调用金蝶云星空接口,可以高效地获取并加工“组装子项出库”相关的数据,为后续的数据处理和分析奠定基础。 ![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/S18.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入旺店通·企业奇门API接口 在数据集成的生命周期中,ETL(提取、转换、加载)过程是将源平台的数据转换为目标平台所需格式的关键步骤。本文将深入探讨如何利用轻易云数据集成平台,将源平台的数据通过ETL转换为旺店通·企业奇门API接口所能接收的格式,并最终写入目标平台。 #### 1. 数据请求与清洗 在数据集成过程中,首先需要从源系统中提取原始数据并进行清洗。假设我们已经完成了这一步,获得了结构化的原始数据。接下来,我们将重点放在如何配置和使用元数据进行ETL转换。 #### 2. 元数据配置解析 根据提供的元数据配置,我们需要将源平台的数据转换为旺店通·企业奇门API接口所需的格式。以下是元数据配置的详细解析: ```json { "api": "wdt.stockout.order.push", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "outer_no", "label": "外部单号", "type": "string", "value": "{FBillNo}" }, { "field": "warehouse_no", "label": "仓库编号", "type": "string", "value": "{{details.FStockIDSETY_FNumber}}" }, { "field": "remark", "label": "备注", "type": "string", "value": "组装子项出库" }, { "field": "is_check", "label": "是否审核", "type": "string", "value": "1" }, { "field": "detail_list", "label": "货品列表节点", "type": "array", "value": "details", ![如何对接金蝶云星空API接口](https://pic.qeasy.cloud/T23.png~tplv-syqr462i7n-qeasy.image)