轻易云平台实现MySQL到金蝶云星空数据转换与写入

  • 轻易云集成顾问-曹润

MySQL数据集成到金蝶云星空的技术实施案例分享

在此次系统集成项目中,我们将重点探讨如何使用轻易云数据集成平台,将MySQL的数据高效、准确地写入到金蝶云星空。在实际运行案例“SYD生产用料清单新增-深圳天一-单工序-好”中,我们面对的是由MySQL数据库接口select获取的数据,需要通过金蝶云星空的API batchSave进行批量写入,这其中涉及多方面的技术要点和挑战。

首先,为了确保大量数据能快速而稳定地从MySQL读取,并安全、无遗漏地传输至金蝶云星空,必须处理好接口调用的分页与限流问题。轻易云平台提供了一组强大的工具和功能,例如集中监控与告警系统,使我们能实时追踪数据集成任务的状态和性能,从而及时发现并解决任何潜在问题。此外,还可以利用平台提供的数据质量监控及异常检测机制,以保证每一条记录都符合业务需求,并在出现异常时能够迅速响应和修复。

其次,在具体实现过程中,自定义的数据转换逻辑是不可或缺的一环。由于源端MySQL数据库中的数据结构可能与目标端金蝶云星空存在差异,通过可视化的数据流设计工具,可以灵活地对不同字段进行映射,并运用定制化转换规则来满足特定业务要求。例如,对照应的API参数进行格式调整,使得两套系统间能够顺利完成数据信息匹配。此外,考虑到企业资源配置优化的重要性,充分利用轻易云提供的信息视图,有助于全面掌握整个过程中的关键节点及其状态。

为了验证上述方案,我们设置了多个实验场景,包括模拟大规模并发请求,以及随机出现错误码重试等情况,通过实践证明该方案具有较高可靠性。同时,对于流程日志记录也进行了精确管理,一旦发现异常,即可迅速定位并排除故障,从根本上保障了集成任务持续、高效运作。这种严密管理体系使得最终结果不仅满足当前项目需求,也为后续扩展埋下夯实基础。

上述介绍仅是整个技术方案的一部分,在接下来的内容中,我会详细阐述各个步骤包括如何调用MySQL API获取所需数据、批量写入至金蝶云星空以及处理两者间复杂转换关系。敬请期待完整实施细节分享。

打通用友BIP数据接口

使用轻易云数据集成平台调用MySQL接口select获取并加工数据

在数据集成的生命周期中,第一步是从源系统获取数据并进行初步加工。本文将详细探讨如何使用轻易云数据集成平台配置元数据,通过调用MySQL接口select获取生产用料清单数据,并进行必要的加工处理。

配置元数据

首先,我们需要配置元数据来定义如何从MySQL数据库中提取所需的数据。以下是我们使用的元数据配置:

{
  "api": "select",
  "effect": "QUERY",
  "method": "POST",
  "number": "生产订单号",
  "id": "{{生产订单号}}{{物料编号}}",
  "idCheck": true,
  "request": [
    {
      "field": "main_params",
      "label": "main_params",
      "type": "object",
      "describe": "111",
      "value": "1",
      "children": [
        {
          "field": "limit",
          "label": "limit",
          "type": "string",
          "value": "100"
        },
        {
          "field": "offset",
          "label": "offset",
          "type": "string"
        }
      ]
    }
  ],
  ...
}

SQL查询语句

核心部分是SQL查询语句,它定义了我们需要从数据库中提取的数据字段和条件。以下是具体的SQL查询语句:

SELECT 
  CASE m.delivery_org
    WHEN 'T01.01' THEN CONCAT('HJ', CAST(i.id AS CHAR))
    WHEN 'T04' THEN CONCAT('HJGD', CAST(i.id AS CHAR))
  END AS 生产订单号,
  a.part_no AS 成品编号,
  DATE(a.update_time) AS 日期,
  a.req_num AS 生产数量,
  a.mold_no AS 计划跟踪号,
  CONCAT(a.part_no, CONCAT('_', p.process_code)) AS 物料编号,
  1 AS 分子,
  1 AS 分母,
  i.id AS sourceid,
  a.req_num AS 领料数量,
  m.delivery_org AS 供应组织
FROM mbs_nuclear_price_info i
LEFT JOIN mbs_nuclear_price_task a ON i.nuclear_price_task_uuid = a.nuclear_price_task_uuid
LEFT JOIN mbs_nuclear_price_process p ON i.nuclear_price_task_uuid = p.nuclear_price_task_uuid
LEFT JOIN mbs_order_plan_bom l ON a.mold_no = l.bom_no
LEFT JOIN mbs_order_bom m ON m.bom_uuid = l.bom_uuid
WHERE 
a.is_cancel = '1' 
AND a.company_code = 'TYZN'
AND i.create_time > (SELECT config_value FROM sys_config WHERE config_id = 337)
AND a.if_close = '1'  
AND i.out_type = '3' 
AND i.is_success3 != '1' 
AND i.is_success = '1'
LIMIT :limit OFFSET :offset

