运用轻易云解决企业系统数据对接问题的案例

  • 轻易云集成顾问-陈洁琳

MySQL数据集成到金蝶云星空的技术实现案例分享——GH生产汇报单新增

在实际业务场景中,企业通常需要将各类系统间的数据进行无缝对接,以确保信息流动畅通、实时性和准确性。本文将详解一个具体的系统对接实例:如何通过轻易云数据集成平台,将MySQL数据库中的“GH生产汇报单”数据高效、安全地集成到金蝶云星空。

首先,我们面临的挑战包括:

  1. 如何快速且可靠地从MySQL接口抓取“GH生产汇报单”的数据信息。
  2. 确保大量数据能够顺利写入到金蝶云星空,而不漏单、不重复。
  3. 处理两者间的数据格式差异,并支持自定义转换逻辑以满足业务需求。

为了解决这些问题,我们规划了以下几个关键步骤:

任务调度与监控

使用轻易云的平台功能,通过定时任务调度,周期性地调用MySQL API (select)来获取最新的“GH生产汇报单”数据。同时,利用其内置的集中监控和告警系统,对每次任务执行情况及性能指标进行实时跟踪,如发现异常立刻告警并触发相应重试机制。

数据转换与映射

由于MySQL和金蝶云星空之间可能存在结构差异,需要通过轻易云提供的可视化数据流设计工具,自定义设定字段映射关系,并实施必要的数据清洗和格式转换。这确保了源端与目标端字段一一对应,使得后续的数据写入过程更加平滑。

高效批量写入

为了提升处理效率,我们采用分批次导出的方式,将转化后的数据信息通过金蝶API (batchSave)一次性批量写入到金蝶云星空中,可有效解决大规模数据传输时可能导致网络拥堵或时间延迟的问题。此外,为了避免漏记或重复录入,还引入唯一标识验证机制,每条记录均会校验是否已存在于目标库中,从而保证最终一致性。

上述方案只是整个流程的一部分,但它强调了每个环节的重要技术点,通过合理配置元数据,以及精准控制各项操作,可以极大提升整体效率,并保证对接过程中万无一失。在下文中,将详细介绍具体实现这些关键步骤的方法、涉及的API请求示例以及异常处理策略等内容。 泛微OA与ERP系统接口开发配置

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

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

元数据配置解析

元数据配置是实现数据请求与清洗的关键。以下是一个典型的元数据配置示例:

