ETL数据集成案例:从旺店通到金蝶云星空

  • 轻易云集成顾问-何语琴

案例分享:旺店通·企业奇门数据集成到金蝶云星空

在实际操作中,我们遇到了一个典型的业务场景:将旺店通·企业奇门系统中的销售退货单据集成到金蝶云星空。该数据对接过程不仅要求高效精准,还需确保整个流程的透明度和可追溯性。

API接口概述

对于此次集成任务,两个关键API接口分别是:

  • 获取销售退货单数据(wdt.stockin.order.query.refund)
  • 批量写入销售退货单数据(batchSave)

主要技术挑战与解决方案

  1. 如何调用旺店通·企业奇门接口wdt.stockin.order.query.refund
    • 要求定时可靠地抓取最新的数据。
  2. 处理分页和限流问题
    • 使用适当的策略来避免请求过载,包括合理设置分页参数和速率限制。
  3. 批量快速写入数据到金蝶云星空
    • 利用其支持高吞吐量的数据写入能力,对大规模数据进行高效处理。
  4. 实时监控与告警机制
    • 集中监控系统及时发现并报告任何异常,以便快速响应。

通过上述步骤,我们能够实现从获取、转换到最终写入完备的数据流水线,并且在保障性能的同时,最大程度避免了漏单现象。接下来将进一步详述这些技术点及其具体实现方法。 如何对接企业微信API接口

调用旺店通·企业奇门接口wdt.stockin.order.query.refund获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockin.order.query.refund来获取并加工销售退货单数据。

接口调用配置

首先,我们需要配置元数据以便正确调用接口。以下是关键的元数据配置:

{
  "api": "wdt.stockin.order.query.refund",
  "method": "POST",
  "number": "order_no",
  "id": "order_no",
  "pagination": {
    "pageSize": 50
  },
  "idCheck": true,
  "request": [
    {
      "field": "start_time",
      "label": "开始时间",
      "type": "datetime",
      "value": "{{LAST_SYNC_TIME|datetime}}"
    },
    {
      "field": "end_time",
      "label": "结束时间",
      "type": "datetime",
      "value": "{{CURRENT_TIME|datetime}}"
    },
    {
      "field": "status",
      "label": "状态",
      "type": "string",
      "value": "80"
    },
    {
      "field": "shop_no",
      "label": "店铺编号",
      "type": "string"
    },
    {
      "field": "src_order_no",
      "label": "退换单号",
      "type": "string"
    },
    {
      "field": "stockin_no",
      "label": "入库单号",
      "type":"string"
    },
    {
      “field”: “time_type”,
      “label”: “时间类型”,
      “type”: “int”
    }
  ],
  “otherRequest”: [
    {
        “field”: “page_size”,
        “label”: “分页大小”,
        “type”: “string”,
        “value”: “{PAGINATION_PAGE_SIZE}”
     },
     {
        “field”: “page_no”,
        “label”: “页号”,
        “type”: “string”,
        “value”:“{PAGINATION_START_PAGE}”
     }
   ],
   ”condition_bk“: [
     [
       {
         ”field“: ”shop_no“,
         ”logic“: ”neqv2“,
         ”value“: ”ae89e42“
       }
     ],
     [],
     []
   ],
   ”condition“: [
     [
       {
         ”field“: ”shop_no“,
         ”logic“: ”neqv2“,
         ”value“: ”ae89e42“,
         ”strictMode“:true
       }
     ],
     [],
     []
   ]
}

请求参数解析

  • start_timeend_time:这两个字段用于定义查询的时间范围,分别使用上次同步时间和当前时间。
  • status:状态字段固定为"80",表示只查询特定状态的退货单。
  • shop_nosrc_order_nostockin_no:这些字段用于进一步过滤查询结果,可以根据实际需求进行设置。
  • time_type:定义时间类型,通常为整数类型。

分页参数 page_sizepage_no 用于控制每次请求的数据量和页码,以实现大数据量的分批处理。

数据请求与清洗

