轻易云平台在企业数据集成中的应用:从MySQL到金蝶

  • 轻易云集成顾问-张妍琪

CRM-KHWL-客户物料对应表同步金蝶-建单:高效数据集成方案解析

在企业信息系统中,数据的流畅传输与无缝对接是决定业务效率和准确性的重要因素。本文将详细介绍如何使用轻易云数据集成平台,实现MySQL数据库中的"CRM-KHWL-客户物料对应表"同步到金蝶云星空系统。在该案例中,我们利用了MySQL的select接口获取数据,并通过金蝶云星空的batchSave接口批量写入数据。

为此,我们特别关注以下技术要点:

  1. 高吞吐量的数据写入能力
    由于企业每天需要处理大量客户物料对应关系的数据,这要求我们不仅能够迅速从MySQL数据库中抓取这些信息,还必须以同样快速的方式将其写入到金蝶云星空。因此,高吞吐量的数据写入机制成为本次集成解决方案的核心之一。

  2. 集中监控和告警系统
    数据传输过程中的每一个环节都需要实时监控,以确保任务按预期运行。这包括对API调用状态、性能指标以及潜在异常情况进行全方位监测,并提供及时告警功能,从而实现问题早发现、早解决。

  3. 自定义数据转换逻辑
    MySQL与金蝶云星空之间可能存在着不同的数据结构和格式要求。为了解决这个问题,本集成方案支持灵活配置自定义转换规则,使得两个系统间的数据可以顺利映射。

  4. 分页与限流处理策略
    为避免一次性读取或写入过多记录导致性能下降甚至调用失败,在设计过程中采用了分页机制及适当限流策略。这不仅保障了系统稳定性,还提高了事务可靠成功率。

  5. 错误重试机制
    数据传输过程难免因网络波动、服务响应超时等原因出现意外失败。本次实施中特别加入了一套健壮的错误重试机制,确保即使某一批次操作失败,也能自动重试直至最终完成任务,大大提升整体任务执行成功率。

以上五个技术要点构成了本篇文章探讨内容的重要组成部分,它们共同保证了MySQL到金蝶云星空数据同步过程中的高效、安全与准确。接下来,将深入剖析每一个具体实现步骤及其背后的细节逻辑,为大家带来切实可行的实施参考。 用友与CRM系统接口开发配置

调用源系统MySQL接口select获取并加工数据

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

配置元数据

首先,我们需要理解和配置元数据。以下是我们使用的元数据配置:

{
  "api": "select",
  "effect": "QUERY",
  "method": "POST",
  "number": "单据编号",
  "id": "sourceid",
  "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"
        }
      ]
    }
  ],
  "otherRequest": [
    {
      "field": "main_sql",
      "label": "main_sql",
      "type": "string",
      ...
    }
  ],
  ...
}

数据请求与清洗

在这个阶段,我们主要关注如何通过API接口从MySQL数据库中提取所需的数据。这里使用了POST方法来执行select查询操作。

请求参数
  • main_params:这是一个对象类型的参数,包含两个子参数:
    • limit:限制返回记录的数量,默认值为100。
    • offset:用于分页查询,指定从哪一条记录开始返回。
SQL查询语句

元数据中的main_sql字段定义了具体的SQL查询语句:

SELECT CONCAT('', a.data_id) AS sourceid,
       CONCAT(c.org_code, '_', b.customer_code) AS '单据编号',
       c.org_code AS '销售组织',
       b.customer_code AS '客户编号',
       JSON_UNQUOTE(JSON_EXTRACT(a.customer_name, '$[0].value')) AS '客户名称',
       a.f_pinpai AS '品牌',
       CONCAT('', a.product_id) AS '产品ID',
       a.cust_material_number AS '客户物料编号',
       a.cust_material_name AS '客户物料名称',
       a.cust_specification_model AS '客户规格型号',
       a.material_number AS '物料编号',
       a.material_name AS '物料名称',
       a.specification_model AS '规格型号',
       a.product_line AS '产品线'
FROM wk_wodtop_customer_material_ref a
LEFT JOIN wk_wodtop_customer b ON a.customer_id = b.data_id
LEFT JOIN wk_wodtop_sales_organization c ON c.data_id = (JSON_UNQUOTE(JSON_EXTRACT(a.sales_org, '$[0].key')))
LEFT JOIN wk_wodtop_customer_material_ref d ON d.customer_id = a.customer_id AND d.sync_1 = 1
WHERE a.cust_material_number <> '' 
AND a.material_number <> '' 
AND c.org_code <> '' 
AND d.customer_id IS NULL
GROUP BY c.org_code, b.customer_code
LIMIT :limit OFFSET :offset;

该查询语句从多个表中联合提取数据,并对结果进行过滤和分组,以确保只返回符合条件的数据。

数据转换与写入

在获取到原始数据后,需要对其进行必要的转换和清洗,然后写入目标系统。在轻易云平台上,这一步通常由自动化流程完成,可以通过配置来实现。例如,可以设置自动填充响应(autoFillResponse)以简化这一过程。

实践案例

假设我们需要同步CRM系统中的客户物料对应表到金蝶系统。通过上述配置,我们可以实现以下步骤:

  1. 调用API:使用POST方法发送请求,执行定义好的SQL查询。
  2. 获取数据:根据请求参数(如limit和offset),从MySQL数据库中提取符合条件的数据。
  3. 数据清洗:对提取的数据进行必要的清洗和转换,如去除空值、格式化字段等。
  4. 写入目标系统:将处理后的数据写入金蝶系统,实现不同系统间的数据同步。