{
  "api": "select",
  "effect": "QUERY",
  "method": "SQL",
  "number": "入库单号",
  "id": "入库单号",
  "name": "name",
  "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。"
        }
      ]
    }
  ],
  "otherRequest": [
    {
      "field": "main_sql",
      "label": "主查询语句",
      "type": "string",
      "describe": ":created_at 格式与主参数字段进行对应",
      ``value``: ``"select a.dispatch_prefix as 生产订单号,\n d.bom_uuid,\n e.confrim_no as 入库单号,\n date(a.update_time) as 日期,\n a.part_no as 成品编号,\n d.bom_no as 计划跟踪号,\n a.instock_numb as 入库数量,\n a.id as sourceid,\n f1.id,\n ((select ifnull(sum(f.man_hour),0) from eng_craft_card_item f where f.card_id=f1.id and f.process_id !=1267)+(select ifnull(sum(f.man_hour),0) from eng_craft_card_item f where f.card_id=f1.id and f.process_id =1267)/(select dispatched_num from mes_dispatch_record_process where company_code='gdty' and dispatch=a.dispatch_prefix limit 1))*a.instock_numb/3600 as 工时\nfrom wms_instock_confirm_main_task_detail a\nleft join oms_order_bom d on d.bom_uuid=(select bom_uuid from mes_dispatch_record_process where company_code='gdty' and dispatch=a.dispatch_prefix LIMIT 1 )\nleft join wms_instock_confirm_task e on a.confirm_task_uuid=e.confirm_task_uuid\nleft join eng_craft_card f1 on f1.oms_order_bom_uuid=d.bom_uuid\nwhere a.company_code='gdTY' and a.confirm_status='20' and a.matterial_type=4 and d.material_source='2' \nand a.is_defect='0' and a.is_success !='1' and d.kingdee_fwl='0'\n limit :limit offset :offset"`
    }
  ],
  ``autoFillResponse``: true,
  ``omissionRemedy``: {
    ``crontab``: ``"1 1 1 1 1"``,
    ``takeOverRequest``: []
  }
}

数据请求与清洗

在上述元数据配置中,api字段指定了调用的接口类型为select,而effect字段表明这是一个查询操作。method字段则明确了使用SQL语句进行操作。

主参数配置

主参数部分定义了两个关键字段:limitoffset

  • limit: 用于设定返回记录数,默认值为100。
  • offset: 用于指定查询起始位置,默认值为0。

这些参数通过动态对象传递给主查询语句,实现灵活的数据请求控制。

主查询语句

主查询语句是整个数据请求过程的核心。以下是该示例中的主查询语句:

select 
    a.dispatch_prefix as 生产订单号,
    d.bom_uuid,
    e.confrim_no as 入库单号,
    date(a.update_time) as 日期,
    a.part_no as 成品编号,
    d.bom_no as 计划跟踪号,
    a.instock_numb as 入库数量,
    a.id as sourceid,
    f1.id,
    ((select ifnull(sum(f.man_hour),0) 
        from eng_craft_card_item f 
        where f.card_id=f1.id 
            and f.process_id !=1267)
     +(select ifnull(sum(f.man_hour),0) 
        from eng_craft_card_item f 
        where f.card_id=f1.id 
            and f.process_id =1267)
     /(select dispatched_num 
         from mes_dispatch_record_process 
         where company_code='gdty' 
             and dispatch=a.dispatch_prefix limit 1))
     *a.instock_numb/3600 as 工时
from wms_instock_confirm_main_task_detail a
left join oms_order_bom d on d.bom_uuid=(select bom_uuid from mes_dispatch_record_process where company_code='gdty' and dispatch=a.dispatch_prefix LIMIT 1 )
left join wms_instock_confirm_task e on a.confirm_task_uuid=e.confirm_task_uuid
left join eng_craft_card f1 on f1.oms_order_bom_uuid=d.bom_uuid
where 
    a.company_code='gdTY'
    and a.confirm_status='20'
    and a.matterial_type=4
    and d.material_source='2'
    and a.is_defect='0'
    and a.is_success !='1'
    and d.kingdee_fwl='0'
limit :limit offset :offset

该SQL语句通过多表联接和子查询获取所需的数据,并根据传入的动态参数进行分页处理。

自动填充响应与遗漏补救

在元数据配置中,autoFillResponse设置为true,这意味着系统会自动填充响应结果,简化了后续的数据处理步骤。此外,遗漏补救机制(如crontab调度)确保了在特殊情况下的数据完整性。

实践案例

假设我们需要获取最近更新的100条生产汇报单信息,可以通过以下方式实现:

{
   ``main_params``: {
       ``limit``:100,
       ``offset``:0
   },
   ``main_sql``:"上述SQL查询语句"
}

通过这种方式,我们可以高效地从MySQL数据库中提取并加工所需的数据,为后续的数据转换与写入奠定坚实基础。

综上所述,通过合理配置元数据,我们能够利用轻易云数据集成平台高效地调用MySQL接口,实现复杂的数据请求与清洗操作。这不仅提升了业务透明度和效率,也为后续的数据处理提供了有力支持。 金蝶云星空API接口配置

使用轻易云数据集成平台将生产汇报单数据转换并写入金蝶云星空API接口

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

配置元数据

首先,我们需要配置元数据,以便将生产汇报单的数据正确映射到金蝶云星空API接口的字段中。以下是元数据配置的详细信息:

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

数据请求与清洗

在ETL过程中,首先需要从源系统请求数据并进行清洗。假设我们已经完成了这一步,并获得了如下结构的数据:

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

数据转换

接下来,我们需要将这些源数据转换为金蝶云星空API接口所能接受的格式。根据元数据配置,我们可以看到需要映射的字段和相应的值。例如:

  • FBillNo 映射到 入库单号
  • FDate 映射到 日期
  • FPrdOrgId 固定值 T04
  • FWorkshipIdH 动态查询值 _findCollection find FWorkShopID_FName from f7ea9e85-4370-3b51-951d-4eae737c2093 where FBillNo={{生产订单号}}

以下是一个完整的数据转换示例:


{
  "FormId": "PRD_MORPT",
  ...
  {
    ...
    {
      ...
      {
        ...
        {
          ...
          {
            ...
            {
              ...
              {
                ...
                {
                  ...
                  {
                    ...
                    {
                      ...
                      {
                        ...
                        {
                          ...
                          {
                            ...
                            {
                              ...
                              {
                                ...
                                {
                                  ...
![打通金蝶云星空数据接口](https://pic.qeasy.cloud/T26.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案