使用轻易云平台进行ETL转换并写入金蝶云星空API

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

GYY生产用料清单-原材料-好的MySQL到金蝶云星空数据集成技术案例

在这个技术案例中,我们将分享如何高效地将MySQL中的数据集成到金蝶云星空,从而实现GYY生产用料清单的自动化管理。具体来说,我们重点介绍通过API接口select抓取MySQL数据库中的原材料数据,并使用batchSave接口对接入金蝶云星空。

数据获取与处理

首要任务是从MySQL数据库中获取需要的数据。在本次方案中,主要利用了MySQL的select API接口来查询和提取所需的数据,例如GYY生产用料清单的信息。轻易云提供的可视化工具使这一过程变得简便,通过拖拽操作即可完成复杂查询,并能够实时监控每一步的数据流动与状态。

数据转换与格式匹配

由于MySQL和金蝶云星空之间的数据格式可能存在差异,在实际操作中我们必须利用自定义数据转换逻辑,确保两者之间无缝衔接。该平台支持灵活的字段映射和类型转换,这样即使面对复杂的业务需求和不同结构的数据,也能准确、高效地进行处理。此外,将这些转换规则可视化后,可以更简单直观地进行管理及调试。

数据写入与性能优化

为了保障大量数据可以快速写入至金蝶云星空,需要充分利用批量写入API——batchSave。这一功能不仅提升了吞吐能力,还极大简化了多次调用API的繁琐过程。同时,为避免因异常导致数据漏登或错误,系统内置了稳健的异常处理机制,包括错误重试机制。当发生网络故障或服务器响应延迟时,系统会自动重新尝试发送请求,以最大限度保证信息完整性。

实时监控与告警

整个过程中,通过集中式监控和告警系统,实时跟踪所有数据集成任务状态及性能表现。一旦出现任何问题,如延迟、失败等情况,将立即发出告警通知相关人员,从而确保问题能够及时被发现并解决。这些措施不仅提高了整体运行效率,还大幅提升了业务透明度。

上述内容只是初步展示了一部分关键步骤,后续将详细讲解如何通过具体代码配置实现每个环节,以及应对常见挑战的方法。

钉钉与CRM系统接口开发配置

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

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

元数据配置解析

在进行具体操作之前,我们需要理解元数据配置metadata的各个部分:

{
  "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"
        }
      ]
    }
  ],
  ...
}
  • api: 指定要调用的API类型,这里是select
  • effect: 定义API的作用,这里是查询(QUERY)。
  • method: HTTP请求方法,这里使用POST。
  • number: 标识字段,这里是生产订单号。
  • id: 唯一标识符,由生产订单号和原材料编号组合而成。
  • idCheck: 是否检查ID唯一性,设置为true。
  • request: 请求参数部分,包含主参数和子参数。

SQL查询语句解析

元数据配置中的SQL查询语句如下:

select 
 (select dispatch from mes_dispatch_record_process c 
 where c.to_be_dispatch_uuid=a.to_be_dispatch_uuid LIMIT 1) as 生产订单号,
 a.prod_part_no as 成品编号,
 date(now()) as 日期,
 a.dispatched_num as 生产数量,
 b.bom_no as 计划跟踪号,
 e.part_no as 原材料编号,
 d.quantity/d.layout_ratio as 分子,
 1 as 分母,
 d.id as sourceid,
 d.quantity/d.layout_ratio*a.dispatched_num as 领料数量
from mes_to_be_dispatched a
left join oms_order_bom b on a.bom_uuid=b.bom_uuid
left join eng_bom_item d on b.bom_uuid=d.oms_order_bom_uuid
left join basic_material_info e on d.material_id=e.id 
where a.company_code='GDTY' and a.status='3' and b.material_source='2' and d.is_success !='1' and b.is_close='1' and b.kingdee_fwl='0'
limit :limit offset :offset

该查询语句从多个表中提取信息,并通过JOIN操作将这些信息整合在一起。主要字段包括:

  • 生产订单号
  • 成品编号
  • 日期
  • 生产数量
  • 计划跟踪号
  • 原材料编号
  • 分子
  • 分母
  • sourceid
  • 领料数量

配置与调用

在轻易云平台上进行配置时,需要按照以下步骤操作:

  1. 定义API接口:根据元数据配置,定义一个新的API接口,类型为select,方法为POST。
  2. 设置请求参数:将请求参数main_params及其子参数limitoffset添加到接口配置中。默认值可以设置为100,但也可以根据实际需求调整。
  3. 编写SQL查询:将上述SQL查询语句复制到接口的SQL配置部分,并确保参数占位符(如:limit, :offset)正确无误。
  4. 测试与验证:通过平台提供的测试功能,输入不同的参数值进行测试,确保返回的数据符合预期。

数据处理与清洗

在获取到原始数据后,可以利用轻易云平台提供的数据清洗功能,对数据进行进一步处理。例如,可以对日期格式进行标准化处理,对数值字段进行单位转换等。

