利用轻易云平台进行ETL转换并写入简道云API接口

  • 轻易云集成顾问-彭亮
### 金蝶云星空数据集成到简道云客户表的技术实践 在本案例中,我们将详细解析如何通过轻易云数据集成平台,将金蝶云星空(Kingdee Cloud Galaxy)的客户数据高效、安全地对接至简道云(Jiandao Cloud)中的客户表,并确保整个过程中不漏单、快速写入和可靠抓取。具体实施方案被命名为:金蝶-客户--->简道云-客户。 #### 一、调用金蝶云星空接口executeBillQuery获取源数据 首先,在系统对接初期,最关键的一步是从金蝶云星空获取所需的原始数据。在这里,我们利用其公开的API接口 `executeBillQuery` 来实现这一目标。该接口能够灵活地查询并返回符合条件的数据记录,为后续的数据处理与传输奠定了基础。 #### 二、大量数据快速写入到简道云 一旦成功抓取到金蝶端的数据,如何高效地将这些大量信息批量导入至简道云便成为新的挑战。借助轻易平台强大的可视化操作界面及其支持的大量并发处理能力,我们可以通信调度 `/api/v2/app/{app_id}/entry/{entry_id}/data_create` 接口,实现大批量数据库创建操作,从而显著提升整体效率。 #### 三、分页与限流问题的解决策略 由于我们面对的是庞大的企业级系统互联,因此不可避免会遇到分页和限流的问题。例如,针对金蝶API返回结果进行分页处理以及如何应对请求频次限制。对此,我们设计了一套自适应分步查询机制,通过合理配置参数来控制每次请求的记录数,使得即使是在极其复杂的数据增删改查业务场景下,也能保证顺利完成任务而不会触发目标服务器过载保护措施。 #### 四、跨系统之间的数据格式差异转换 在不同系统间集成时,经常需要解决各自字段定义以及存储格式规范上的差异。本次案例中尤为如此:必须针对从金蝶采集来的JSON结构体进行适配性调整,以符合简道接受规则及显示要求。这部分工作同样依赖轻易平台强大且富有弹性的映射能力,以自动化方式实现字段匹配、类型变换等多项步骤,大幅减少人工参与干预环节,提高整合效率和准确度。 通过上述几大核心要点,本篇文章开头部分介绍了在实际项目中应当关注的重要技术细节,为后续深化探讨提供了坚实铺垫。 ![企业微信与OA系统接口开发配置](https://pic.qeasy.cloud/D24.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口,以获取客户数据并进行初步加工。 #### 元数据配置解析 首先,我们需要理解元数据配置`metadata`的各个字段及其作用。以下是关键字段的解释: - `api`: 接口名称,这里为`executeBillQuery`。 - `effect`: 操作类型,这里为`QUERY`,表示查询操作。 - `method`: HTTP请求方法,这里为`POST`。 - `number`, `id`, `name`: 这些字段用于标识和校验数据的唯一性。 - `request`: 请求参数列表,包含了需要从金蝶云星空获取的字段信息。 #### 请求参数详解 在请求参数中,每个字段都有特定的用途和格式要求。以下是一些关键字段及其描述: - `FCUSTID`: 客户ID - `FNumber`: 编码 - `FName`: 名称 - `FCreateOrgId_FNumber`: 创建组织 - `FUseOrgId_FNumber`: 使用组织 - 其他字段如描述、客户类别、客户分组等也都包含在内。 此外,还有一些分页和过滤参数: - `Limit`: 最大行数,用于分页控制。 - `StartRow`: 开始行索引,用于分页控制。 - `FilterString`: 过滤条件,用于限定查询范围,例如:`FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FUseOrgId.FNumber in ('102','109')` - `FieldKeys`: 需查询的字段key集合。 #### 调用接口获取数据 在轻易云数据集成平台上,我们可以通过配置上述元数据来调用金蝶云星空的接口。以下是一个示例请求体: ```json { "FormId": "BD_Customer", "FieldKeys": "FCUSTID,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,FTRADINGCURRID,FUseOrgId.FName", "FilterString": "FApproveDate>='2023-01-01' and FUseOrgId.FNumber in ('102','109')", "Limit": "100", "StartRow": "0" } ``` 该请求体指定了需要查询的表单ID(客户表),以及所需字段和过滤条件。 #### 数据清洗与加工 获取到原始数据后,需要对其进行清洗和初步加工。例如,可以对日期格式进行转换,对某些字段进行合并或拆分等。这一步骤可以通过轻易云平台提供的数据处理工具来实现。 以下是一个简单的数据清洗示例: ```python def clean_data(raw_data): cleaned_data = [] for record in raw_data: cleaned_record = { "CustomerID": record["FCUSTID"], "CustomerCode": record["FNumber"], "CustomerName": record["FName"], # 对日期格式进行转换 "ApprovedDate": convert_date_format(record["FApproveDate"]), # 合并地址信息 "FullAddress": f"{record['FADDRESS']}, {record['FCity']}, {record['FState']}" } cleaned_data.append(cleaned_record) return cleaned_data ``` #### 写入目标系统 经过清洗和加工后的数据,可以通过轻易云平台写入到目标系统(如简道云)。这一步骤通常涉及到目标系统API的调用,并确保数据格式符合目标系统要求。 ```json { "api": "/api/v1/customers", "method": "POST", "data": { "CustomerID": "{CustomerID}", "CustomerCode": "{CustomerCode}", "CustomerName": "{CustomerName}", # 其他字段... } } ``` 通过上述步骤,我们完成了从金蝶云星空获取客户数据,并将其清洗、加工后写入到简道云的全过程。这不仅提高了数据处理效率,也确保了数据的一致性和准确性。 ![打通钉钉数据接口](https://pic.qeasy.cloud/S10.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入简道云API接口 在数据集成的生命周期中,ETL(提取、转换、加载)是关键步骤之一。本文将重点探讨如何使用轻易云数据集成平台,将已经集成的源平台(金蝶)的客户数据进行ETL转换,转为简道云API接口所能够接收的格式,并最终写入目标平台。 #### 数据请求与清洗 在开始ETL转换之前,首先需要从源平台(金蝶)提取客户数据。这部分工作通常涉及调用金蝶的API接口获取原始数据,并对这些数据进行初步清洗和验证,以确保其完整性和准确性。 #### 数据转换与写入 在轻易云数据集成平台上,我们可以通过配置元数据来实现对金蝶客户数据的转换和写入。以下是具体的元数据配置: ```json { "api": "/api/v2/app/{app_id}/entry/{entry_id}/data_create", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "_widget_1704877011053", "label": "使用组织编码", "type": "string", "describe": "111", "value": "{FUseOrgId_FNumber}", "parser": { "name": "ConvertObjectParser", "params": "value" } }, { "field": "_widget_1706498287239", "label": "对应门店", "type": "string", "describe": "111", "parser": { "name": "ConvertObjectParser", "params": "value" } }, { ... } ], ... } ``` #### 配置解析与应用 1. **API接口配置**: - `api`: 指定了简道云的数据创建接口路径。 - `method`: 使用POST方法提交数据。 - `idCheck`: 启用ID检查,确保唯一性。 2. **字段映射与解析**: 每个字段都有详细的映射配置,包括字段名、标签、类型、描述和解析器。例如: ```json { "field": "_widget_1704877011053", "label": "使用组织编码", ... "value": "{FUseOrgId_FNumber}", ... } ``` 这里将金蝶中的`FUseOrgId_FNumber`字段映射到简道云中的`_widget_1704877011053`字段,并通过`ConvertObjectParser`解析器进行值的转换。 3. **附加请求参数**: 除了主要的数据字段,还可以配置其他请求参数,如启动工作流等: ```json { ... {"field":"is_start_workflow","label":"is_start_workflow","type":"string","describe":"111","value":"true"}, {"field":"transaction_id","label":"transaction_id","type":"string","describe":"111","value":"1"}, ... } ``` #### 实际操作步骤 1. **提取数据**:通过调用金蝶API获取客户数据。 2. **配置元数据**:根据上述元数据配置,将提取的数据进行映射和解析。 3. **执行转换**:利用轻易云的数据处理功能,对提取的数据进行必要的清洗和转换。 4. **提交请求**:通过POST方法,将处理后的数据提交到简道云API接口,实现数据写入。 #### 技术要点 - **异构系统支持**:轻易云平台能够无缝对接不同系统,实现异构系统间的数据传输和转换。 - **全生命周期管理**:从数据提取到最终写入,全过程透明可视化,确保每个环节都可追踪。 - **实时监控与调试**:在实际操作中,可以实时监控每个步骤的数据流动和处理状态,及时发现并解决问题。 通过以上步骤,我们成功实现了从金蝶到简道云的数据集成。利用轻易云平台强大的ETL功能,可以高效地完成复杂的数据处理任务,提高业务透明度和效率。 ![金蝶与外部系统打通接口](https://pic.qeasy.cloud/T17.png~tplv-syqr462i7n-qeasy.image)