ETL转换与金蝶云星空API集成案例解析

  • 轻易云集成顾问-孙传友

旺店通·企业奇门数据集成到金蝶云星空案例分享:传入金蝶其他出库单

在系统集成项目中,如何确保不同平台间的数据无缝对接,一直是技术人员面临的核心挑战。本次我们聚焦于一个实际运行的方案:将旺店通·企业奇门的数据高效传入金蝶云星空,以实现其他出库单数据的同步和管理。

为了实现这一目标,我们采用了轻易云数据集成平台,该平台支持自定义数据转换逻辑,并提供可视化的数据流设计工具,使得复杂的数据处理过程更加直观且易于管理。具体方案包括从旺店通·企业奇门接口wdt.stockout.order.query定时、可靠地抓取订单数据,再通过优化后的批量写入机制,高效地将这些数据存储到金蝶云星空接口batchSave中。

集成过程中,为了解决分页和限流等问题,我们设计了一套自动重试与异常处理机制,确保每条订单都能成功同步。此外,通过集中监控和告警系统,我们实时跟踪整个数据流动情况,当出现任何异常时能够及时介入并处理。这不仅提升了系统稳定性,还有效防止了漏单现象。

在具体实施阶段,相应解决以下几项关键技术点:

  1. 如何调用旺店通·企业奇门接口wdt.stockout.order.query: 通过API资产管理功能,实现统一视图控制台下的高效调用。

  2. 如何处理分页和限流问题: 使用自动重试与错误重试机制来应对潜在限制,并保证连续性。

  3. 克服两者之间的数据格式差异: 设置定制化的数据映射规则,使结构不一致的问题迎刃而解。

  4. 大规模快速写入至金蝶云星空: 利用高吞吐量特性,在短时间内完成大量订单数据写入,提高整体效率。

由此可见,通过合理配置元数据及充分利用各环节优势,不仅可以保障订单信息准确、高速地传输,还能显著提高业务操作透明度与管理效益。 数据集成平台API接口配置

使用轻易云数据集成平台调用旺店通·企业奇门接口获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细介绍如何使用轻易云数据集成平台调用旺店通·企业奇门接口 wdt.stockout.order.query 获取并加工数据。

接口概述

wdt.stockout.order.query 是一个用于查询出库单信息的API接口。该接口支持多种参数配置,能够根据不同的查询条件获取相应的出库单数据。以下是该接口的元数据配置:

