使用轻易云ETL配置实现金蝶云星空API数据对接

  • 轻易云集成顾问-曾平安

MySQL数据集成到金蝶云星空:SR生产入库单新增案例分享

在复杂多变的企业业务环境中,如何高效、安全地实现数据的无缝流动与集成,是每个系统管理者最为关心的问题。本次我们聚焦于一个实际运行方案“SR生产入库单新增-单工序-深圳天一-好”,详细探讨如何将MySQL中的数据通过API接口有效地集成到金蝶云星空。

首先,我们采用轻易云数据集成平台,借助其可视化的数据流设计工具和自定义转换逻辑功能,实现了对MysQL数据库中的select查询结果进行批量处理,并准时可靠地抓取所需的数据。这些数据随后利用金蝶云星空提供的batchSave API 进行高速写入。

为了确保整个过程中不漏单,并及时发现和处理任何可能出现的数据异常,我们启用了全面的数据质量监控机制。此外,通过集中式的监控和告警系统,对各节点性能及任务状态进行了实时跟踪,大大提高了任务执行过程中的透明度与可靠性。

不仅如此,这次集成还特别注意到了从MySQL接口形式获取分页和限流问题,以及两种不同系统间数据格式差异带来的挑战。通过定制化的数据映射对接方案,这些问题得以顺利解决,从而保障了系统间数据信息的一致性及准确性。

具体实施细节将在后续内容中逐步揭晓,包括API调用、异常处理机制以及日志记录策略等技术要点,为您展示一次完整且成功的跨平台数据集成实战案例。 金蝶与WMS系统接口开发配置

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

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

元数据配置解析

首先,我们需要理解元数据配置中的各个字段及其作用:

  • api: 指定调用的API类型,这里为select
  • effect: 表示操作类型,这里为QUERY,即查询操作。
  • method: 数据请求的方法,这里为SQL
  • number, id, name: 这些字段用于标识和描述请求的数据结构。
  • request: 包含主查询语句内的动态参数对象,主要包括:
    • limit: 返回的记录数,用于限制查询结果的数量。
    • offset: 数据偏移量,用于指定查询起始位置。

主查询语句

主查询语句是整个数据获取过程的核心部分。以下是一个典型的主查询语句示例:

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('RKD',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 MATTERIAL_TYPE='3' and c.next_process_code is null
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 and hj1.out_type='3'
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_success3 !='1' and a.is_success2='1'
limit :limit offset :offset

动态参数对象

在上述SQL语句中,使用了两个动态参数::limit:offset。这些参数通过元数据配置中的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。",
      "value": "0"
    }
  ]
}

实际应用案例

假设我们需要从MySQL数据库中获取生产入库单新增的数据,并且每次返回100条记录,从第0条开始。我们可以通过以下步骤实现:

  1. 配置元数据:按照上述元数据配置格式,定义好动态参数和主查询语句。
  2. 执行SQL查询:在轻易云平台上,通过API调用执行上述SQL查询,并传递相应的动态参数值(如:limit=100, offset=0)。
  3. 处理结果:将查询结果进行后续的数据清洗、转换和写入操作。

通过这种方式,我们能够高效地从MySQL数据库中获取所需的数据,并进行进一步处理。这不仅提高了数据集成的效率,也确保了每个环节都透明可控。

以上就是关于如何在轻易云数据集成平台中调用MySQL接口select获取并加工数据的详细技术案例,希望对您有所帮助。 企业微信与OA系统接口开发配置

轻易云数据集成平台ETL转换配置案例:金蝶云星空API接口

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

API接口配置

首先,我们需要配置金蝶云星空API接口。根据提供的元数据配置,我们可以看到以下关键字段和参数:

  • api: "batchSave"
  • method: "POST"
  • idCheck: true
  • operation:
    • rowsKey: "array"
    • rows: 1
    • method: "batchArraySave"

这些参数定义了我们将使用POST方法调用batchSave API,并且在操作时会检查ID。