在完成接口调用配置后,下一步是发送请求并获取数据。由于轻易云平台支持全异步操作,我们可以高效地处理大批量数据。

  1. 发送请求

    • 使用POST方法发送请求,携带上述配置的参数。
    • 平台会自动处理分页逻辑,确保所有符合条件的数据都能被逐页获取。
  2. 数据清洗

    • 获取到的数据可能包含冗余或不符合业务需求的信息,需要进行清洗。
    • 根据业务规则过滤掉无效或重复的数据,例如通过 order_no 字段去重。

数据转换与写入

在清洗后的数据基础上,需要进行必要的数据转换,以便后续写入目标系统。常见的转换操作包括:

  • 字段映射:将源系统字段映射到目标系统字段。
  • 数据格式转换:例如日期格式、数值单位等。

最后,将转换后的数据写入目标系统,完成整个数据集成过程。

通过以上步骤,我们可以高效地利用轻易云平台实现旺店通销售退货单的数据集成,为业务提供及时准确的数据支持。 如何开发钉钉API接口

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

在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,使其符合目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。以下是一个详细的技术案例,展示如何通过轻易云数据集成平台配置元数据,实现旺店通销售退货单到金蝶云星空销售退货单的转换和写入。

配置元数据

我们首先需要配置好元数据,以便在ETL过程中正确映射和转换数据。以下是具体的元数据配置:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {
      "field": "FBillTypeID",
      "label": "单据类型",
      "type": "string",
      "describe": "单据类型",
      "parser": {
        "name": "ConvertObjectParser",
        "params": "FNumber"
      },
      "value": "ZYD-023"
    },
    {
      "field": "FBillNo",
      "label": "单据编号",
      "type": "string",
      "describe": "单据编号",
      "value": "{order_no}"
    },
    {
      ...
    }
  ],
  ...
}

数据请求与清洗

在ETL流程中,首先从源系统(旺店通)请求销售退货单的数据,并进行必要的数据清洗。假设我们已经获取了以下JSON格式的数据:

{
  "order_no": "SO12345678",
  ...
}

数据转换

根据配置好的元数据,我们需要将源系统的数据字段映射到目标系统所需的字段,并进行必要的转换。以下是几个关键字段的转换示例:

  1. 单据类型(FBillTypeID)

    {
     ...
     {
       "field": "FBillTypeID",
       ...
       "value": "{order_no}"
     }
     ...
    }

    在此,我们使用ConvertObjectParserorder_no解析为金蝶云星空所需的FNumber格式。

  2. 销售组织(FSaleOrgId)

    {
     ...
     {
       ...
       "_function CASE '{shop_no}' WHEN 'E0029' THEN '3000' WHEN 'E0030' THEN '3000' WHEN 'E0031' THEN '3000' WHEN 'E0036' THEN '3000' WHEN 'E0037' THEN '3000' ELSE '7000' END"
     }
     ...
    }

    根据不同的shop_no值,映射到相应的销售组织编码。

  3. 明细信息(FEntity)

    {
     ...
     {
       ...
       "_function CASE '{warehouse_no}' WHEN '1008-1' THEN '1008' ELSE '{warehouse_no}' END"
     }
     ...
    }

    根据仓库编号进行相应处理,确保符合金蝶云星空API接口要求。

数据写入

完成所有字段的映射和转换后,将处理好的数据通过API接口写入金蝶云星空系统。以下是一个完整的数据请求示例:

{
  ...
  {
    "_function CASE '{shop_no}' WHEN 'E0029' THEN '3000' WHEN 'E0030' THEN '3000' WHEN 'E0031' THEN '3000' WHEN 'E0036' THEN '3000' WHEN 'E0037' THEN '3000' ELSE '7000' END"
  },
  {
    "_function CASE '{warehouse_no}' WHEN '1008-1' THEN '1008' ELSE '{warehouse_no}' END"
  },
  ...
}

通过上述步骤,我们实现了从旺店通销售退货单到金蝶云星空销售退货单的数据ETL转换和写入。整个过程通过轻易云数据集成平台提供的全异步、支持多种异构系统集成的平台特性,使得不同系统间的数据无缝对接成为可能。 系统集成平台API接口配置

更多系统对接方案