轻易云数据集成平台在旺店通到金蝶云星空数据传输中的应用

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

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

在这篇技术案例中,我们将探讨如何高效地实现从旺店通·旗舰奇门系统向金蝶云星空的直接调拨单数据集成。具体运行方案命名为“柏为直接调拨单08.02”。此过程中,关键是通过轻易云数据集成平台,实现两大系统间的数据无缝对接。

本案例中的核心挑战包括如何确保旺店通·旗舰奇门数据不漏单、大量数据快速写入到金蝶云星空,以及处理接口分页和限流问题。以下内容将详细阐述这个过程的技术细节,并展示如何调用相关API以实现高效、稳定的数据传输。

首先,为了从旺店通·旗舰奇门获取所需的调拨单信息,我们使用了其提供的API接口 wdt.wms.stocktransfer.manage.querywithdetail。该接口可定时可靠地抓取最新的调拨单数据。但由于接口自身存在分页和限流机制,需要设计合理的参数设置与分页逻辑,以保证我们能够连续、高效地获取所有必要信息而不会错过任何一笔订单。

获取原始数据后,下一步则是将这些大量、多次抓取来的批量数据,尽快且准确写入到金蝶云星空。在这一环节中,我们使用了金蝶云提供的批量保存功能API batchSave。为了应对两个系统之间可能存在的数据格式差异,通过自定义映射规则,可以有效解决字段不一致的问题,同时也确保每条记录都能顺利写入目标数据库。此外,还需要考虑在实际操作过程中可能出现的一系列变量,如网络波动或者突发错误,因此设计了一套异常处理与重试机制,以提高整体流程的抗风险能力。

基于上述任务需求,在实施过程中实时监控各个步骤的数据处理状态显得尤为重要。这不仅有助于及时发现并响应潜在问题,也使整个集成流程更加透明,可以追溯每个步骤的发展情况以及具体执行结果。这些日志记录可以存储至中央日志管理系统,从而便于随时查询及审计分析。

通过以上方法,实现了从源头到终端的一体化、自动化数据信息流转,有力支持业务实行全景视图监控,进而提升运营效率与决策效率。在接下来的部分,将详细介绍具体配置步骤及代码示例,以帮助大家更好理解并应用这些技术解决方案。 如何开发钉钉API接口

调用旺店通·旗舰奇门接口wdt.wms.stocktransfer.manage.querywithdetail获取并加工数据

在数据集成的生命周期中,调用源系统接口是关键的第一步。本文将详细探讨如何通过轻易云数据集成平台配置元数据,调用旺店通·旗舰奇门接口wdt.wms.stocktransfer.manage.querywithdetail来获取并加工数据。

接口概述

接口wdt.wms.stocktransfer.manage.querywithdetail用于查询调拨单详情。该接口采用POST请求方式,主要参数包括分页参数和业务参数。以下是元数据配置的详细说明:

{
  "api": "wdt.wms.stocktransfer.manage.querywithdetail",
  "method": "POST",
  "number": "transfer_no",
  "id": "transfer_id",
  "idCheck": true,
  "request": [
    {
      "field": "pager",
      "label": "分页参数",
      "type": "object",
      "children": [
        {
          "field": "page_size",
          "label": "分页大小",
          "type": "string",
          "value": "50",
          "parent": "pager"
        },
        {
          "field": "page_no",
          "label": "页号",
          "type": "string",
          "value": "1",
          "parent": "pager"
        }
      ]
    },
    {
      "field": "params",
      "label": "业务参数",
      "type": "object",
      ...
    }
  ]
}

分页参数配置

分页参数用于控制每次请求返回的数据量和页码,以便于处理大批量数据。以下是分页参数的配置:

  • page_size: 每页返回的数据条数,默认值为50。
  • page_no: 当前请求的页码,默认值为1。
{
  ...
  {
    field: 'pager',
    label: '分页参数',
    type: 'object',
    children: [
      {
        field: 'page_size',
        label: '分页大小',
        type: 'string',
        value: '50',
        parent: 'pager'
      },
      {
        field: 'page_no',
        label: '页号',
        type: 'string',
        value: '1',
        parent: 'pager'
      }
    ]
  }
}

业务参数配置

业务参数包括时间范围、仓库编号、调拨单编号和状态等,用于过滤调拨单记录。以下是业务参数的配置:

  • start_time: 查询开始时间,使用上次同步时间({{LAST_SYNC_TIME|datetime}})。
  • end_time: 查询结束时间,使用当前时间({{CURRENT_TIME|datetime}})。
  • from_warehouse_no: 源仓库编号。
  • to_warehouse_no: 目的仓库编号。
  • transfer_no: 调拨单编号。
  • status: 调拨单状态,默认值为"80,90"(已完成)。
{
  ...
  {
    field: 'params',
    label: '业务参数',
    type: 'object',
    children: [
      {
        field: 'start_time',
        label: '开始时间',
        type: 'string',
        describe: '仓库编号',
        value: '{{LAST_SYNC_TIME|datetime}}',
        parent: 'params'
      },
      {
        field: 'end_time',
        label: '结束时间',
        type: 'string',
        describe: '入库单号',
        value: '{{CURRENT_TIME|datetime}}',
        parent: 'params'
      },
      ...
    ]
  }
}