请求参数配置

接下来是请求参数的具体配置,这些参数决定了如何将源平台的数据映射到目标平台的数据结构中。以下是主要字段及其对应关系:

  1. FBillNo(单据编号)

    • 类型:string
    • 描述:单据编号
    • 值:{{入库单号}}
  2. FBillType(单据类型)

    • 类型:string
    • 描述:单据类型
    • 值:"SCRKD01_SYS"
    • 解析器:ConvertObjectParser, 参数:"FNumber"
  3. FDate(日期)

    • 类型:string
    • 描述:日期
    • 值:{{日期}}
  4. FPrdOrgId(生产组织)

    • 类型:string
    • 描述:生产组织
    • 值:
      _function case '{{供应组织}}' when 'T01.01' then 'T01.06' when 'T04' then 'T04' else '' end
    • 解析器:ConvertObjectParser, 参数:"FNumber"
  5. FStockOrgId(入库组织) 与生产组织类似,同样需要根据供应组织进行条件判断并转换。

  6. FOwnerTypeId0(货主类型)

    • 类型:string
    • 描述:货主类型
    • 值:"BD_OwnerOrg"
  7. FOwnerId0(货主) 与生产组织类似,需要条件判断并转换。

  8. FDescription(备注)

    • 类型:string
    • 描述:备注
    • 值:{{生产订单号}}
  9. FWorkShopId(生产车间) 根据供应组织进行条件判断并转换。

明细字段配置

对于明细字段,我们需要特别注意数组类型的处理方式。以下是明细字段的一些关键配置:

  1. FInStockType(入库类型)

    {"field":"FInStockType","label":"入库类型","type":"string","describe":"入库类型","value":"1"}
  2. FIsNew(是否新增)

    {"field":"FIsNew","label":"是否新增","type":"string","value":"false"}
  3. FProductType(产品类型-1主产品 2联副产品)

    {"field":"FProductType","label":"产品类型-1主产品 2联副产品","type":"string","describe":"产品类型-1主产品 2联副产品","value":"1"}
  4. FMoEntryId(生产订单分录内码)

    {"field":"FMoEntryId","label":"生产订单分录内码","type":"string","describe":"生产订单分录内码","value":"_findCollection find FTreeEntity_FEntryId from 10e0ff3a-25f4-31e0-acbc-6e462ae4fdb8 where FBillNo={{生产订单号}}"}
  5. FSrcBillType(源单类型)

    {"field":"FSrcBillType","label":"源单类型","type":"string","describe":"源单类型","value":"PRD_MORPT"}
  6. FSrcEntryId(源单分录内码)

    {"field":"FSrcEntryId","label":"源单分录内码","type":"string","value":"_findCollection find FEntity_FEntryID from a515bce3-b680-3906-8f45-50e1c488da3b where FMoBillNo={{生产订单号}} FBillNo={{入库单号}}"}
  7. FMustQty & FRealQty (应收数量 & 实收数量)

    {"field":"FMustQty","label":"应收数量","type":"string","describe":"应收数量","value":"{{入库数量}}"}
    {"field":"FRealQty","label":"实收数量","type":"","describe":"","value":""}

最终请求结构

通过上述字段的映射和转换,我们可以构建最终的请求结构,以便发送到金蝶云星空API接口。以下是一个简化示例:

{
  "FormId": "PRD_INSTOCK",
  "Operation": "BatchSave",
  "IsAutoSubmitAndAudit": true,
  "IsVerifyBaseDataField": true,
  "Model": {
      "FBillNo": "{{入库单号}}",
      "FBillType": { "FNumber": "SCRKD01_SYS" },
      ...
      "FEntity": [
          {
              "FInStockType": "1",
              ...
          }
      ]
  }
}

通过这种方式,我们能够确保数据从源平台经过ETL处理后,准确无误地写入到金蝶云星空系统中,实现不同系统间的数据无缝对接。 钉钉与ERP系统接口开发配置

更多系统对接方案