数据转换与写入:金蝶到旺店通API接口集成详解

  • 轻易云集成顾问-谢楷斌
### 金蝶云星空到旺店通·企业奇门的数据集成案例分享 在现代企业管理中,高效的系统对接和数据集成是确保业务流畅运行的重要一环。本案例将详细分析如何通过轻易云数据集成平台,成功实现金蝶云星空系统内直接调拨单的数据精准无误地对接至旺店通·企业奇门的其他入库单。 #### 确保金蝶云星空数据不漏单 首先,为防止任何遗漏,通过调用金蝶云星空的executeBillQuery接口进行定时抓取操作。我们设置了可靠的定时任务,以预设时间间隔经常性地访问该接口,并获取最新的调拨单信息。这种方法不仅可以保证数据的新鲜度,还能减少漏采风险。同时,利用分页处理机制高效应对大批量返回结果,将每次API调用限制在合理的数据量范围内,从而避免超时和限流问题。 #### 批量快速写入与差异处理 为了将大量从金蝶云星空提取的数据快速、准确地写入到旺店通·企业奇门,我们使用wdt.stockin.order.push API。在此过程中,我们特别关注两者之间的数据格式差异。通过自定义映射规则,有效桥接了不同字段格式,使得每一个经过处理后的调拨单能够正确匹配至对应的入库单模型。此外,针对可能出现的数据异常情况,包括网络故障或API内部错误,实现了完善的异常捕获与重试机制,从根本上提升了系统稳定性和容错能力。 #### 实现实时监控与日志记录 数据集成过程中的透明度极其重要。在此次项目中,每一步操作都被精确记录并实时监控。借助轻易云平台的可视化界面,不仅使整个流程一目了然,而且为后续的问题诊断提供有力支持。即时生成并存储各项日志文件,对关键节点进行报警设置,当出现意外状况时能及时预警并采取措施,这也是保障集成效率及质量不可忽视的一部分。 这些技术方案不仅构建了一条顺畅的信息传递路径,更是以严谨务实的方法论证了实际应用效果,为类似需求提供了宝贵参考。 ![轻易云数据集成平台金蝶集成接口配置](https://pic.qeasy.cloud/D4.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,第一步是从源系统获取数据,并对其进行初步加工。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空接口`executeBillQuery`来实现这一过程。 #### 接口配置与调用 首先,我们需要了解`executeBillQuery`接口的基本配置。根据提供的元数据配置,接口的请求方法为POST,主要用于查询(effect: QUERY)。以下是关键字段及其描述: - **FBillEntry_FEntryID**: 分录ID - **FID**: 实体主键 - **FBillNo**: 单据编号 - **FDocumentStatus**: 单据状态 - **FStockOrgId_FNumber**: 调入库存组织 - **FDate**: 日期 - **FBillTypeID_FNumber**: 单据类型 - **FTransferBizType**: 调拨类型 - **FStockOutOrgId_FNumber**: 调出库存组织 - **FTransferDirect**: 调拨方向 这些字段将在请求和响应中被频繁使用。 #### 请求参数构建 在调用接口之前,需要构建请求参数。以下是一个示例请求参数配置: ```json { "FormId": "STK_TransferDirect", "FieldKeys": "FBillEntry_FEntryID,FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID.FNumber,FTransferBizType,FStockOutOrgId.FNumber,FTransferDirect", "FilterString": "FDocumentStatus='C' and FDestStockId.FNumber='001' and FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'", "Limit": "500", "StartRow": "0" } ``` 在这个请求中: - `FormId`指定了业务对象表单ID。 - `FieldKeys`定义了需要查询的字段集合。 - `FilterString`用于过滤条件,确保只获取符合条件的数据。 - `Limit`和`StartRow`用于分页控制。 #### 数据清洗与转换 一旦成功获取数据,下一步是对数据进行清洗和转换。这一步骤非常重要,因为它直接影响到后续的数据写入和业务处理。 1. **数据验证**:首先验证返回的数据是否完整和准确。例如,检查每条记录是否包含必需的字段,如`FBillNo`、`FID`等。 2. **格式转换**:将金蝶云返回的数据格式转换为目标系统所需的格式。例如,将日期格式从YYYY-MM-DD转换为目标系统要求的格式。 3. **字段映射**:根据目标系统的要求,对字段进行重新映射。例如,将金蝶云中的`FStockOrgId.FNumber`映射为目标系统中的库存组织编码。 #### 示例代码 以下是一个示例代码片段,用于调用接口并处理返回的数据: ```python import requests import json # 定义请求URL和头信息 url = 'https://api.kingdee.com/executeBillQuery' headers = {'Content-Type': 'application/json'} # 构建请求参数 payload = { "FormId": "STK_TransferDirect", "FieldKeys": "FBillEntry_FEntryID,FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID.F.Number,FTransferBizType,FStockOutOrgId.F.Number,FTransferDirect", "FilterString": "FDocumentStatus='C' and FDestStockId.F.Number='001' and FApproveDate>='2023-01-01'", "Limit": "500", "StartRow": "0" } # 发送POST请求 response = requests.post(url, headers=headers, data=json.dumps(payload)) # 处理响应数据 if response.status_code == 200: data = response.json() for record in data: # 数据清洗与转换逻辑,例如日期格式转换、字段映射等 cleaned_record = { 'entry_id': record['FBillEntry_FEntryID'], 'bill_no': record['FBillNo'], 'status': record['FDocumentStatus'], 'stock_org': record['FStockOrgId.FNumber'], 'date': convert_date_format(record['FDate']), # 更多字段处理... } # 将清洗后的数据写入目标系统或存储起来以备后续使用 else: print(f"Error: {response.status_code}, {response.text}") ``` 在这个示例中,我们首先构建了请求参数,然后发送POST请求获取数据。接着,对返回的数据进行清洗和转换,并将处理后的数据存储或传递给下一个处理环节。 #### 总结 通过轻易云数据集成平台调用金蝶云星空接口`executeBillQuery`,我们能够高效地获取源系统的数据,并对其进行初步加工。这一步骤不仅确保了数据的一致性和准确性,还为后续的数据写入和业务处理奠定了坚实基础。在实际应用中,可以根据具体需求调整请求参数和清洗逻辑,以满足不同业务场景的要求。 ![系统集成平台API接口配置](https://pic.qeasy.cloud/S1.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现旺店通·企业奇门API接口的数据转换与写入 在数据集成的生命周期中,将源平台的数据转换为目标平台所需格式是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台将金蝶系统中的直接调拨单数据转换为旺店通·企业奇门API接口所能接收的格式,并最终写入目标平台。 #### API接口配置与元数据解析 在本案例中,目标平台为旺店通·企业奇门,其API接口为`wdt.stockin.order.push`,采用POST请求方式。以下是具体的元数据配置: ```json { "api": "wdt.stockin.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": "仓库编号", "value": "{FDestStockId_FNumber}"}, {"field": "remark", "label": "备注", "type": "string", "describe": "备注", "value":"调拨入库"}, {"field": "is_check", "label":"是否审核","type":"string","describe":"是否审核","value":"1"}, {"field":"reason","label":"入库原因","type":"string","describe":"入库原因"}, { "field":"goods_list", "label":"货品明细节点", "type":"array", "describe":"货品明细节点", "children":[ {"field":"spec_no","label":"商家编码","type":"string","describe":"商家编码","value":"{FMaterialId_FNumber}"}, {"field":"stockin_num","label":"入库数量","type":"string","describe":"入库数量","value":"{FQty}"}, {"field":"src_price","label":"原价","type":"string","describe":"原价"}, {"field":"stockin_price","label":"入库价","type":"string","describe":"入库价"}, {"field":"batch_no","label":"批次","type":"string","describe":"批次"}, {"field":"tax","label":"税率","type":"string","describe": "对征税对象的征收比例或征收额度。例如税率为16%,请求时填值为0.16"} ] } ], ... } ``` #### 数据转换过程 1. **字段映射**:首先,我们需要将金蝶系统中的字段映射到旺店通·企业奇门API所需的字段。例如,金蝶系统中的`FBillNo`对应API中的`outer_no`,`FDestStockId_FNumber`对应`warehouse_no`。 2. **固定值设置**:某些字段需要设置固定值,如`remark`字段固定为“调拨入库”,`is_check`字段固定为“1”。 3. **数组节点处理**:对于货品明细节点(goods_list),需要将多个子项(如商家编码、入库数量等)进行映射和转换。这部分需要特别注意数组结构的处理,以确保每个子项都正确映射。 #### 配置示例 以下是一个具体的配置示例,展示了如何将金蝶系统的数据转换并写入旺店通·企业奇门API接口: ```json { ... { // 外部单号 field: 'outer_no', value: '{FBillNo}' }, { // 仓库编号 field: 'warehouse_no', value: '{FDestStockId_FNumber}' }, { // 备注 field: 'remark', value: '调拨入库' }, { // 是否审核 field: 'is_check', value: '1' }, { // 入库原因 field: 'reason', value: '{FReason}' }, { // 商品明细列表 field: 'goods_list', children: [ { // 商家编码 field: 'spec_no', value: '{FMaterialId_FNumber}' }, { // 入库数量 field: 'stockin_num', value: '{FQty}' }, { // 原价 field: 'src_price', value: '{FSrcPrice}' }, { // 入库价 field: 'stockin_price', value: '{FStockinPrice}' }, { // 批次 field: 'batch_no', value: '{FBatchNo}' }, { // 税率 field: 'tax', value: '{FTaxRate}' } ] } } ``` #### 实施与验证 在完成上述配置后,需要通过轻易云数据集成平台进行实施。实施过程中应注意以下几点: - **数据校验**:确保所有必填字段均已正确填写,并且格式符合目标平台要求。 - **测试与验证**:通过测试环境进行多次验证,确保数据能够成功写入目标平台,并且各项字段均能正确显示。 - **监控与维护**:利用轻易云平台提供的实时监控功能,及时发现并解决可能出现的问题,确保数据集成过程顺畅无误。 通过上述步骤,我们可以高效地将金蝶系统中的直接调拨单数据转换并写入到旺店通·企业奇门API接口中,实现不同系统间的数据无缝对接。 ![如何开发金蝶云星空API接口](https://pic.qeasy.cloud/T15.png~tplv-syqr462i7n-qeasy.image)