数据请求与清洗

在调用接口获取数据后,需要对返回的数据进行清洗和转换,以便后续处理。清洗过程包括去除无效字段、格式化日期等操作。例如:

def clean_data(raw_data):
    cleaned_data = []
    for record in raw_data:
        cleaned_record = {}

        # 保留必要字段
        cleaned_record['transfer_id'] = record.get('transfer_id')

        # 格式化日期
        cleaned_record['start_time'] = format_date(record.get('start_time'))

        cleaned_data.append(cleaned_record)

    return cleaned_data

数据转换与写入

清洗后的数据需要转换为目标系统所需的格式,并写入目标数据库或系统。例如,将调拨单记录写入ERP系统:

def write_to_erp(cleaned_data):
    for record in cleaned_data:

        # 构建ERP系统所需的数据结构
        erp_record = {
            'id': record['transfer_id'],
            ...
            }

         # 写入ERP系统
         erp_api.write(erp_record)

通过以上步骤,我们实现了从旺店通·旗舰奇门接口获取调拨单详情,并对数据进行清洗和转换,为后续处理打下坚实基础。这种方法不仅提高了数据处理效率,还确保了数据的一致性和准确性。 金蝶与MES系统接口开发配置

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

在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨这一过程中的技术细节和实现方法。

数据转换与写入的主要步骤

  1. 数据请求与清洗:在这一阶段,我们从源平台获取原始数据,并进行必要的数据清洗和预处理。
  2. 数据转换与写入:将清洗后的数据按照目标平台要求的格式进行转换,并通过API接口写入目标平台。

本文重点讨论第二步,即如何将已经清洗的数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。

元数据配置解析

我们使用以下元数据配置来指导数据转换和写入过程:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 20,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{transfer_no}"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","value":"{mode}","mapping":"62e90c7673f56a75517c4e65","mappingDirection":"positive","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
    {"field":"FBizType","label":"业务类型","type":"string","describe":"下拉列表","value":"NORMAL"},
    {"field":"FTransferDirect","label":"调拨方向","type":"string","describe":"下拉列表","value":"GENERAL"},
    {"field":"FTransferBizType","label":"调拨类型","type":"string","describe":"下拉列表","value":"InnerOrgTransfer"},
    {"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
    {"field":"FSettleOrgId","label":"结算组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
    {"field":"FStockOutOrgId","label":"调出库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":100},
    {"field": "FOwnerTypeOutIdHead", "label": "调出货主类型", "type": "string", "describe": "多类别基础资料列表", "value": "BD_OwnerOrg"},
    {"field": "FOwnerOutIdHead", "label": "调出货主", "type": "string", "describe": "多类别基础资料", 
        "parser":{"name": "ConvertObjectParser", 
        "params": 
            "FNumber"}, 
        "value":
            100},
    {"field":
        "FStockOrgId",
        "label":
            "调入库存组织",
        "type":
            "string",
        "describe":
            "组织",
        "parser":{
            "name":
                "ConvertObjectParser",
            "params":
                "FNumber"
        },
        "value":
            100
    },
    {
      ...
      // 此处省略部分字段配置
      ...
      }
  ],
  ...
}

数据字段映射与解析

  1. 字段映射:例如,FBillNo字段对应的是源数据中的transfer_no,我们需要确保在转换过程中正确映射这些字段。
  2. 字段解析:某些字段需要通过特定的解析器进行处理,例如FBillTypeID字段使用了ConvertObjectParser解析器,该解析器会根据传递的参数(如FNumber)进行相应的数据转换。
  3. 固定值设置:某些字段是固定值,例如FBizType设置为NORMAL,这些值在每次请求中都是固定不变的。

数据结构调整

为了符合金蝶云星空API接口的要求,我们需要将源数据调整为目标结构。例如,明细信息(FBillEntry)是一个数组,需要包含多个子项,每个子项代表一条明细记录。我们需要确保每个子项都按照预定义的结构进行填充。

{
  ...
  {
    "field": 
        "FBillEntry",
        "label":
            "明细信息",
        "type":
            "array",
        "describe":
            1,
        "children":[
           {
              ...
              // 明细信息子项配置
              ...
              }
          ],
          ...
}

API请求构建与发送

根据元数据配置,我们构建API请求体,并通过HTTP POST方法发送请求到金蝶云星空API接口。以下是一个示例请求体:

{
  "FormId": 
      ...,
      // 表单ID配置
      ...,
  },
  ...
}

通过上述步骤,我们实现了从源平台到目标平台的数据ETL转换及写入过程。在实际操作中,我们需要根据具体需求对元数据配置和解析逻辑进行适当调整,以确保数据能够正确、完整地传输到目标平台。 用友与WMS系统接口开发配置

更多系统对接方案