ETL转换与写入金蝶云星空的技术解析

  • 轻易云集成顾问-胡秀丛

MySQL数据集成到金蝶云星空的实践案例

在本次技术分享中,我们将介绍如何使用轻易云数据集成平台,将MySQL数据库中的生产汇报单新增数据高效、可靠地集成到金蝶云星空。具体场景为:深圳天一公司的"SHw生产汇报单新增-带料委外全工序"项目。

首先要解决的问题是确保MySQL数据不漏单,并能够高吞吐量写入至金蝶云星空系统。在这个流程中,实时监控及异常处理显得尤为重要。我们通过MySQL接口select抓取所需的数据,而后利用金蝶云星空提供的batchSave API接口进行批量保存。

为了适应业务需求和数据结构,我们自定义了数据转换逻辑,确保从MySQL拉取的数据能无缝对接进入金蝶云。此外,为避免分页和限流问题影响性能,对MySQL接口进行了优化处理。同时,通过设计精细化的异常检测与错误重试机制,提高整个集成过程的可靠性。

轻易云平台提供了强大的可视化工具,使得整个配置过程更加直观,从而快速定位与解决潜在问题。最后,通过集中监控和告警系统,我们实现了实时跟踪任务状态,有效提高运维效率。这些措施共同保障了此次项目的不间断、高质量的数据流转与整合。 电商OMS与ERP系统接口开发配置

调用MySQL接口获取并加工数据的技术实现

在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用MySQL接口select获取并加工数据。

元数据配置解析

元数据配置是实现数据请求与清洗的关键。以下是我们需要重点关注的元数据配置字段:

  • api: 表示我们使用的API类型,这里为select
  • effect: 该字段表示操作类型,这里为QUERY,即查询操作。
  • method: 该字段表示方法类型,这里为SQL
  • numberid: 用于标识入库单号。
  • request: 包含主参数对象,用于动态传递查询参数。
  • otherRequest: 包含主查询语句,用于定义具体的SQL查询逻辑。

主参数对象

主参数对象包含两个重要字段:

  1. limit: 返回的记录数,默认值为100。
  2. offset: 数据偏移量,默认值为0。

这些参数允许我们灵活地控制查询结果的数量和起始位置。

"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。"
            }
        ]
    }
]

主查询语句

主查询语句是整个数据请求与清洗过程中的核心部分。以下是具体的SQL查询逻辑:

select 
 case m.delivery_org
  when 'T01.01' then  CONCAT('HJ', CAST(hj1.id AS CHAR))
  when 'T04'    then CONCAT('HJGD', CAST(hj1.id AS CHAR))
  else
    CONCAT('HJ', CAST(hj1.id AS CHAR))
 end as 生产订单号,
a.part_no  as 成品编号,
c.mode_no  as 计划跟踪号,
CONCAT('RKB',CAST(a.id AS CHAR)) as 入库单号,
date(a.update_time) as 日期,
a.confirm_numb  as 入库数量,
a.id as sourceid,
0.000001 as 工时,
m.delivery_org as 供应组织
from wms_instock_confirm_task_detail a
left join wms_instock_purchase_task_detail c on  c.out_type='1' and c.matterial_type='4'
left join wms_instock_confirm_main_task_detail b on b.connect_uuid=c.uuid
left join mbs_nuclear_price_task hj on hj.mold_no=c.mode_no and hj.part_no=a.part_no
left join mbs_nuclear_price_info hj1 on hj1.nuclear_price_task_uuid=hj.nuclear_price_task_uuid
left join mbs_order_plan_bom l on c.mode_no=l.bom_no
left join mbs_order_bom m on m.bom_uuid=l.bom_uuid
where a.connect_uuid=b.uuid
 and a.company_code='TYZN'
 and a.update_time>'2023-08-01'
 and hj1.create_time>(select config_value from sys_config where config_id=337)
 and a.is_success2 !='1' and a.is_success='1'
 limit :limit offset :offset

该SQL语句从多个表中联结并提取所需的数据字段,通过条件过滤和动态参数(如limitoffset)控制返回的数据集。

