金蝶客户数据向钉钉API接口的ETL转换

  • 轻易云集成顾问-谢楷斌
### 金蝶云星空数据集成钉钉:实现业务管理与协同办公无缝对接 在本案例中,我们将详细分享如何通过轻易云数据集成平台,实现金蝶云星空与钉钉的系统对接,具体方案名称为:【资料】金蝶&钉钉—【往来单位】客户。为了保证数据的完整性和高效传输,我们着重处理了以下几个技术关键点。 首先,在确保从金蝶云星空获取的数据不漏单方面,我们采用了`executeBillQuery`接口,该接口支持精确查询,通过分页和限流策略,有效避免大规模数据请求时可能带来的性能问题。同时,为提升可靠性,每次抓取操作都设定了定时调度,确保数据能够持续、稳定地被提取到本地缓存中。 其次,大量数据快速写入到钉钉,则是通过调用其API `topapi/processinstance/create` 实现。为了应对格式差异,我们设计了一套自定义映射规则,这些规则不仅能灵活转换字段,还能根据不同业务需求进行动态调整,以满足多样化的数据写入要求。此外,对于批量处理场景,通过引入并行处理机制,加快了整体任务执行效率,使得数千条记录可以在短时间内稳定导入。 过程中我们特别注意到了异常处理机制以及错误重试功能。一旦检测到任意环节出现故障,系统会立刻生成日志,并启动自动重试程序,最大限度减少因网络波动或偶发错误导致的数据丢失风险。 以上是初步开篇,下阶段我们将进一步详细探讨每个步骤的实际配置及代码实现细节,包括各类API接口参数设置、分页策略应用,以及如何利用日常监控工具保障整个集成流程的透明可视化管理。 ![数据集成平台可视化配置API接口](https://pic.qeasy.cloud/D13.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取并加工客户数据。 #### 接口概述 `executeBillQuery`接口用于查询金蝶云星空中的业务单据。该接口支持POST请求,并且需要传递一系列参数来定义查询条件和返回字段。以下是关键的元数据配置: ```json { "api": "executeBillQuery", "effect": "QUERY", "method": "POST", "number": "FNumber", "id": "FCUSTID", "name": "FNumber", "idCheck": true, ... } ``` #### 请求参数配置 为了实现对客户数据的查询,我们需要配置请求参数。这些参数包括客户ID、编码、名称、创建组织等。以下是主要的请求字段及其描述: - `FCUSTID`: 客户ID - `FNumber`: 编码 - `FName`: 名称 - `FCreateOrgId_FNumber`: 创建组织 - `FUseOrgId_FNumber`: 使用组织 - `FDescription`: 描述 - `FCustTypeId_FNumber`: 客户类别 - `FGroup_FNumber`: 客户分组 - `FSALDEPTID_FNumber`: 销售部门 - `FSELLER_FNumber`: 销售员 - `FSETTLETYPEID_FNumber`: 结算方式 - `FRECCONDITIONID_FNumber`: 收款条件 - `FShortName`: 简称 - `FADDRESS`: 地址 - `FTEL`: 电话 - `FFAX`: 传真 - `FCompanyClassify_FNumber`: 公司类别 - `FINVOICETITLE`: 发票抬头 - `FINVOICEBANKACCOUNT`: 银行账号 - `FCURRENCYID_FNumber`: 币别 此外,还需要配置分页参数和过滤条件: ```json { "Limit": "{PAGINATION_PAGE_SIZE}", "StartRow": "{PAGINATION_START_ROW}", "TopRowCount": null, "FilterString": "FSupplierId.FNumber = 'VEN00010' and FApproveDate>='{{LAST_SYNC_TIME|datetime}}'", "FieldKeys": ["FCUSTID", "FNumber", ...], "FormId": "BD_Customer" } ``` #### 数据请求与清洗 在发送请求之前,需要确保所有必需字段已正确填充,并且分页参数和过滤条件已设置好。以下是一个示例请求体: ```json { "FormId": "BD_Customer", "FieldKeys": ["FCUSTID", "FNumber", ...], "FilterString": "FSupplierId.FNumber = 'VEN00010' and FApproveDate>='2023-01-01'", ... } ``` 发送请求后,系统会返回符合条件的数据集。在轻易云平台上,可以利用内置的数据清洗工具对返回的数据进行处理,例如去除空值、格式化日期等。 #### 数据转换与写入 在完成数据清洗后,下一步是将数据转换为目标系统所需的格式,并写入目标数据库或系统。在这个过程中,可以使用轻易云平台提供的转换工具,如字段映射、类型转换等。 例如,将金蝶云星空中的客户编码(`FNumber`)映射到目标系统中的客户编码字段: ```json { "sourceField": "FNumber", "targetField": "customerCode" } ``` #### 实时监控与日志记录 为了确保数据集成过程的透明度和可靠性,轻易云平台提供了实时监控和日志记录功能。通过这些功能,可以随时查看数据流动状态、处理进度以及可能出现的错误,从而及时进行调整和优化。 总结,通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,可以高效地获取并加工客户数据。通过合理配置请求参数、进行数据清洗与转换,以及实时监控整个过程,可以确保数据集成的高效性和准确性。 ![如何开发用友BIP接口](https://pic.qeasy.cloud/S2.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台实现金蝶客户数据向钉钉API接口的ETL转换与写入 在数据集成生命周期的第二步,我们需要将已经集成的源平台(金蝶)的客户数据进行ETL转换,转为目标平台(钉钉API接口)所能够接收的格式,并最终写入目标平台。本文将详细探讨如何使用轻易云数据集成平台完成这一过程,重点关注系统接口和数据集成的技术细节。 #### 1. 数据请求与清洗 首先,我们从金蝶系统中获取客户数据。假设我们已经通过轻易云数据集成平台完成了这一阶段,获取了所需的客户信息,包括客户名称(FName)和客户编码(FNumber)。这些数据需要经过清洗和规范化,以确保其符合目标平台的数据要求。 #### 2. 数据转换与写入 接下来,我们进入ETL流程中的关键步骤:将清洗后的数据转换为钉钉API接口所能接受的格式,并通过API写入钉钉系统。这里我们利用轻易云提供的元数据配置进行详细操作。 ##### 元数据配置解析 根据提供的元数据配置,我们需要向钉钉API接口`topapi/processinstance/create`发送一个POST请求。以下是该接口所需字段及其描述: - `process_code`: 钉钉表单ID,在审批流程编辑页面的URL中获取。 - `originator_user_id`: 审批实例发起人的用户ID。 - `dept_id`: 发起人所属部门ID,如果发起人属于根部门,传-1。 - `form_component_values`: 表单控件值,其中包含客户名称和客户编码。 ##### 配置示例 ```json { "api": "topapi/processinstance/create", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "process_code", "label": "钉钉表单id", "type": "string", "describe": "process_code在审批流程编辑页面的URL网址中获取。", "value": "PROC-5CD6B645-9C03-49EF-B78A-DC4889918B5A" }, { "field": "originator_user_id", "label": "发起人userid", "type": "string", "describe": "审批实例发起人的userid。", "value": "0911101641848981" }, { "field": "dept_id", "label": "发起人所属部门id", "type": "string", "describe": "发起人所在的部门,如果发起人属于根部门,传-1。", "value": "-1" }, { "field": "form_component_values", "label": "表单控件", "type": "object", "describe": "", "children": [ { "field": "{FName}", "label": "{FName}", "type": "{string}", ... }, { ... } ... ] } } ``` ##### 数据映射与转换 在此过程中,我们需要将金蝶系统中的字段映射到钉钉API接口所需的字段。例如: - 金蝶系统中的客户名称(FName)映射到`form_component_values`中的`客户名称`字段。 - 金蝶系统中的客户编码(FNumber)映射到`form_component_values`中的`客户编码`字段。 ##### 实际操作步骤 1. **提取金蝶系统中的原始数据**: - 获取客户名称和编码。 2. **构建请求体**: - 根据元数据配置构建JSON请求体,将提取的数据填充到相应字段中。 3. **发送POST请求**: - 使用HTTP客户端(如Postman或编程语言内置库)发送POST请求至`topapi/processinstance/create`接口。 ```json { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... ... } } } } } } } } } } } } } } } } } } } } } ``` 通过上述步骤,我们成功地将金蝶系统中的客户数据转换并写入到了钉钉系统中,实现了跨平台的数据无缝对接。这一过程不仅提高了业务效率,也保证了数据的一致性和准确性。 ![轻易云数据集成平台金蝶集成接口配置](https://pic.qeasy.cloud/T29.png~tplv-syqr462i7n-qeasy.image)