通过这种方式,我们可以高效地实现跨系统的数据集成,确保数据的一致性和完整性。 钉钉与ERP系统接口开发配置

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

在数据集成生命周期的第二步中,我们需要将已经从源平台获取并清洗的数据进行ETL(Extract, Transform, Load)转换,使其符合目标平台——金蝶云星空API接口所能接收的格式,并最终写入目标平台。本文将详细探讨如何利用轻易云数据集成平台完成这一过程。

1. API接口配置

为了将数据写入金蝶云星空,我们需要配置相应的API接口。根据提供的元数据配置,我们使用的是batchSave接口,采用POST方法进行数据提交。以下是具体的配置细节:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field": "FBillNo", "label": "单据编号", "type": "string", "value": "{{单据编号}}"},
    {"field": "FSaleOrgId", "label": "FSaleOrgId", "type": "string", "value": "{{销售组织}}", 
      "parser": {"name": "ConvertObjectParser", "params": "FNumber"}},
    {"field": "FCustomerId", "label": "FCustomerId", "type": "string", 
      "value": "{{客户编号}}", 
      "parser": {"name": "ConvertObjectParser", 
      "params":"FNumber"}},
    {"field":"FUseOrgId","label":"FUseOrgId","type":"string","value":"{{销售组织}}",
      "parser":{"name":"ConvertObjectParser","params":"FNumber"}},
    {"field":"FName","label":"FName","type":"string","value":"{{单据编号}}"},
    {"field":"FEntity","label":"FEntity","type":"array","children":[
      {"field":"FCustMatNo","label":"FCustMatNo","type":"string","value":"{{客户物料编号}}"},
      {"field":"FMaterialId","label":"FMaterialId","type":"string",
        "value":"{{物料编号}}",
        "parser":{"name":"ConvertObjectParser","params":"FNumber"}},
      {"field":"FCustMatName","label":"FCustMatName","type":"string",
        "value":"{{客户物料名称}}"},
      {"field":"FEffective","label":"启用","type":"string",
        "value":"true"},
      {"field":"F_FCustMatUom","label":"客户规格",
        "type":"string",
        "value" : "{{客户规格型号}}" }
    ]}
  ],
  ...
}

2. 数据字段解析与转换

在上述配置中,多个字段需要通过ConvertObjectParser进行解析和转换。例如,FSaleOrgIdFCustomerIdFUseOrgIdFMaterialId等字段都需要将原始值转换为金蝶云星空系统可识别的编码格式(即使用参数FNumber)。

{
  ...
  {
    field: 'FSaleOrgId',
    label: 'FSaleOrgId',
    type: 'string',
    value: '{{销售组织}}',
    parser: { name: 'ConvertObjectParser', params: 'FNumber' }
  },
  ...
}

这种解析器的使用确保了在数据传输过程中,源系统中的编码能够正确映射到目标系统中的编码,从而保证数据的一致性和准确性。

3. 数据结构与嵌套数组处理

在本案例中,存在一个嵌套数组字段——FEntity,用于存储多个客户物料对应关系。每个子项包含多个字段,如下所示:

{
  field: 'FEntity',
  label: 'FEntity',
  type: 'array',
  children: [
    { field: 'FCustMatNo', label: 'FCustMatNo', type: 'string', value: '{{客户物料编号}}' },
    { field: 'FMaterialId', label: 'FMaterialId', type: 'string', value: '{{物料编号}}', parser:{ name:'ConvertObjectParser', params:'FNumber'}},
    { field: 'FCustMatName', label: 'FCustMatName', type: 'string', value:'{{客户物料名称}}'},
    { field:' FEffective', label:'启用', type:' string ', value:'true'},
    { field:' F_FCustMatUom ', label:' 客户规格 ', type:' string ', value :' {{ 客户规格型号 }}'}
   ]
}

这种嵌套结构允许我们批量处理多个客户物料对应关系,有效提高了数据传输效率。

4. 操作与其他请求参数

除了主要的数据字段外,还需要设置一些操作参数以控制API行为:

{
  ...
  {
    field:"FormId",
    label:"业务对象表单Id",
    type:"string",
    describe:"业务对象表单Id",
    value:"SAL_CustMatMapping"
   },
   {
     field:"Operation",
     label:"执行的操作",
     type:"string",
     describe:"执行的操作",
     value:"BatchSave"
   },
   {
     field:"IsAutoSubmitAndAudit ",
     label :"提交并审核 ",
     type :"bool ",
     describe :"提交并审核 ",
     value :"false "
   },
   {
     field :"IsVerifyBaseDataField ",
     label :"验证基础资料 ",
     type :"bool ",
     describe :"验证基础资料 ",
     value :"true "
   },
   {
     field :"IsDeleteEntry ",
     label :"是否删除已存在的分录 ",
     type :" string ", 
     value :“ false ”
   }
}

这些参数确保了在执行批量保存操作时,可以自动验证基础资料,并决定是否删除已存在的分录等。

总结

通过以上步骤,我们能够利用轻易云数据集成平台,将源平台的数据经过ETL转换后,以符合金蝶云星空API接口要求的格式写入目标平台。这一过程不仅提升了数据处理效率,还保证了数据的一致性和准确性,为企业实现高效的数据管理提供了有力支持。 轻易云数据集成平台金蝶集成接口配置

更多系统对接方案