利用轻易云数据集成平台将数据写入金蝶云星空API

  • 轻易云集成顾问-彭萍
### 金蝶云星空与金蝶云星空之间的应收单自动审核系统对接技术案例 在本案例中,我们将重点探讨如何在轻易云数据集成平台上实现金蝶云星空(以下简称“系统A”)到金蝶云星空(以下简称“系统B”)的数据集成,特别是围绕应收单自动审核这一具体业务。方案实际运行名称为:[临时]-应收单自动审核。 #### 集成背景与需求 主要任务是确保从系统A抓取未审核的应收单数据,通过定制化的数据映射后,将其高效、准确地写入到系统B,并执行审计操作。在这个过程中,需要处理api接口executeBillQuery用于获取数据,以及Audit用于写入和状态更新。此外,还要解决分页查询、限流以及异常处理等问题,以确保整个流程的可靠性和实时性。 #### 核心技术挑战及解决方案概述 1. **如何确保集成不漏单**:通过定时可靠地抓取executeBillQuery接口的数据,并使用唯一标识符对比,避免重复导入或遗漏任何一条记录。 2. **大量数据快速写入**:利用批量操作功能,提高API调用效率,同时配合多线程并行处理,实现大规模数据快速注入到目标端。 3. **异步与错误重试机制**:对于执行过程中出现的网络波动或服务器响应超时现象,引入队列机制进行异步补偿和重试策略,减少人工介入力度。 4. **分页与限流管理**:通过设置合理的分页参数,与API交互时控制请求频率,以规避因短时间内大量调用可能引发的限流问题或性能瓶颈。 5. **实时监控及日志记录**: 在集成功能模块设计阶段,即嵌入实时监控组件,对每一步骤进行精细化日志记录。这不仅便于排查故障,还能提供详细报表供后续分析优化之用。 6. **区别化字段映射处理**: 针对两套同类型但不同部署环境下存在的小差异,通过灵活配置字段匹配规则,使原始数据信息能够无损转换传递,保证一致性和完整性。 以上关键点确立了整体架构,有助于顺利达成应收单自动审核任务目标。随后的章节中,我们将逐项详解这些技术解决方案及其实践效果,为大家分享一个真实而又高效的数据集成案例。 ![如何对接金蝶云星空API接口](https://pic.qeasy.cloud/D11.png~tplv-syqr462i7n-qeasy.image) ### 调用源系统金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取应收单数据,并进行初步加工。 #### 接口配置与调用 首先,我们需要了解`executeBillQuery`接口的基本配置。根据提供的元数据配置,接口采用POST方法进行调用,主要参数如下: - **API名称**: `executeBillQuery` - **请求方法**: `POST` - **主要字段**: - `FID`: 唯一标识 - `FBillNo`: 单据编号 - `FDocumentStatus`: 单据状态 此外,还有一些其他请求参数用于分页和过滤条件: - **Limit**: 最大行数,默认值为2000 - **StartRow**: 开始行索引,用于分页 - **TopRowCount**: 返回总行数 - **FilterString**: 过滤条件,例如 `FDocumentStatus <> 'C'` - **FieldKeys**: 查询字段集合,例如 `FID, FBillNo, FDocumentStatus` - **FormId**: 业务对象表单Id,例如 `AR_receivable` #### 请求示例 为了更好地理解如何调用该接口,以下是一个具体的请求示例: ```json { "FormId": "AR_receivable", "FieldKeys": ["FID", "FBillNo", "FDocumentStatus"], "FilterString": "FDocumentStatus <> 'C'", "Limit": 2000, "StartRow": 0 } ``` 在这个请求中,我们指定了表单ID为`AR_receivable`,查询字段包括`FID`, `FBillNo`, 和`FDocumentStatus`,并设置了过滤条件以排除已关闭的单据。 #### 数据处理与清洗 在成功获取数据后,我们需要对数据进行初步处理和清洗。这一步骤通常包括以下几个方面: 1. **字段映射与转换**:将从金蝶云星空获取的数据字段映射到目标系统所需的字段格式。例如,将`FBillNo`映射为目标系统中的订单编号。 2. **数据过滤与校验**:根据业务需求进一步过滤不符合条件的数据,并进行必要的数据校验。例如,确保所有记录的`FDocumentStatus`都不是'C'。 3. **异常处理**:处理可能出现的数据异常情况,如缺失字段或格式错误等。 #### 实际应用案例 假设我们需要自动审核应收单,在获取并清洗数据后,可以根据业务逻辑对每条记录进行审核操作。以下是一个简化的伪代码示例: ```python def process_receivable_data(data): for record in data: if record['FDocumentStatus'] != 'C': # 执行审核操作 audit_receivable(record['FBillNo']) def audit_receivable(bill_no): # 审核逻辑实现 print(f"Auditing receivable bill: {bill_no}") # 获取并清洗后的数据示例 data = [ {"FID": "1", "FBillNo": "20230001", "FDocumentStatus": "A"}, {"FID": "2", "FBillNo": "20230002", "FDocumentStatus": "B"} ] process_receivable_data(data) ``` 在这个示例中,我们首先遍历每条记录,如果其状态不是'C',则调用审核函数对其进行审核。 #### 总结 通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,我们能够高效地获取应收单数据,并通过初步加工和清洗,为后续的业务处理打下坚实基础。本文详细介绍了接口配置、请求示例以及实际应用案例,希望能为相关技术人员提供有价值的参考。 ![金蝶与外部系统打通接口](https://pic.qeasy.cloud/S12.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将源数据转换并写入金蝶云星空API接口 在数据集成生命周期的第二步中,我们需要将已经从源平台获取并清洗的数据进行ETL(提取、转换、加载)处理,最终将其转换为目标平台——金蝶云星空API接口所能够接收的格式,并成功写入。以下是具体的技术实现过程和细节。 #### 1. 数据提取与清洗 首先,我们需要从源平台提取相关数据。假设我们已经完成了这一阶段,并且清洗后的数据已经准备好进行下一步处理。在此阶段,我们关注的是如何将这些数据转换为金蝶云星空API所需的格式。 #### 2. 数据转换与写入 为了实现这一目标,我们需要根据金蝶云星空API的要求,对数据进行相应的转换。以下是我们需要配置的元数据: ```json { "api": "Audit", "method": "POST", "idCheck": true, "request": [ {"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "AR_receivable"}, {"field": "Numbers", "label": "编码集合", "type": "string", "value": "{FBillNo}"}, {"field": "Ids", "label": "id集合", "type": "string"}, {"field": "InterationFlags", "label": "交互标志集合", "type": "string", "describe":"字符串类型,分号分隔,格式:\"flag1;flag2;...\"(非必录) 例如(允许负库存标识:STK_InvCheckResult)","value":"STK_InvCheckResult"}, {"field": "IgnoreInterationFlag", "label":"是否允许忽略交互","type":"string","describe":"布尔类型,默认true(非必录)","value":"true"}, {"field":"NetworkCtrl","label":"是否启用网控","type":"string","describe":"布尔类型,默认false(非必录)","value":"false"}, {"field":"IsVerifyProcInst","label":"检验单据关联运行","type":"string","describe":"是否检验单据关联运行中的工作流实例,布尔类型,默认false(非必录)","value":"false"} ] } ``` #### 3. 配置API请求参数 我们需要按照上述元数据配置来构建我们的API请求参数。以下是各个字段的详细说明和配置方法: - **FormId**: 必须填写金蝶的表单ID,例如对于应收单自动审核,我们使用`AR_receivable`。 - **Numbers**: 编码集合,这里使用占位符`{FBillNo}`来动态填充实际值。 - **Ids**: ID集合,根据需求可以选择性地填写。 - **InterationFlags**: 交互标志集合,例如`STK_InvCheckResult`表示允许负库存标识。 - **IgnoreInterationFlag**: 是否允许忽略交互,默认为`true`。 - **NetworkCtrl**: 是否启用网控,默认为`false`。 - **IsVerifyProcInst**: 是否检验单据关联运行中的工作流实例,默认为`false`。 #### 4. 构建和发送API请求 在轻易云数据集成平台上,我们可以使用内置的HTTP请求模块来构建和发送上述配置的API请求。以下是一个示例代码片段,用于构建和发送POST请求: ```python import requests import json url = 'https://api.kingdee.com/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit' headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer your_access_token' } data = { 'FormId': 'AR_receivable', 'Numbers': ['{FBillNo}'], 'Ids': '', 'InterationFlags': 'STK_InvCheckResult', 'IgnoreInterationFlag': True, 'NetworkCtrl': False, 'IsVerifyProcInst': False } response = requests.post(url, headers=headers, data=json.dumps(data)) if response.status_code == 200: print('Data successfully written to Kingdee Cloud') else: print('Failed to write data:', response.text) ``` 在实际操作中,需要确保替换占位符`{FBillNo}`为实际的数据值,并且根据具体情况调整其他参数。 #### 5. 数据监控与验证 在成功发送请求后,我们需要监控和验证数据是否正确写入目标平台。这可以通过轻易云平台提供的实时监控功能来实现,确保每个环节都透明可见。 以上就是使用轻易云数据集成平台将源数据转换并写入金蝶云星空API接口的详细技术步骤和实现方法。在实际应用中,根据具体业务需求可能会有更多细节需要调整,但总体流程基本一致。 ![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/T4.png~tplv-syqr462i7n-qeasy.image)