钉钉报销与金蝶云星空付款单高效数据集成方案

  • 轻易云集成顾问-冯潇
### 钉钉数据集成到金蝶云星空技术案例分享 在本次技术案例中,我们将详细展示如何利用轻易云平台实现钉钉的报销数据与金蝶云星空中的付款单进行高效集成。该方案旨在通过切实可行的API接口和多项关键特性,确保数据处理过程精准无误、实时监控,并有效提升业务运作效率。 ### 背景简介 此次项目目标是建立一套可靠且高效的数据流,实现从钉钉系统自动获取【现货采购】相关的报销信息,并批量写入到金蝶云星空生成相应的付款单记录。这一集成过程中,主要涉及以下两个核心API: 1. **钉钉获取数据的API**: `topapi/processinstance/get` 2. **金蝶云星空写入数据的API**: `batchSave` ### 技术要点详解 #### 数据获取与定时抓取策略 首先,通过调用`topapi/processinstance/get` API,我们需要定时可靠地抓取来自钉钉系统内最新生成的一系列报销流程实例。在这个步骤中,需要特别注意处理分页和限流问题,以防止一次性请求过多导致接口响应异常或服务拒绝。 #### 数据转换及格式适配 接下来,为了确保从不同源头系统中提取的数据能顺利传输至目标系统,必须实施自定义的数据转换逻辑。例如,不同字段名、日期格式以及金额单位等差异都需要进行灵活调整,使得两边系统能够对接并准确解析对应信息。 #### 实时监控及异常处理机制 针对整个任务流程,实现全面透明化管理显得尤为重要。我们应用集中式监控和告警系统,对每个数据集成任务状态及性能进行实时跟踪,同时配置错误重试机制以保证任何因网络不稳定或短暂服务不可用而引发的问题可以迅速得到修复。 #### 高吞吐量批量写入与日志记录 最后,将清洗整合后的报销记录通过`batchSave` API快速、大批量地写入至金蝶云星空。同时,每段操作流程均设置详细日志记录功能,以便随时审查历史执行情况并优化后续工作流程。此外,在对接过程中,如若出现例外场景(如部分字段必填但缺失),会即时触发报警机制并通知相关人员介入解决。 以上技术要点覆盖了从原始数据采集、数据信息匹配到最终批量导出多个环节内容。有了这些基础准备之后,可以具体分析各步实现细节并分享实践经验。 ![用友与WMS系统接口开发配置](https://pic.qeasy.cloud/D24.png~tplv-syqr462i7n-qeasy.image) ### 调用钉钉接口topapi/processinstance/get获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用钉钉接口`topapi/processinstance/get`,获取并加工数据,以实现钉钉报销【现货采购】到金蝶付款单【奥康/唐朝】的无缝对接。 #### 接口调用配置 首先,我们需要配置API接口的基本信息。根据提供的元数据配置,API接口为`topapi/processinstance/get`,请求方法为POST。以下是具体的请求参数配置: ```json { "api": "topapi/processinstance/get", "method": "POST", "idCheck": true, "formatResponse": [ { "old": "付款方式", "new": "付款方式_new", "format": "string" } ], "condition": [ [ { "field": "报销类别", "logic": "eq", "value": "现货采购" } ] ], "request": [ { "label": "审批流的唯一码", "field": "process_code", "type": "string", "value": "PROC-12B1B605-2D28-43FE-80FB-13ECE6165313" }, { "label": "审批实例开始时间。Unix时间戳,单位毫秒。", "field": "start_time", "type": "string", "value": "_function ( {LAST_SYNC_TIME} - ( 3600 * 96) ) * 1000" }, { "label": "审批实例结束时间,Unix时间戳,单位毫秒", "field": "end_time", "type": "string", "value": "{CURRENT_TIME}000" }, { "label": "分页参数,每页大小,最多传20。", "field": "size", "type": "string", "value": "20" }, { "label": “分页查询的游标,最开始传0,后续传返回参数中的next_cursor值。", “field”: “cursor”, “type”: “string” } ] } ``` #### 请求参数详解 1. **process_code**: 审批流的唯一码,用于标识具体的审批流程。 2. **start_time**: 审批实例开始时间,通过函数计算得到,表示从上次同步时间减去96小时。 3. **end_time**: 审批实例结束时间,为当前时间的Unix时间戳。 4. **size**: 分页参数,每页大小设置为20。 5. **cursor**: 分页查询游标,初始值为0。 #### 数据过滤与转换 在获取到原始数据后,需要对数据进行过滤和转换。根据元数据配置中的条件,我们只需要处理报销类别为“现货采购”的记录: ```json "condition":[ [ { “field”: “报销类别”, “logic”: “eq”, “value”: “现货采购” } ] ] ``` 此外,还需要对返回的数据字段进行重命名和格式化。例如,将“付款方式”字段重命名为“付款方式_new”,并将其格式化为字符串类型: ```json "formatResponse":[ { “old”: “付款方式”, “new”: “付款方式_new”, “format”: “string” } ] ``` #### 实际应用案例 假设我们从钉钉接口获取到以下原始数据: ```json { “process_instance_id”: “1234567890”, “报销类别”: “现货采购”, “付款方式”: “银行转账” } ``` 经过过滤和转换后,我们得到的数据如下: ```json { “process_instance_id”: “1234567890”, “报销类别”: “现货采购”, “付款方式_new”: “银行转账” } ``` 这些处理后的数据将被进一步传输到目标系统金蝶进行后续处理,实现从钉钉报销到金蝶付款单的自动化流程。 #### 总结 通过轻易云数据集成平台调用钉钉接口`topapi/processinstance/get`并对数据进行加工处理,可以高效地实现不同系统间的数据无缝对接。这不仅提高了业务流程的透明度和效率,也确保了数据的一致性和准确性。在实际应用中,根据具体需求灵活配置API请求参数和响应格式,是成功实现数据集成的关键。 ![泛微OA与ERP系统接口开发配置](https://pic.qeasy.cloud/S23.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将钉钉报销数据转换并写入金蝶云星空API接口 在数据集成过程中,ETL(Extract, Transform, Load)是关键步骤之一。本文将重点介绍如何利用轻易云数据集成平台,将钉钉报销【现货采购】的数据转换为金蝶付款单【奥康/唐朝】所需的格式,并通过金蝶云星空API接口实现数据写入。 #### 数据转换与写入配置 在轻易云平台中,我们需要配置元数据以确保数据能够正确地从源系统(钉钉)转换并写入目标系统(金蝶云星空)。以下是具体的元数据配置示例: ```json { "api": "batchSave", "method": "POST", "idCheck": true, "operation": { "method": "batchArraySave", "rows": 1, "rowsKey": "array" }, "request": [ { "field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号", "value": "{{extend.business_id}}" }, { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型", "parser": { "name": "ConvertObjectParser", "params": "FNUMBER" }, "value": "FKDLX01_SYS" }, { ... } ], ... } ``` #### 配置解析与应用 1. **单据编号(FBillNo)**: - 字段类型:字符串 - 值来源:`{{extend.business_id}}`,即从钉钉报销数据中的业务ID提取。 2. **单据类型(FBillTypeID)**: - 字段类型:字符串 - 转换器:`ConvertObjectParser`,参数为`FNUMBER` - 固定值:`FKDLX01_SYS` 3. **业务日期(FDATE)**: - 字段类型:字符串 - 值来源:`{{extend.finish_time}}`,即从钉钉报销数据中的完成时间提取。 4. **结算组织(FSETTLEORGID)**和**付款组织(FPAYORGID)**: - 字段类型:字符串 - 转换器:`ConvertObjectParser` - 动态值:通过查找集合获取,如 `_findCollection find Number from ... where Name={{费用归属项目}}` 5. **币别(FCURRENCYID)**和**结算币别(FSETTLECUR)**: - 字段类型:字符串 - 转换器:`ConvertObjectParser` - 固定值:`PRE001` 6. **往来单位类型(FCONTACTUNITTYPE)**和**收款单位类型(FRECTUNITTYPE)**: - 字段类型:字符串 - 固定值:`BD_Supplier` 7. **往来单位(FCONTACTUNIT)和收款单位(FRECTUNIT)**: - 字段类型:字符串 - 转换器:`ConvertObjectParser` - 值来源:如 `{{项目报销明细.0.企业客户TextField_SAZV40M27KW0}}` 8. **备注字段(FREMARK、FCOMMENT等)**: - 字段类型:字符串 - 动态组合值,如 `{title}-{{项目报销明细.0.企业客户TextField-K2U5DHAA}}-{{备注}}` 9. **付款单明细(FPAYBILLENTRY)数组配置**: 包含多个子字段,如结算方式、付款用途、应付金额、物料编码等。 ```json { ... { "field":"FPAYBILLENTRY", ... children:[ { ... { field: 'FPURPOSEID', label: '付款用途', type: 'string', value: 'SFKYT08_SYS', parent: 'FPAYBILLENTRY', parser: { name: 'ConvertObjectParser', params: 'FNumber' } }, ... } ], value: '项目报销明细' } } ``` #### 数据写入目标平台 在完成上述配置后,通过调用金蝶云星空的API接口实现数据写入。以下是请求示例: ```json { FormId: 'AP_PAYBILL', Operation: 'BatchSave', IsAutoSubmitAndAudit: false, IsVerifyBaseDataField: false, Model: { FBillNo: '{{extend.business_id}}', FBillTypeID: { FNUMBER: 'FKDLX01_SYS' }, FDATE: '{{extend.finish_time}}', ... } } ``` #### 总结 通过上述步骤,我们成功地将钉钉报销【现货采购】的数据转换为金蝶付款单【奥康/唐朝】所需的格式,并通过金蝶云星空API接口实现了数据的无缝对接。这一过程展示了如何利用轻易云数据集成平台的强大功能,实现不同系统间的数据集成与转换。 ![用友与CRM系统接口开发配置](https://pic.qeasy.cloud/T19.png~tplv-syqr462i7n-qeasy.image)