{
  "api": "wdt.stockout.order.query",
  "effect": "QUERY",
  "method": "POST",
  "number": "order_no",
  "id": "stockout_id",
  "name": "order_no",
  "idCheck": true,
  "request": [
    {
      "field": "start_time",
      "label": "开始时间",
      "type": "string",
      "describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
      "value": "{{LAST_SYNC_TIME|datetime}}"
    },
    {
      "field": "end_time",
      "label": "结束时间",
      "type": "string",
      "describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss",
      "value": "{{CURRENT_TIME|datetime}}"
    },
    {
      "field": "order_type",
      "label": "出库单类型",
      "type": "string",
      "describe": [
        {"2":"调拨出库"},
        {"3":"采购退货出库"},
        {"4":"盘亏出库"},
        {"5":"生产出库"},
        {"7":"其他出库"},
        {"8":"多发出库"},
        {"9":"纠错出库"},
        {"10":"保修配件出库"},
        {"11":"初始化出库"},
        {"12":"jit拣货出库"},
        {"13":"委外出库"}
      ]
    },
    {
      "field": "status",
      ...

请求参数配置

在实际应用中,我们需要根据业务需求配置请求参数。以下是一些关键参数及其配置示例:

  • 开始时间 (start_time)结束时间 (end_time)

    {
    ...
    {
      ...
      “value”: "{{LAST_SYNC_TIME|datetime}}"
    },
    {
      ...
      “value”: "{{CURRENT_TIME|datetime}}"
    }
    }

    这些参数用于按最后修改时间增量获取数据,确保每次同步的数据都是最新的。

  • 出库单类型 (order_type)

    {
    ...
    “value”: “7”
    }

    我们可以根据业务需求选择特定类型的出库单,例如“其他出库”。

  • 分页大小 (page_size)页号 (page_no)

    {
    ...
    “value”: "{PAGINATION_PAGE_SIZE}"
    },
    {
    ...
    “value”: "{PAGINATION_START_PAGE}"
    }

    分页参数确保在大批量数据查询时能够分批次处理,提高效率和稳定性。

数据清洗与转换

在获取到原始数据后,需要进行清洗和转换,以便后续的数据处理和写入。以下是一些常见的数据清洗与转换操作:

  1. 字段映射:将源系统中的字段映射到目标系统中的字段。例如,将 stockout_id 映射为 order_id
  2. 数据格式转换:将日期格式从 yyyy-MM-dd HH:mm:ss 转换为目标系统所需的格式。
  3. 过滤无效数据:移除状态为“已取消”的订单,确保只处理有效订单。

实践案例

假设我们需要从旺店通获取所有状态为“已发货”和“已完成”的其他出库单,并将其传入金蝶系统。具体步骤如下:

  1. 配置请求参数:

    {
     ...
     “start_time”: "{{LAST_SYNC_TIME|datetime}}",
     “end_time”: "{{CURRENT_TIME|datetime}}",
     “order_type”: “7”,
     “status”: ["95", “110”]
    }
  2. 调用接口并获取响应:

    response = requests.post(api_url, data=json.dumps(request_params), headers=headers)
    data = response.json()
  3. 数据清洗与转换:

    cleaned_data = []
    for record in data['orders']:
       if record['status'] in ['95', '110']:
           cleaned_record = {
               'order_id': record['stockout_id'],
               'order_no': record['order_no'],
               'warehouse_no': record['warehouse_no'],
               'date': datetime.strptime(record['date'], '%Y-%m-%d %H:%M:%S').strftime('%Y%m%d')
           }
           cleaned_data.append(cleaned_record)

通过上述步骤,我们成功地从旺店通获取了符合条件的其他出库单,并对其进行了必要的数据清洗和转换,为后续的数据写入做好了准备。 用友与MES系统接口开发配置

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

在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是将源平台数据转化为目标平台可接受格式的关键步骤。本文将深入探讨如何利用轻易云数据集成平台,将旺店通的数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。

数据请求与清洗

在开始ETL转换之前,我们需要从源系统(旺店通)获取原始数据。这一阶段主要包括数据请求和初步清洗,以确保数据的完整性和准确性。假设我们已经完成了这一阶段,接下来将重点介绍如何进行ETL转换。

数据转换与写入

轻易云数据集成平台提供了丰富的元数据配置功能,可以帮助我们将源数据转换为目标系统所需的格式。以下是一个具体的元数据配置示例,用于将旺店通的数据传入金蝶其他出库单:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "FBillNo",
      "label": "单据编号",
      "type": "string",
      "describe": "单据编号",
      "value": "{order_no}"
    },
    {
      "field": "FBillTypeID",
      "label": "单据类型",
      "type": "string",
      "describe": "标准其他出库单:QTCKD01_SYS\n资产出库:QTCKD02_SYS\nVMI出库:QTCKD03_SYS\n费用物料出库:QTCKD04_SYS\n库存调整:QTCKD05_SYS",
      "parser": {
        "name": "ConvertObjectParser",
        "params": "FNumber"
      },
      "value": "_function case when '{stockout_reason}' ='盘亏出库单' then 'QTCKD06_SYS' when '{stockout_reason}' ='报废出库(无赔款)' then 'QTCKD12_SYS' when '{stockout_reason}' ='报废出库(有赔款)' then 'QTCKD13_SYS' when '{stockout_reason}' ='2C耗材出库' then 'QTCKD14_SYS' when '{stockout_reason}' ='2B耗材出库' then 'QTCKD15_SYS' else 'QTCKD01_SYS' end"
    },
    {
      ...
    }
  ],
  ...
}

解析元数据配置

  1. API与方法

    • api: 指定调用的金蝶云星空API接口,这里使用的是batchSave
    • method: 指定HTTP请求方法,这里使用POST
  2. 字段映射与转换

    • FBillNo: 映射到源系统中的订单编号{order_no}
    • FBillTypeID: 根据不同的{stockout_reason}值,通过条件判断选择对应的单据类型。
      "_function case when '{stockout_reason}' ='盘亏出库单' then 'QTCKD06_SYS' when '{stockout_reason}' ='报废出库(无赔款)' then 'QTCKD12_SYS' when '{stockout_reason}' ='报废出库(有赔款)' then 'QTCKD13_SYS' when '{stockout_reason}' ='2C耗材出库' then 'QTCKD14_SYS' when '{stockout_reason}' ='2B耗材出库' then 'QTCKD15_SYS' else 'QTCKD01_SYS' end"
    • FPickOrgId, FStockOrgId, FOwnerIdHead, 等字段均通过ConvertObjectParser进行基础资料编码转换。
  3. 明细信息

    • FEntity: 包含多个子字段,如FMaterialId, FQty, FStockId等,分别对应物料编码、实发数量、发货仓库等信息。
      {
      ...
      {
       "field": "FMaterialId",
       ...
       "value": "{{details_list.spec_no}}"
      },
      {
       ...
      }
      }
  4. 其他请求参数

    • FormId: 指定业务对象表单ID,这里为STK_MisDelivery
    • IsAutoSubmitAndAudit: 设置为true,表示自动提交并审核。
    • IsVerifyBaseDataField: 设置为true,表示验证所有基础资料有效性。

数据写入

完成上述配置后,我们可以通过轻易云的数据集成平台,将处理后的数据发送到金蝶云星空API接口,实现最终的数据写入操作。通过这种方式,不同系统间的数据可以实现无缝对接,大大提升了业务处理效率和透明度。

以上就是一个完整的ETL转换与写入金蝶云星空API接口的技术案例,希望能为您的系统集成工作提供参考和帮助。 金蝶与MES系统接口开发配置

更多系统对接方案