通过以上步骤,我们成功实现了从MySQL数据库中调用接口获取并加工数据。这不仅提高了数据处理的效率,也确保了数据的一致性和准确性。 金蝶与SCM系统接口开发配置

使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口

在数据集成的生命周期中,ETL(提取、转换、加载)是至关重要的一环。本文将详细探讨如何使用轻易云数据集成平台,将源平台的数据进行ETL转换,并最终写入到金蝶云星空API接口中。

元数据配置解析

我们需要根据元数据配置,将原始数据转换为金蝶云星空API接口所能接受的格式。以下是元数据配置的详细解析:

  1. API基本信息

    • api: batchSave
    • method: POST
    • idCheck: true
  2. 操作定义

    • operation:
      {
      "rowsKey": "array",
      "rows": 1,
      "method": "batchArraySave"
      }
  3. 请求字段

    • request字段定义了需要提交的数据结构,包括主表和子表字段。

数据请求与清洗

首先,我们需要从源系统中提取相关数据。假设我们已经从源系统中获取了生产订单号、原材料编号等关键字段。接下来,我们将这些字段映射到目标系统所需的格式。

{
  "FID": "_findCollection find FID from ce5b116a-97a3-30ea-bfdf-a7a3fa3be3cd where FMoBillNo={{生产订单号}}",
  "FEntity": [
    {
      "FMaterialID2": "{{原材料编号}}",
      "FMaterialType": "1",
      "FDosageType": "2",
      "FNumerator": "{{分子}}",
      "FDenominator": "{{分母}}",
      "FUseRate": "100",
      "FStdQty": "_function ROUND(GREATEST(\"{{领料数量}}\",0.001) , 3 )",
      "FNeedQty2": "_function ROUND(GREATEST(\"{{领料数量}}\",0.001) , 3 )",
      "FMustQty": "_function ROUND(GREATEST(\"{{领料数量}}\",0.001) , 3 )",
      "FIssueType": "1",
      "FSupplyOrg": {
        "parser": {
          "name": "ConvertObjectParser",
          "params": "FNumber"
        },
        "value": "T04"
      },
      ...
    }
  ],
  ...
}

数据转换与写入

在完成数据清洗后,我们需要将其转换为目标系统所需的格式,并通过API接口进行写入。以下是具体步骤:

  1. 主表字段映射

    • 将生产订单号映射为FID
      {
      "field":"FID",
      ...
      "value":"_findCollection find FID from ce5b116a-97a3-30ea-bfdf-a7a3fa3be3cd where FMoBillNo={{生产订单号}}"
      }
  2. 子表字段映射

    • 子项物料编码、类型、用量类型等:
      {
      ...
      {
       "field":"FMaterialID2",
       ...
       "value":"{{原材料编号}}"
      },
      {
       ...
       ...
       ...
       ...
      }
      }
  3. 计算字段处理

    • 使用函数计算标准用量、需求数量和应发数量:

      
      {
      ...
      {
       ...
       ...
       ...
       ...
       ...,
       {
         ...,
         ...,
         ...,
         ...,
         ...,
         ...,
         ...,
         ...,
         ...,
         ...,
         ...,
         {
           ...,
           ...,
           ...,
           ...,
           ...,
           ...,
           ...,
           ...,
           ...,
           {
             ...
             },
             {
               ...
               },
               {
                 ...
                 },
                 {
                   ...
                   },
                   {
                     ...
                     },
                     {
                       ...
                       },
                       {
                         ...
                         },
                         {
                           ...
                           },
                           {
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...
      
                             ...

4. **其他请求参数**
   - 设置业务对象表单Id和操作类型:
     ```json
     [
       {"field":"FormId","value":"PRD_PPBOM"},
       {"field":"Operation","value":"batchSave"},
       {"field":"IsAutoSubmitAndAudit","value":"false"},
       {"field":"IsVerifyBaseDataField","value":"true"},
       {"field":"IsDeleteEntry","value":"false"}
     ]

实际应用案例

假设我们有一个生产订单,其订单号为PO123456,包含如下原材料信息:

  • 原材料编号:RM001
  • 分子:10
  • 分母:100
  • 领料数量:50

通过上述配置,我们可以生成如下请求体:

{
  "FID": "_findCollection find FID from ce5b116a-97a3-30ea-bfdf-a7a3fa3be3cd where FMoBillNo=PO123456",
  "FEntity": [
    {
      "FMaterialID2": RM001,
      ...
    }
  ],
  ....
}

最终,通过POST请求将该数据提交至金蝶云星空API接口,实现了从源系统到目标系统的数据无缝对接。

通过上述步骤,我们能够高效地完成ETL转换,并将清洗后的数据准确地写入到目标平台。这不仅提升了数据处理的效率,还确保了业务流程的顺畅运行。 企业微信与OA系统接口开发配置

更多系统对接方案