泛微OA与金蝶云数据集成案例:接口调用与数据处理策略

  • 轻易云集成顾问-卢剑航
### FD006-募投账户付款申请流程 泛微=>金蝶银行转账单--478 数据集成技术案例分享 在本次技术案例中,我们将深入探讨如何通过轻易云数据集成平台,将泛微OA系统中的募投账户付款申请流程数据无缝对接到金蝶云星空的银行转账单模块。我们使用方案名称为“FD006-募投账户付款申请流程 泛微=>金蝶银行转账单--478”,以实现高效、安全的数据同步与处理。 #### 接口调用与数据获取策略 首先,通过泛微OA-Http接口`/api/workflow/paService/getWorkflowRequest`,我们能够可靠定时地抓取所需的工作流请求数据。确保每次抓取动作完整且不漏单,采用了一种分页和限流机制,以应对泛微OA接口可能存在的数据量较大或频繁访问限制的问题。 ```json { "requestType": "getRecentWorkflows", "limit": 100, "page": 1 } ``` 如上所示的请求体结构,可以有效控制每次返回的数据条目数,并实现渐进式的全量翻页抓取。这不仅保证了任务运行效率,也规避了因一次性大量请求导致接口超载或失败的问题。 #### 数据转换与映射逻辑 在从泛微OA获取到原始数据后,需要针对不同业务需求进行自定义的数据转换。这里主要涉及字段映射、格式调整及必要的数据清洗操作。例如,在我们的项目过程中,发现部分日期字段需要重新格式化以符合目标系统(金蝶云星空)的要求。此外,还加入了错误记录和重试机制,应对潜在异常情况。 #### 金蝶云星空API写入配置 完成转换后的数据,通过调用金蝶云星空提供的`batchSave` API,实现批量、高速写入对应模块。同时,为保障写入过程的一致性和完整性,引入事务管理机制。如果任意一组批量操作发生失败,即回滚当前事务并触发告警,以便及时排查和解决问题: ```json { "requests": [ { ... } ] } ``` 上述JSON片段展示了向金蝶云提交的一组批量保存请求,其中包含所有必要的信息载荷。在实际实施中,每个具体字段都由用户自定义映射规则生成,以匹配目标系统表结构需求。 ### 实时监控与日志记录 为了全面跟踪这个集成过程中的各个环节状态变化,本项目应用了轻易云平台内置的集中监控和告警功能。不仅可以实时观察任务执行进度,还能迅速识别并定位潜在异常点,最大程度地保证整个作业 ![用友与MES系统接口开发配置](https://pic.qeasy.cloud/D13.png~tplv-syqr462i7n-qeasy.image) ### 调用泛微OA-Http接口获取并加工数据 在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的第一步。本文将详细探讨如何通过调用泛微OA-Http接口`/api/workflow/paService/getWorkflowRequest`来获取并加工数据,以实现与金蝶银行转账单的无缝对接。 #### 接口配置与请求参数 首先,我们需要配置泛微OA-Http接口的元数据。根据提供的元数据配置,我们可以看到该接口采用GET方法进行数据查询,主要参数如下: - **API路径**: `/api/workflow/paService/getWorkflowRequest` - **请求方法**: GET - **主要字段**: - `requestId`: 请求标识符 - `workflowId`: 流程ID,固定值为`478` - `workflowIdList`: 中间方案ID,固定值为`2356388e-8c49-35b3-bb7e-1eca1a8617d5` 请求参数示例如下: ```json { "workflowId": "478", "workflowIdList": "2356388e-8c49-35b3-bb7e-1eca1a8617d5" } ``` #### 数据过滤与条件设置 为了确保获取的数据符合预期,我们需要设置过滤条件。根据元数据配置中的条件部分,我们可以看到以下过滤条件: ```json "condition":[[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"银行转账单"}]] ``` 这意味着我们只会处理`fklx`字段值为“银行转账单”的数据。这种精确的过滤机制能够有效地减少不必要的数据传输和处理,提高系统效率。 #### 自动填充响应 元数据配置中还提到一个重要特性:自动填充响应(autoFillResponse)。这一特性确保了在获取到数据后,系统能够自动将响应内容填充到相应的数据结构中,无需额外的手动处理。这极大地简化了开发工作量,并减少了出错的可能性。 #### 实际调用与数据清洗 在实际操作中,我们通过轻易云平台发起GET请求,调用上述API接口,并获取返回的数据。假设返回的数据结构如下: ```json { "requestId": "12345", "workflowMainTableInfo": { "fklx": "银行转账单", "amount": 1000, "currency": "CNY" } } ``` 接下来,我们需要对返回的数据进行清洗和转换,以便后续写入金蝶系统。在这个过程中,可以利用轻易云平台提供的可视化工具,对数据进行映射和转换。例如,将`amount`字段转换为金蝶系统所需的格式,并确保货币类型符合要求。 #### 数据转换与写入 完成数据清洗后,下一步是将处理后的数据写入目标系统——金蝶银行转账单。在这一阶段,可以利用轻易云平台提供的多种连接器和适配器,实现不同系统间的数据无缝对接。通过配置相应的目标端点和映射规则,确保数据准确、高效地传输到目标系统中。 总结而言,通过调用泛微OA-Http接口并结合轻易云平台强大的集成能力,我们能够高效地实现不同系统间的数据交换和处理。这不仅提升了业务流程的透明度和效率,也为企业数字化转型提供了坚实的技术支持。 ![打通企业微信数据接口](https://pic.qeasy.cloud/S7.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台生命周期中的ETL转换:实现金蝶云星空API接口的数据写入 在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,转为目标平台——金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何利用轻易云数据集成平台配置元数据,实现这一过程。 #### 元数据配置解析 在本案例中,我们需要将泛微系统中的募投账户付款申请流程数据,通过ETL转换后写入金蝶云星空的银行转账单。具体的元数据配置如下: ```json { "api": "batchSave", "effect": "EXECUTE", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 1, "method": "batchArraySave" }, "request": [ { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型\n其他应付单-QTYFD01_SYS\n费用报销其他应付单-QTYFD02 SYS", "value": "YHZZ01_SYS", "parser": { "name": "ConvertObjectParser", "params": "FNUMBER" } }, { ... } ], ... } ``` #### 关键字段解析与转换 1. **单据类型 (FBillTypeID)**: - 字段描述:单据类型,具体值为“YHZZ01_SYS”。 - 转换方式:通过`ConvertObjectParser`解析器,将其转换为金蝶系统所需的格式。 2. **单据编号 (FBillNo)**: - 字段描述:从泛微系统中的主表信息字段`workflowMainTableInfo.lcbh_FV`获取。 - 转换方式:直接映射,无需额外处理。 3. **业务日期 (FDATE)**: - 字段描述:从泛微系统中的主表信息字段`workflowMainTableInfo.sqrq`获取。 - 转换方式:直接映射,无需额外处理。 4. **收付组织 (FPAYORGID)**: - 字段描述:从泛微系统中的主表信息字段`workflowMainTableInfo.sqgs`获取。 - 转换方式:通过`ConvertObjectParser`解析器,将其转换为金蝶系统所需的格式,并进行正向映射。 5. **汇率类型 (FEXCHANGETYPE)**: - 字段描述:固定值“HLTX01_SYS”。 - 转换方式:通过`ConvertObjectParser`解析器,将其转换为金蝶系统所需的格式。 #### 明细行处理 明细行(FEntity)的处理是ETL过程中的重要环节,每个子字段都需要正确映射和转换: 1. **转出账号 (FFROMBANKACNTID)**: - 字段描述:从泛微系统中的主表信息字段`workflowMainTableInfo.zczh_FV`获取。 - 转换方式:通过`ConvertObjectParser`解析器,将其转换为金蝶系统所需的格式。 2. **转入账号 (FTOBANKACNTID)**: - 字段描述:从泛微系统中的主表信息字段`workflowMainTableInfo.zrzh_FV`获取。 - 转换方式:通过`ConvertObjectParser`解析器,将其转换为金蝶系统所需的格式。 3. **转出金额 (FTOTALAMOUNT) 和 转入金额 (FAmount)**: - 字段描述:均从泛微系统中的主表信息字段`workflowMainTableInfo.ytbce_FV`获取。 - 转换方式:直接映射,无需额外处理。 4. **摘要 (FEXPLANATION)**: - 字段描述:从泛微系统中的主表信息字段`workflowMainTableInfo.nrsm`获取。 - 转换方式:直接映射,无需额外处理。 5. **登账日期 (FPOSTDATE)**: - 字段描述:从泛微系统中的主表信息字段`workflowMainTableInfo.sqrq`获取。 - 转换方式:直接映射,无需额外处理。 #### 其他请求参数配置 除了上述主要字段外,还需要配置一些关键的请求参数,以确保数据能够正确提交并被目标平台接受: - `FormId`: 金蝶业务对象表单Id,固定值“CN_BANKTRANSBILL”。 - `Operation`: 执行操作,固定值“BatchSave”。 - `IsAutoSubmitAndAudit`: 是否自动提交并审核,布尔值false。 - `IsVerifyBaseDataField`: 是否验证基础资料有效性,布尔值true。 #### 数据提交与执行 所有字段和参数配置完成后,通过POST方法调用金蝶云星空API接口进行批量保存操作。整个过程包括了对各个字段的提取、解析和转换,并最终形成符合目标平台要求的数据格式,从而实现无缝的数据写入。 以上就是利用轻易云数据集成平台实现ETL转换并将数据写入金蝶云星空API接口的技术案例。通过精确配置元数据和合理使用解析器,可以确保数据在不同系统间高效、准确地流动。 ![如何开发用友BIP接口](https://pic.qeasy.cloud/T15.png~tplv-syqr462i7n-qeasy.image)