如何进行钉钉与金蝶云系统的数据转换与写入

  • 轻易云集成顾问-贺强
### 使用轻易云平台实现钉钉数据集成到金蝶云星空的方案 在当前项目中,我们需要将钉钉的“报销【月结贷款】”业务数据集成至金蝶云星空,从而生成对应的付款单。此案例涉及多个技术细节和API调用,是一个典型的数据对接任务。本文将分享这一过程中所采用的主要技术方法与解决方案。 首先,通过调用钉钉API `topapi/processinstance/get`,我们可以获取到具体的报销审批实例信息。在这个过程中,需要特别注意处理分页和限流问题,确保所有数据均匀、稳定地被获取。这一步骤不仅涉及接口参数配置,还包含了如何通过定时可靠地抓取接口数据,以确保不出现漏单现象。 其次,为使这些报销记录能够准确无误地写入金蝶云星空系统,我们使用其提供的批量保存API `batchSave`。由于两者之间存在一定的数据格式差异,因此必须自定义数据转换逻辑,并应用可视化的数据流设计工具来进行映射,实现精确对应。同时,还需要关注如何处理金蝶云星空对接过程中的异常,以及制定完善的错误重试机制,以增强系统可靠性。 为了监控整个数据集成过程,我们依托集中监控和告警系统,实时跟踪每个步骤中的状态及性能情况。当发现任何异常或潜在的问题时,可及时采取相应措施。此外,我们还利用支持高吞吐量的数据写入能力,使得大量报销记录能够快速且连续地传输并存储于目标数据库中,有效提升处理效率。 总之,本案例展示了一整套从获取、转换到存储,并实时监控管理的一体化解决方案,通过深入剖析各环节的方法与技巧,为类似系统对接需求提供了有益参考。 ![轻易云数据集成平台金蝶集成接口配置](https://pic.qeasy.cloud/D22.png~tplv-syqr462i7n-qeasy.image) ### 调用钉钉接口topapi/processinstance/get获取并加工数据 在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用钉钉接口`topapi/processinstance/get`,并对获取的数据进行加工处理。 #### 接口调用配置 首先,我们需要配置元数据来定义接口的调用方式和参数。根据提供的元数据配置,以下是具体的设置: ```json { "api": "topapi/processinstance/get", "method": "POST", "number": "number", "id": "id", "idCheck": true, "condition": [ [ { "field": "报销类别", "logic": "eq", "value": "月结货款" } ] ], "formatResponse": [ { "old": "付款方式", "new": "付款方式_new", "format": "string" } ] } ``` #### 数据请求与清洗 1. **API请求**:我们使用POST方法调用钉钉接口`topapi/processinstance/get`。该接口用于获取指定流程实例的详细信息。在请求中,我们需要传递必要的参数,如流程实例ID(`id`)和其他业务相关参数。 2. **条件过滤**:在请求之前,我们可以根据特定条件对数据进行过滤。这里我们设置了一个条件,即“报销类别”必须等于“月结货款”。这一步骤确保我们只获取符合业务需求的数据。 3. **ID检查**:配置中的`idCheck: true`表示在请求前需要验证ID的有效性。这一步骤可以避免无效或错误ID导致的数据请求失败。 #### 数据转换与写入 1. **格式化响应**:在获取到数据后,我们需要对部分字段进行重命名和格式转换。根据元数据配置,我们将响应中的“付款方式”字段重命名为“付款方式_new”,并将其格式化为字符串类型。这一步骤可以通过轻易云平台提供的可视化工具轻松完成。 2. **数据写入**:经过清洗和转换后的数据将被写入目标系统。在本案例中,目标系统是金蝶付款单【炫涵】。通过轻易云平台,我们可以实现不同系统间的数据无缝对接,确保数据准确传输和存储。 #### 实际操作步骤 1. **配置API请求**: - 在轻易云平台上创建一个新的API任务。 - 设置API URL为`https://oapi.dingtalk.com/topapi/processinstance/get`。 - 配置请求方法为POST,并添加必要的头部信息和参数。 2. **添加条件过滤**: - 在API任务中添加条件过滤模块。 - 设置过滤条件为“报销类别”=“月结货款”。 3. **格式化响应数据**: - 在API任务中添加响应处理模块。 - 配置字段重命名,将“付款方式”重命名为“付款方式_new”。 - 设置字段类型转换,将其转换为字符串类型。 4. **写入目标系统**: - 创建一个新的数据写入任务。 - 配置目标系统连接信息(如金蝶系统)。 - 将处理后的数据映射到目标系统对应的字段中。 通过以上步骤,我们可以高效地调用钉钉接口获取所需数据,并进行必要的清洗和转换,最终将处理后的数据准确地写入目标系统。这一过程充分利用了轻易云平台的数据集成能力,实现了不同系统间的数据无缝对接。 ![电商OMS与ERP系统接口开发配置](https://pic.qeasy.cloud/S22.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台将钉钉报销数据转换并写入金蝶云星空API接口 在数据集成生命周期的第二步,我们需要将已经从源平台(如钉钉报销系统)获取的数据进行ETL转换,并转为目标平台(如金蝶云星空API接口)所能够接收的格式,最终写入目标平台。本文将详细探讨这一过程中涉及的技术细节和实现方法。 #### 配置元数据 首先,我们需要配置元数据,以便在ETL过程中正确映射字段和执行必要的转换。以下是我们在轻易云数据集成平台上使用的元数据配置: ```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"}, {"field":"FDATE","label":"业务日期","type":"string","describe":"业务日期","value":"{{extend.finish_time}}"}, {"field":"FSETTLEORGID","label":"结算组织","type":"string","describe":"100","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find Number from 723e2cb6-f80f-3823-8b4f-6e98b9713ba3 where Name={{费用归属项目}}"}, {"field":"FPAYORGID","label":"付款组织","type":"string","describe":"100","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find Number from 723e2cb6-f80f-3823-8b4f-6e98b9713ba3 where Name={{费用归属项目}}"}, {"field":"FCURRENCYID","label":"币别","type":"string","describe":"币别","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"PRE001"}, {"field":"FCONTACTUNITTYPE","label":"往来单位类型","type":"string","describe":"往来单位类型","value":"BD_Supplier"}, {"field":"FCONTACTUNIT","label":"往来单位","type":"","describe":"","value":"","parser":{"name":"","params":""}}, {"field":"","label":"","type":"","describe":"","value":"","parser":{"name":"","params":""}}, {"field":"","label":"","type":"","describe":"","value":"","parser":{"name":"","params":""}} ], "otherRequest":[ {"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "", "value": ""}, {"field": "", "label": "", "type": "", "describe": "", "value": ""} ] } ``` #### 数据请求与清洗 在数据请求阶段,我们从钉钉报销系统中获取原始数据。这些数据通常包含各种字段,如报销单号、报销金额、报销日期等。在清洗阶段,我们会对这些原始数据进行预处理,包括去除无效数据、修正错误信息等。 #### 数据转换与写入 接下来是关键的ETL转换过程。我们需要将清洗后的数据按照目标平台金蝶云星空API接口的要求进行格式转换。以下是一些关键字段的转换示例: 1. **单据编号(FBillNo)**: ```json { "field": "FBillNo", "label": "单据编号", "type": "string", "describe": "", "value": "{{extend.business_id}}" } ``` 我们直接将`extend.business_id`映射为金蝶云星空中的`FBillNo`字段。 2. **单据类型(FBillTypeID)**: ```json { "field": "", "" } ``` 3. **业务日期(FDATE)**: ```json { "" } ``` 4. **结算组织(FSETTLEORGID)**: ```json { "" } ``` 5. **付款组织(FPAYORGID)**: ```json { "" } ``` 6. **币别(FCURRENCYID)**: 7. **往来单位类型(FCONTACTUNITTYPE)**: 8. **往来单位(FCONTACTUNIT)**: 9. **付款单明细(FPAYBILLENTRY)**: 10. **部门(FDepartment)**: #### 提交与审核 最后,在所有字段都正确映射并转换后,我们通过调用金蝶云星空API接口,将处理好的数据提交到目标平台。以下是一个典型的API调用示例: ```json { "" } ``` 通过上述步骤,我们成功地将钉钉报销系统中的数据转换为金蝶云星空API接口所能接受的格式,并完成了整个ETL过程。这一过程不仅确保了数据的一致性和准确性,还大大提高了工作效率。 以上内容涵盖了从源平台到目标平台的数据转换和写入的关键技术细节,希望对您有所帮助。 ![如何开发企业微信API接口](https://pic.qeasy.cloud/T15.png~tplv-syqr462i7n-qeasy.image)