实现步骤

  1. 配置元数据:在轻易云平台上,根据上述元数据配置进行设置。
  2. 编写SQL查询:根据业务需求编写具体的SQL查询语句,并确保其与元数据中的动态参数相匹配。
  3. 执行查询:通过平台提供的API接口调用功能,执行配置好的SQL查询,获取并加工数据。

技术要点

  • 动态参数化:利用元数据中的动态参数(如limitoffset),实现灵活的数据分页和批量处理。
  • 多表联结:通过多表联结操作,实现复杂的数据提取和整合。
  • 条件过滤:利用条件过滤(如日期范围、状态标识等),确保仅提取符合业务需求的数据。

以上内容详细介绍了如何通过轻易云平台调用MySQL接口select获取并加工数据。通过合理配置元数据和编写高效的SQL查询,可以实现高效、灵活的数据集成。 金蝶云星空API接口配置

轻易云数据集成平台与金蝶云星空API接口的ETL转换与写入

在数据集成生命周期的第二阶段,重点在于将已经集成的源平台数据进行ETL(提取、转换、加载)处理,转为目标平台——金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将深入探讨如何使用轻易云数据集成平台配置元数据,以实现这一过程。

API接口配置

在实现ETL转换过程中,首先需要了解金蝶云星空API接口的配置。以下是一个典型的元数据配置示例:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "number": "FBillNo",
  "id": "FID",
  "name": "FBillNo",
  "idCheck": true,
  "operation": {
    "method": "merge",
    "field": "入库单号",
    "bodyName": "items",
    "bodySum": ["工时", "入库数量"],
    "header": ["生产订单号", "日期", "入库单号"],
    "body": ["成品编号", "入库数量", "工时"]
  },
  ...
}

该配置定义了API接口调用的基本信息,包括请求方法(POST)、操作类型(merge)以及关键字段(如FBillNoFID)。

数据请求与清洗

在ETL过程中,首先需要从源系统提取数据,并进行必要的清洗和预处理。以下是一些关键字段及其配置:

  • FBillNo: 单据编号,通过模板变量{{入库单号}}动态赋值。
  • FDate: 单据日期,通过模板变量{{日期}}动态赋值。
  • FPrdOrgId: 生产组织,通过条件语句 _function case '{{供应组织}}' when 'T01.01' then 'T01.06' when 'T04' then 'T04' else '' end 动态解析。

这些字段通过模板变量和条件语句,实现了从源系统到目标系统的数据映射和转换。

数据转换与写入

接下来,我们需要将清洗后的数据进行转换,并按照金蝶云星空API接口的要求进行格式化。以下是一些关键字段及其对应关系:

  • FMaterialId: 物料编码,通过模板变量 {{items.成品编号}} 动态赋值。
  • FFinishQty: 完成数量,通过模板变量 {{items.入库数量}} 动态赋值。
  • FHrWorkTime: 人员实作工时,通过模板变量 {{items.工时}} 动态赋值。

这些字段通过元数据配置中的children节点定义,实现了对明细行数据的详细映射和转换。

执行操作

最后一步是执行操作,将转换后的数据写入目标系统。以下是一些关键配置:

  • FormId: 金蝶表单ID,必须填写为 "PRD_MORPT"
  • IsAutoSubmitAndAudit: 是否自动提交并审核,设置为 true
  • Operation: 执行操作类型,设置为 "Save"

这些配置确保了在数据写入过程中能够自动提交并审核,提高了操作效率。

实际案例应用

假设我们有一条生产汇报单的数据需要写入金蝶云星空,源数据如下:

{
  "生产订单号": "MO20231001",
  "日期": "2023-10-01",
  "入库单号": "RK20231001",
  ...
}

通过上述元数据配置,我们可以将该条数据成功转换并写入金蝶云星空系统中。具体步骤包括:

  1. 提取源数据,并根据模板变量进行字段映射。
  2. 根据条件语句和解析规则,对特定字段进行动态赋值。
  3. 调用金蝶云星空API接口,将格式化后的数据发送至目标系统。

通过以上步骤,我们实现了从源系统到目标系统的数据无缝对接,大大提高了业务处理效率和准确性。

以上即为使用轻易云数据集成平台实现ETL转换并写入金蝶云星空API接口的技术案例。希望通过本文的详细讲解,能够帮助读者更好地理解和应用这一过程。 金蝶与MES系统接口开发配置

更多系统对接方案