ETL流程:金蝶发往钉钉付款申请单生成金蝶云星空付款单

  • 轻易云集成顾问-姚缘
### 钉钉数据集成到金蝶云星空:从付款申请单到付款单的自动化推送 在企业数字化运营过程中,如何高效、可靠地实现系统对接,是每个技术团队面临的重要课题。特别是当公司采用了多种SaaS服务来管理不同业务流程时,数据集成的效率和正确性直接关系到整体运营效果。本案例将详细探讨一个具体实践:通过轻易云平台,实现将钉钉中的付款申请单数据自动下推生成金蝶云星空中的付款单。 #### 确保集成不漏单 为了确保从钉钉获取的数据完整无遗漏,我们首先调用了`topapi/processinstance/get`接口。这个API能够准确抓取指定时间段内所有已提交且符合条件的付款申请单。在实际应用中,因为接口存在分页限制,需要设计合适的循环机制来逐页获得完整的数据。同时,为了防止限流问题带来的请求失败,还必须引入重试机制,以保证每次都是成功捕捞需要处理的数据。 #### 快速批量写入金蝶云星空 由于业务需求复杂且审批速度快,在将数据写入金蝶云时选择批量操作以提高效率至关重要。这里我们使用了金蝶提供的Push API进行大量数据快速写入。为了处理两者之间可能存在的数据格式差异,我们开发了一套映射规则,将钉钉的数据字段与金蝶所需字段一一对应,使得整个过程高效而顺畅。此外,通过制定异常处理与错误重试机制,当某些记录在推送过程中出现问题时,能及时发现并补救,而无需影响其他记录的正常传输。 #### 实现实时监控与日志记录 为了让整个过程透明,并随时了解运行状态,我们使用轻易云平台提供的全透明可视化界面和实时监控功能。从最初的数据抓取,到最后完成支付信息录入,每一步都进行了严格监控,同时生成详尽日志供事后审计。这不仅提升了系统运维人员查错修复的问题响应速度,也为管理层提供了直观的信息追踪渠道。 利用这些技术手段,本案例有效解决了多个常见痛点,不仅确保了各个环节精确、稳定地执行,更大幅度提升了跨系统协作效率,为类似项目提供了一条清晰可行的发展路径。 ![用友BIP接口开发配置](https://pic.qeasy.cloud/D38.png~tplv-syqr462i7n-qeasy.image) ### 调用钉钉接口topapi/processinstance/get获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用钉钉接口`topapi/processinstance/get`来获取付款申请单数据,并进行相应的加工处理。 #### API接口调用配置 首先,我们需要配置API接口的元数据。根据提供的元数据配置如下: ```json { "api": "topapi/processinstance/get", "method": "POST", "number": "number", "id": "id", "idCheck": true } ``` 该配置表明我们将使用POST方法调用钉钉的`topapi/processinstance/get`接口,并且需要传递两个参数:`number`和`id`。其中,`idCheck`为true,表示需要对ID进行校验。 #### 数据请求与清洗 在实际操作中,我们首先需要构建请求体来获取付款申请单的数据。假设我们有一个付款申请单的ID为`12345`,那么请求体可以构建如下: ```json { "process_instance_id": "12345" } ``` 通过轻易云平台的可视化界面,我们可以很方便地配置这个请求体,并发送请求以获取响应数据。 #### 数据转换与写入 一旦成功获取到响应数据,我们需要对其进行清洗和转换,以便下推生成付款单。在这个过程中,可能涉及以下几个步骤: 1. **字段映射**:将响应中的字段映射到目标系统所需的字段。例如,将钉钉返回的`process_instance_id`映射到金蝶系统中的付款单ID。 2. **数据格式转换**:根据目标系统的要求,对日期、金额等字段进行格式转换。 3. **业务逻辑处理**:根据业务需求,对某些字段进行计算或逻辑判断。例如,根据付款申请单的状态决定是否生成对应的付款单。 以下是一个简单的数据转换示例: ```json { "payment_order_id": "{{process_instance_id}}", "amount": "{{form_component_values.amount}}", "request_date": "{{form_component_values.request_date | date('YYYY-MM-DD')}}" } ``` 在这个示例中,我们将钉钉返回的数据中的`process_instance_id`映射为金蝶系统中的付款单ID,将金额和请求日期也进行了相应的映射和格式转换。 #### 实时监控与错误处理 在整个数据集成过程中,实时监控和错误处理也是不可忽视的重要环节。轻易云平台提供了强大的实时监控功能,可以帮助我们及时发现并解决问题。例如,如果某个API调用失败或返回的数据不符合预期,我们可以通过日志和告警功能迅速定位问题并采取措施。 #### 总结 通过以上步骤,我们实现了从钉钉获取付款申请单数据并进行加工处理,以便下推生成金蝶系统中的付款单。在这个过程中,轻易云平台提供了全透明可视化的操作界面,使得每个环节都清晰易懂,并极大提升了业务效率。 ![如何对接钉钉API接口](https://pic.qeasy.cloud/S15.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现金蝶云星空付款单生成 在数据集成过程中,将源平台的数据转换为目标平台可接收的格式是至关重要的一步。本文将深入探讨如何使用轻易云数据集成平台将金蝶发往钉钉的付款申请单,通过ETL(提取、转换、加载)过程,最终生成金蝶云星空API接口所能接收的付款单。 #### API接口配置与调用 我们首先需要配置并调用金蝶云星空的API接口,以便将处理后的数据写入目标平台。以下是元数据配置详情: ```json { "api": "Push", "method": "POST", "idCheck": true, "request": [ {"field": "FormId", "label": "业务对象表单Id", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "CN_PAYAPPLY"}, {"field": "Numbers", "label": "编码集合", "type": "string", "value": "{{单据编号}}"}, {"field": "Ids", "label": "id集合", "type": "string", "value": "{status}"}, {"field": "RuleId", "label": "单据转换规则内码", "type": "string", "describe":"字符串类型,分号分隔,格式:\"flag1;flag2;...\"(非必录) 例如(允许负库存标识:STK_InvCheckResult)"}, {"field": "IsEnableDefaultRule", "label":"是否启用默认单据转换","type":"string","describe":"布尔类型,默认true(非必录)","value":"true"}, {"label":"TargetFormId","field":"TargetFormId","type":"string","value":"AP_PAYBILL"}, {"label":"IsDraftWhenSaveFail","field":"IsDraftWhenSaveFail","type":"string","value":"true"} ] } ``` #### 数据提取与清洗 在进行数据转换之前,我们需要从源系统中提取付款申请单的数据,并进行必要的清洗和预处理。这包括但不限于: 1. **数据验证**:确保所有必填字段均已填写且格式正确。例如,`FormId`必须为有效的金蝶表单ID。 2. **数据标准化**:将不同来源的数据统一为一致的格式,以便后续处理。例如,将日期格式统一为ISO标准。 3. **异常处理**:对缺失或异常数据进行处理,如填补缺失值或剔除无效记录。 #### 数据转换 在数据清洗完成后,我们需要根据目标系统的要求对数据进行转换。根据元数据配置,我们需要将以下字段映射到金蝶云星空API接口: - `FormId`: 固定值 `CN_PAYAPPLY`,表示业务对象表单ID。 - `Numbers`: 编码集合,对应于源系统中的单据编号。 - `Ids`: ID集合,用于标识具体记录。 - `RuleId`: 单据转换规则内码,可选字段,用于指定特定的转换规则。 - `IsEnableDefaultRule`: 是否启用默认单据转换,默认为`true`。 - `TargetFormId`: 固定值 `AP_PAYBILL`,表示目标业务对象表单ID。 - `IsDraftWhenSaveFail`: 是否在保存失败时保存为草稿,默认为`true`。 #### 数据加载 最后一步是将转换后的数据通过API接口写入目标系统。我们使用POST方法调用金蝶云星空的Push API,并传递经过ETL处理的数据。 示例请求体如下: ```json { "FormId": "CN_PAYAPPLY", "Numbers": "{{单据编号}}", "Ids": "{status}", ... } ``` 在实际操作中,我们可以通过轻易云平台提供的全透明可视化界面实时监控这一过程,确保每个环节都顺利执行,并及时发现和解决可能出现的问题。 #### 总结 通过以上步骤,我们成功地将金蝶发往钉钉的付款申请单经过ETL过程转化为金蝶云星空API接口可接收的付款单格式,并最终写入目标平台。这一过程不仅提高了数据处理效率,还确保了数据的一致性和准确性。 ![用友与SCM系统接口开发配置](https://pic.qeasy.cloud/T21.png~tplv-syqr462i7n-qeasy.image)