利用轻易云进行ETL转换:从金蝶到目标平台

  • 轻易云集成顾问-吕修远
### 金蝶云星空数据集成到轻易云集成平台案例分享:GD查询金蝶生产订单信息-好 在企业信息化管理的过程中,数据的高效传输和精准对接至关重要。本次技术分享将重点介绍如何通过轻易云数据集成平台,实现金蝶云星空系统生产订单信息的自动化抓取和集成。具体方案为“GD查询金蝶生产订单信息-好”,此方案兼具高吞吐量的数据写入能力、实时监控以及自定义数据转换逻辑等特点。 #### 配置与调用核心API接口 首先,我们需要正确配置并调用两个关键API接口: 1. **获取金蝶云星空系统中的生产订单信息**:使用`executeBillQuery`接口,可以定时可靠地抓取所需业务数据。 2. **将处理后的数据写入到轻易云集成平台**:利用`写入空操作` API接口,实现批量、高效的数据存储和同步。 这两步是整个对接流程中最基础但也最重要的一部分,通过它们可以保证源系统与目标系统之间的数据流动顺畅且不出现遗漏。 #### 数据抽取与加载过程详解 在实际操作中,我们需要处理金蝶云星空接口可能存在的分页及限流问题。通过设置合理的请求频率和分页参数,确保每次请求都能成功返回完整且有效的数据。同时,为适应不同业务需求,还需进行必要的数据格式转换。这些自定义转换逻辑允许我们根据具体情况调整输入输出,以便更灵活地满足需求变化。 此外,为了提升任务透明度和问题排查效率,轻易云提供了全面、实时的监控机制。一旦发生异常,可即时告警,并支持错误重试机制,这样即使在意外情况下,同样能够保障整体流程稳健运行,不会因为个别环节出错而影响全局进程。 ![如何对接企业微信API接口](https://pic.qeasy.cloud/D22.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取生产订单信息,并对数据进行初步加工。 #### 接口配置与调用 首先,我们需要了解`executeBillQuery`接口的基本配置和调用方法。该接口使用POST方法进行请求,主要用于查询金蝶云星空中的业务单据信息。以下是元数据配置中的关键字段: - **api**: `executeBillQuery` - **method**: `POST` - **number**: `FBillNo` - **id**: `FTreeEntity_FEntryId` - **idCheck**: `true` 请求参数包括实体主键、单据编号、明细行ID等,这些参数在实际调用时需要根据具体需求进行设置。 #### 请求参数详解 元数据配置中定义了多个请求参数,每个参数都有其特定的用途和描述。以下是一些关键字段的详细解释: - **FID**: 实体主键,用于唯一标识一条记录。 - **FBillNo**: 单据编号,是业务单据的唯一标识。 - **FTreeEntity_FEntryId**: 明细行ID,用于标识具体的明细行。 - **FCREATORID.FName**: 创建人姓名。 - **FAPPROVERID.FName**: 审核人姓名。 - **FCREATEDATE**: 创建日期。 - **FMATERIALID.FName**: 物料客户编码。 - **FAPPROVEDATE**: 审核日期。 - **FMATERIALID.FDescription**: 物料规格型号。 - **FWorkShopID.FNumber**: 生产车间编号。 - **FQty**: 数量。 - **FPlanStartDate**: 计划开工时间。 - **FPlanFinishDate**: 计划完工时间。 - **FSaleOrderNo**: 需求订单号。 - **FStartDate**: 开工时间。 - **FFinishDate**: 完工日期。 - **FStatus**: 业务状态(1:计划,2:计划确认,3:下达,4:开工,5:完工,6:结案,7:结算)。 - **FMemoItem**: 备注。 这些字段在实际应用中可以根据需要进行选择和过滤,以确保获取到所需的数据。 #### 数据请求与清洗 在调用接口获取数据后,需要对返回的数据进行清洗和初步加工。以下是一个示例请求体: ```json { "FormId": "PRD_MO", "FieldKeys": [ "FID", "FBillNo", "FTreeEntity_FEntryId", "FTreeEntity_Fseq", "FCREATORID.FName", "FAPPROVERID.FName", "FCREATEDATE", "FMATERIALID.FName", "FAPPROVEDATE", "FMATERIALID.FDescription", "FWorkShopID.FNumber", "FQty", "FPlanStartDate", "FPlanFinishDate", "FSaleOrderNo", "FStartDate", "FFinishDate", "FStatus", "FMemoItem" ], "FilterString": "FPrdOrgId.FNumber='T04' and FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'", "Limit": "{PAGINATION_PAGE_SIZE}", "StartRow": "{PAGINATION_START_ROW}" } ``` 在这个请求体中,我们指定了需要查询的字段集合(`FieldKeys`),以及过滤条件(`FilterString`)。过滤条件可以根据实际需求进行调整,例如按日期范围或特定组织编号进行筛选。 #### 数据转换与写入 在完成数据清洗后,需要将数据转换为目标系统所需的格式,并写入目标系统。这一步通常涉及到字段映射、数据类型转换等操作。例如,将金蝶云星空中的物料编码(`FMATERIALID_FNumber`)映射到目标系统中的相应字段。 以下是一个简单的数据转换示例: ```json { "sourceField": "FMATERIALID_FNumber", "targetField": "MaterialCode", "transformation": { "type": "string" } } ``` 通过这种方式,可以确保从源系统获取的数据能够无缝地集成到目标系统中,实现不同系统间的数据共享和业务协同。 #### 自动化处理与监控 为了提高数据集成过程的效率,可以利用轻易云平台提供的自动化处理功能。例如,通过定时任务(crontab)实现定期的数据同步: ```json { "crontab": "*\/5 * * * *", "takeOverRequest": [ { "field": "FilterString", "value": "FApproveDate>='{{MINUTE_AGO_10|datetime}}' and FPrdOrgId.FNumber='T04'", "type": "string" } ] } ``` 这种配置可以确保每隔五分钟自动执行一次数据同步任务,从而保持数据的一致性和实时性。 综上所述,通过合理配置和调用金蝶云星空的`executeBillQuery`接口,可以高效地获取并加工生产订单信息,为后续的数据转换与写入奠定基础。在整个过程中,充分利用轻易云平台提供的可视化操作界面和自动化处理功能,可以极大提升业务透明度和效率。 ![数据集成平台可视化配置API接口](https://pic.qeasy.cloud/S19.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入目标平台的技术案例 在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台所能够接收的格式,最终写入目标平台。本文将详细探讨这一过程,重点关注如何利用轻易云数据集成平台API接口实现这一目标。 #### 数据请求与清洗 在进行ETL转换之前,我们首先需要从源系统中获取原始数据,并对其进行清洗和预处理。这一步骤通常包括过滤无效数据、修正数据格式、处理缺失值等操作。假设我们已经完成了这一步骤,并且获得了清洗后的生产订单信息。 #### 数据转换 接下来,我们需要将清洗后的数据转换为目标平台所能接受的格式。根据提供的元数据配置,目标平台API接口的相关信息如下: ```json { "api": "写入空操作", "effect": "EXECUTE", "method": "POST", "number": "number", "id": "id", "name": "编码", "idCheck": true } ``` 从上述配置可以看出,API接口要求的数据字段包括`number`、`id`和`name`(编码)。此外,还需要进行ID检查以确保唯一性。 #### 数据映射 为了确保数据能够正确地传递到目标平台,我们需要进行字段映射。例如,从金蝶生产订单信息中提取相应字段并映射到目标API所需的字段: - `number`: 对应生产订单编号 - `id`: 对应生产订单ID - `name`: 对应生产订单名称或编码 假设我们有以下清洗后的生产订单数据: ```json [ { "orderNumber": "PO12345", "orderId": "1001", "orderName": "生产订单A" }, { "orderNumber": "PO12346", "orderId": "1002", "orderName": "生产订单B" } ] ``` 我们需要将其转换为符合API接口要求的格式: ```json [ { "number": "PO12345", "id": "1001", "name": "生产订单A" }, { "number": "PO12346", "id": "1002", "name": "生产订单B" } ] ``` #### 写入目标平台 完成数据转换后,我们使用轻易云集成平台提供的API接口将数据写入目标平台。根据元数据配置,使用POST方法调用“写入空操作”API。 以下是一个示例代码片段,用于通过HTTP POST请求将转换后的数据发送到目标平台: ```python import requests import json # API URL url = 'https://example.com/api/写入空操作' # 转换后的数据 data = [ { 'number': 'PO12345', 'id': '1001', 'name': '生产订单A' }, { 'number': 'PO12346', 'id': '1002', 'name': '生产订单B' } ] # 将数据转换为JSON格式 payload = json.dumps(data) # 设置请求头 headers = { 'Content-Type': 'application/json' } # 发起POST请求 response = requests.post(url, headers=headers, data=payload) # 检查响应状态码 if response.status_code == 200: print('Data successfully written to the target platform.') else: print(f'Failed to write data. Status code: {response.status_code}') ``` 通过上述步骤,我们实现了从源系统获取原始数据、进行ETL转换,并最终通过API接口将数据成功写入目标平台。在实际应用中,还可以根据业务需求进一步优化和扩展这些步骤,以满足更复杂的数据集成需求。 ![如何开发金蝶云星空API接口](https://pic.qeasy.cloud/T1.png~tplv-syqr462i7n-qeasy.image)