通过轻易云平台实现ETL转换和金蝶云星空数据写入

  • 轻易云集成顾问-卢剑航
### MySQL数据集成到金蝶云星空:SR新建调拨单外部供应商-单工序-深圳天一案例分享 在企业信息化系统对接中,实现不同平台之间的无缝数据流转是一个重要且复杂的任务。本文将阐述如何通过轻易云数据集成平台,将MySQL中的关键业务数据集成到金蝶云星空,以满足特定业务需求。我们重点分享名为“SR新建调拨单外部供应商-单工序-深圳天一”的具体实施方案。 #### 数据获取与写入流程 首先,我们利用MySQL提供的API接口 `select` 从数据库中获取所需的数据。这一步骤确保了从源头上能够准确、高效地提取到最新和最全面的信息。在此过程中,处理分页和限流问题尤为关键,通过优化查询语句及适当配置网络请求,可有效防止性能瓶颈以及资源占用过高的问题。 ```sql SELECT * FROM 调拨单 WHERE 供应商 = '外部' AND 工序 = '单工序' AND 地区 = '深圳天一'; ``` 上述查询语句将筛选出符合条件的数据条目,为后续步骤做准备。 紧接着,利用轻易云可视化的数据流设计工具,我们配置了一系列自定义数据转换逻辑来适应金蝶云星空的特定数据结构要求。例如,对字段命名进行标准化处理,以及进行必要的数据类型转换,以使两个系统间的数据兼容性达到最佳状态。 #### 数据写入与监控 随后,通过金蝶云星空提供的批量保存API接口 `batchSave`,实现大量数据快速、可靠地写入目的系统。这一步极大提高了处理效率,并确保所有必要的信息均被正确记录下来。同时,集中监控和告警功能也开始起作用,实时追踪每个步骤的执行情况并检测任何异常状况,及时发出警报并采取相应措施保证整个流程顺畅运行。 ```json { "method": "POST", "url": "/api/batchSave", ... } ``` #### 异常处理与重试机制 在实际操作过程中,无论是因网络波动还是接口故障引发的问题,都难以完全避免。因此,该方案特别注重异常处理与错误重试机制。当某些记录未能成功传输或出现错误时,将自动触发重新尝试,无需人工干预,从而提升整体稳定性和可靠性。 综上所述,此次案例详细展示了如何借助各类先进技术手段,高效完成MySQL向金蝶云星空的数据集成任务。从始至终,无论是初始的数据抓取、格式转换,再到 ![钉钉与WMS系统接口开发配置](https://pic.qeasy.cloud/D31.png~tplv-syqr462i7n-qeasy.image) ### 调用MySQL接口select获取并加工数据 在轻易云数据集成平台的生命周期中,调用源系统MySQL接口`select`是至关重要的一步。本文将深入探讨如何通过配置元数据来实现这一过程,并确保数据的高效获取和加工。 #### 元数据配置解析 首先,我们需要理解元数据配置中的各个字段及其作用: ```json { "api": "select", "effect": "QUERY", "method": "SQL", "number": "单据编号", "id": "单据编号", "name": "name", "request": [ { "field": "main_params", "label": "主参数", "type": "object", "describe": "对应主查询语句内的动态参数对象", "children": [ { "field": "limit", "label": "返回的记录数", "type": "int", "describe": "你可以使用 LIMIT 属性来设定返回的记录数。", "value": 100 }, { "field": "offset", "label": "数据偏移量", "type": "int", "describe": "你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。" } ] } ], ... } ``` - `api`: 指定API类型为`select`。 - `effect`: 表示操作类型,这里是查询(QUERY)。 - `method`: 数据请求方法,这里是SQL。 - `number`和`id`: 用于标识单据编号。 - `request`: 包含主参数对象,定义了查询语句中的动态参数,如`limit`和`offset`。 #### 主查询语句 主查询语句是整个数据获取过程的核心部分: ```sql select CONCAT(d.confrim_no,'_',CAST(c.id AS CHAR)) as 单据编号, c.create_time as 日期, b.mode_no as 计划跟踪号, b.part_no as 物料编号, c.confirm_numb as 数量, b.business_no as 采购单号, b.ser_code as 条码, b.supplier_uuid as 供应商, c.id as sourceid, m.delivery_org as 供应组织 from wms_instock_confirm_task_detail c left join wms_instock_confirm_main_task_detail a on c.connect_uuid=a.uuid left join wms_instock_purchase_task_detail b on b.uuid=a.connect_uuid left join wms_instock_confirm_task d on d.uuid=c.confirm_detail_task_uuid left join basic_supplier_info e on e.supplier_uuid=b.supplier_uuid left join mbs_order_plan_bom l on b.mode_no=l.bom_no left join mbs_order_bom m on m.bom_uuid=l.bom_uuid where a.company_code='TYZN' and b.task_type in ('3') and ((a.matterial_type='3' and b.next_process_code is null) or a.matterial_type='4') and c.create_time>(select config_value from sys_config where config_id=340) and e.is_inner=1 and m.delivery_org='T01.01' and c.is_success5<>'1' and c.is_success3='1' limit :limit offset :offset ``` 该查询语句从多个表中联合提取数据,并通过条件过滤和连接操作,确保获取到符合业务需求的数据。 #### 动态参数配置 在实际应用中,动态参数如`limit`和`offset`非常重要,它们允许我们灵活控制查询结果: ```json { ... { field: 'limit', label: '返回的记录数', type: 'int', describe: '你可以使用 LIMIT 属性来设定返回的记录数。', value: 100 }, { field: 'offset', label: '数据偏移量', type: 'int', describe: '你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。' } } ``` 这些参数在执行SQL查询时会被替换为实际值,从而实现分页或限制返回结果数量等功能。 #### 实际应用案例 假设我们需要从MySQL数据库中提取特定条件下的调拨单信息,可以按照以下步骤进行配置和调用: 1. **配置元数据**:按照上述格式定义好元数据,包括API类型、请求方法、主查询语句及其动态参数。 2. **执行查询**:通过轻易云平台调用配置好的API,传入必要的动态参数(如limit和offset)。 3. **处理结果**:平台会自动处理并返回查询结果,供后续的数据转换与写入阶段使用。 例如,我们可以设置limit为50,offset为0,执行如下SQL查询: ```sql select CONCAT(d.confrim_no,'_',CAST(c.id AS CHAR)) as 单据编号, ... where ... limit 50 offset 0; ``` 这样,我们就能获取到符合条件的前50条记录,并根据业务需求进一步处理这些数据。 通过以上步骤,我们能够高效地从MySQL数据库中提取并加工所需的数据,为后续的数据集成工作打下坚实基础。 ![钉钉与WMS系统接口开发配置](https://pic.qeasy.cloud/S5.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台生命周期中的ETL转换:实现金蝶云星空API接口的数据写入 在数据集成的生命周期中,ETL(提取、转换、加载)过程是将源平台数据转换为目标平台可接收格式的关键步骤。本文将深入探讨如何通过轻易云数据集成平台,将集成的源平台数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。 #### 数据请求与清洗 在数据请求与清洗阶段,我们已经从源系统中获取了原始数据,并进行了必要的清洗和预处理。接下来,我们需要将这些数据进行ETL转换,以符合金蝶云星空API接口的要求。 #### 数据转换与写入 在轻易云数据集成平台上,配置元数据是实现数据转换与写入的核心步骤。以下是一个具体的元数据配置示例: ```json { "api": "batchSave", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ { "field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号", "value": "{{单据编号}}" }, { "field": "FBillTypeID", "label": "单据类型", "type": "string", "describe": "单据类型", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "ZJDB01_SYS" }, { ... } ], ... } ``` 该配置文件定义了向金蝶云星空API接口发送的数据结构,包括字段名称、类型、描述以及值的映射关系。以下是几个关键字段及其配置解析: 1. **FBillNo(单据编号)** - 类型:`string` - 描述:`单据编号` - 值:`{{单据编号}}` - 说明:从源系统获取并映射到目标系统中的单据编号。 2. **FBillTypeID(单据类型)** - 类型:`string` - 描述:`单据类型` - 值:`ZJDB01_SYS` - 解析器:`ConvertObjectParser`,参数为`FNumber` - 说明:使用解析器将特定值转换为目标系统所需格式。 3. **FSaleOrgId(销售组织)** - 类型:`string` - 描述:`组织` - 解析器:`ConvertObjectParser`,参数为`FNumber` - 说明:将销售组织从源系统映射到目标系统。 4. **FDate(日期)** - 类型:`string` - 描述:`日期` - 值:`{{日期}}` - 说明:日期字段直接从源系统映射过来。 5. **FBillEntry(明细信息)** - 类型:`array` - 描述:包含多个子字段,如物料编码、调拨数量等。 ```json { ... { "field": "FMaterialId", ... } } ``` #### 调用API接口 在完成元数据配置后,通过调用金蝶云星空API接口,实现数据写入。以下是一个简化的HTTP POST请求示例: ```http POST /k3cloud/api/batchSave HTTP/1.1 Host: api.kingdee.com Content-Type: application/json { ... } ``` 通过这种方式,可以将处理后的数据批量保存到金蝶云星空中。注意,每个字段都需要根据元数据配置进行正确映射和解析,以确保目标系统能够正确接收和处理这些数据。 #### 提交并审核 在实际应用中,通常需要自动提交并审核这些记录。可以通过设置元数据中的 `IsAutoSubmitAndAudit` 字段来实现: ```json { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... { ... ![如何对接金蝶云星空API接口](https://pic.qeasy.cloud/T26.png~tplv-syqr462i7n-qeasy.image)