参数化查询

为了提高查询的灵活性和安全性,我们使用参数化查询。参数 :limit:offset 用于控制返回结果的分页。这些参数在请求体中定义:

{
    ...
    "request":[
        {
            ...
            "children":[
                {
                    ...
                    {"field":"limit","label":"limit","type":"string","value":"100"},
                    {"field":"offset","label":"offset","type":"string"}
                }
            ]
        }
    ],
    ...
}

数据请求与清洗

在执行上述SQL查询时,轻易云平台会通过POST方法向MySQL数据库发送请求,并根据配置的参数进行分页处理。返回的数据将包含多个字段,如生产订单号、成品编号、日期、生产数量等。

这些数据在返回后会经过初步清洗和转换,以确保其格式和内容符合后续处理步骤的要求。例如,将日期字段格式化为标准日期格式,将生产订单号和物料编号组合生成唯一ID等。

自动填充响应

为了简化后续处理,轻易云平台提供了自动填充响应功能。通过设置 autoFillResponse: true,平台会自动将查询结果填充到预定义的结构中,减少手动处理的工作量。

{
    ...
    "autoFillResponse": true,
    ...
}

异常处理与补偿机制

在实际操作过程中,可能会遇到各种异常情况,如网络故障、数据库连接失败等。为了应对这些情况,轻易云平台提供了异常处理与补偿机制。例如,可以通过设置定时任务(crontab)来定期重新执行失败的请求:

{
    ...
    "omissionRemedy":{
        ...
        {"crontab":"1 1 * * *"}
        ...
    }
}

以上就是使用轻易云数据集成平台调用MySQL接口select获取并加工数据的详细技术案例。通过合理配置元数据和SQL查询语句,我们可以高效地从源系统提取所需的数据,并进行初步清洗和转换,为后续的数据处理奠定基础。 金蝶与MES系统接口开发配置

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

在数据集成的生命周期中,将源平台的数据进行ETL转换并写入目标平台是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。

元数据配置解析

我们将通过一个具体的元数据配置案例来说明如何实现这一过程。以下是元数据配置的主要内容:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {
      "field": "FID",
      "label": "FID",
      "type": "string",
      "value": "_findCollection find FID from d9c54956-106b-36e1-8018-91a8855f6316 where FMoBillNo={{生产订单号}}"
    },
    {
      "field": "FEntity",
      "label": "子项明细",
      "type": "array",
      ...
    },
    {
      ...
    }
  ],
  ...
}

数据转换与写入过程

  1. API接口调用配置

    • api: 设置为batchSave,表示批量保存操作。
    • method: 设置为POST,表示使用HTTP POST方法。
    • idCheck: 设置为true,表示需要进行ID检查。
  2. 请求参数配置

    • FID: 使用 _findCollection 方法从数据库中查找对应的 FID
    • FEntity: 子项明细数组,包含多个字段,如 FMaterialID2, FMaterialType, FDosageType, 等等。
  3. 子项明细字段解析

    • FMaterialID2: 子项物料编码,通过 ConvertObjectParser 转换物料编号。
    • FDosageType: 用量类型,设置为固定值 2(变动)。
    • FStdQty, FNeedQty2, FMustQty: 标准用量、需求数量和应发数量,通过 _function ROUND( {{领料数量}} , 3 ) 函数进行四舍五入处理。
  4. 其他请求参数

    • FormId: 设置业务对象表单Id,例如:PRD_PPBOM
    • Operation: 执行操作类型,设置为batchSave
    • IsAutoSubmitAndAudit: 是否自动提交并审核,设置为布尔值 false

实现步骤

  1. 准备源数据 首先,需要从源系统获取生产订单号、物料编号、领料数量等必要信息。这些信息将作为输入参数传递给ETL过程。

  2. ETL转换 使用轻易云数据集成平台的ETL工具,根据元数据配置对源数据进行转换。例如,将物料编号通过解析器转换为目标系统所需格式,将领料数量进行四舍五入处理等。

  3. API请求构建 根据转换后的数据构建API请求体。确保所有字段都符合金蝶云星空API接口的要求,并且所有必填字段都有相应值。

  4. 发送请求 使用HTTP POST方法将构建好的请求体发送到金蝶云星空API接口。根据返回结果判断操作是否成功,并进行相应处理。

技术要点

  • 异步处理: 确保整个ETL过程和API调用都是异步执行,以提高效率和响应速度。
  • 错误处理: 在每个关键步骤添加错误处理机制,确保任何异常情况都能被及时捕获和处理。
  • 日志记录: 对每次操作进行详细日志记录,以便后续审计和问题排查。

通过以上步骤,我们可以高效地将源平台的数据转换并写入到金蝶云星空系统中,实现不同系统间的数据无缝对接。这不仅提升了业务流程的自动化程度,也确保了数据的一致性和准确性。 如何对接用友BIP接口

更多系统对接方案