利用轻易云平台将源数据转化写入金蝶云星空的实现方法

  • 轻易云集成顾问-黄宏棵

重跑数据/分销—旺店通销售出库单=>金蝶销售出库单(补货+换货)技术案例分享

在现代企业的日常运营中,不同系统之间的数据对接与集成是确保业务流程顺畅、高效运行的重要环节。本文将重点介绍如何通过轻易云数据集成平台,将旺店通·企业奇门中的销售出库单数据无缝同步到金蝶云星空,实现补货和换货功能。

背景描述 在该项目中,我们需要解决一个常见且具有挑战性的需求:如何确保来自旺店通·企业奇门的大量销售出库单能够准确、及时地写入到金蝶云星空系统中,并在过程中实现高吞吐量的数据处理,保证不漏单、不重单。

技术细节

  1. 接口调用与数据抓取

    • 首先,通过调用 wdt.stockout.order.query.trade API 接口,从旺店通·企业奇门获取最新的销售出库单。这一步骤需要考虑接口的分页和限流问题,以避免影响源系统性能。
  2. 数据转换与映射

    • 旺店通·企业奇门和金蝶云星空系统在数据结构上可能存在差异。因此,利用轻易云平台提供的自定义数据转换逻辑,对抓取到的数据进行必要的格式化处理,使其符合目标系统 batchSave API 的要求。
  3. 批量写入与监控机制

    • 通过轻易云平台强大的高吞吐量数据写入能力,将大量已转换的数据快速而可靠地导入至金蝶云星空。此外,为确保整个过程无误,还设置了实时监控和告警机制,对每一次数据传输任务进行跟踪并记录日志,便于及时发现并处理异常情况。
  4. 错误重试与异常处理

    • 在实际操作中,由于网络波动或服务端限制等原因,可能会遇到部分请求失败的情况。对此,我们设计了健壮的错误重试机制,通过捕获具体异常类型后自动重新发送请求,以最大程度提高整体成功率,减少人为干预工作量。
  5. 集中管理API资产

    • 同时,为帮助运维人员全面掌握API使用情况,我们利用统一视图控制台功能,对所有涉及此次对接项目中的API资产进行集中管理,实现资源优化配置,提高整体运作效率。

以上步骤涵盖了从初始配置、接口调用,到最后的数据存储及监控等全生命周期的重要环节。这种基于实际案例的方法不仅增强了理解,也为类似场景提供了可行性参考。在下一部分内容里,我们将深入探讨这些步骤 数据集成平台API接口配置

使用旺店通·企业奇门接口wdt.stockout.order.query.trade获取并加工数据

在数据集成生命周期的第一步,我们需要从源系统获取数据。本文将详细介绍如何使用旺店通·企业奇门接口wdt.stockout.order.query.trade来实现这一目标,并对数据进行初步加工。

接口调用配置

首先,我们需要配置接口调用的元数据。以下是我们使用的元数据配置:

{
  "api": "wdt.stockout.order.query.trade",
  "effect": "QUERY",
  "method": "POST",
  "number": "order_no",
  "id": "stockout_id",
  "idCheck": true,
  "request": [
    {"field": "start_time", "label": "开始时间", "type": "datetime", "describe": "增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{LAST_SYNC_TIME|datetime}}"},
    {"field": "end_time", "label": "结束时间", "type": "datetime", "describe": "增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss", "value": "{{CURRENT_TIME|datetime}}"},
    {"field": "status", "label": "状态", "type":"string", "describe":"5已取消,55已审核,95已发货,105 部分打款,110已完成,113:异常发货","value":"110"},
    {"field":"src_order_no","label":"系统订单编号","type":"string","describe":"111"},
    {"field":"src_tid","label":"原始单号","type":"string","describe":"111"},
    {"field":"stockout_no","label":"出库单号","type":"string","describe":"111"},
    {"field":"shop_no","label":"店铺编号","type":"string","describe":"代表店铺所有属性的唯一编码,用于店铺区分,ERP内支持自定义(ERP店铺界面设置),用于获取指定店铺单据数据信息"},
    {"field":"warehouse_no","label":"仓库编号","type":"string","describe":"代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置),用于获取指定仓库单据数据信息(不支持一次推送多个仓库编号)"},
    {"field":"FSaleDeptID","label":"销售部门","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"}}
  ],
  "otherRequest":[
    {"field":"page_size","label":"分页大小","type":"string","describe":"每页返回的数据条数,输入值范围1~100,不传本参数,输入值默认为40,使用举例单击这里","value":"{PAGINATION_PAGE_SIZE}"},
    {"field":"page_no","label":"页号","type":"string","describe":"不传值默认从0页开始","value":"{PAGINATION_START_PAGE}"}
  ],
  "autoFillResponse": true,
  "condition":[
    [{"field": "trade_type", "logic": "in", "value": "2,3,7,101,8"}, 
     {"field": "shop_name", "logic": "eqv2", "value": "'系统分销店铺ae89e42'"}]
  ]
}

请求参数详解

  • start_timeend_time:用于增量获取数据,这两个字段分别表示开始时间和结束时间。
  • status:状态码为110表示已完成的订单。
  • src_order_nosrc_tidstockout_no:这些字段用于标识订单和出库单的相关信息。
  • shop_nowarehouse_no:分别表示店铺编号和仓库编号,用于区分不同的店铺和仓库。
  • FSaleDeptID:销售部门,通过ConvertObjectParser解析为具体的部门编号。

分页参数包括:

  • page_size:每页返回的数据条数。
  • page_no:当前请求的页号。

数据请求与清洗

在调用接口时,我们需要注意以下几点:

  1. 增量同步机制:通过start_timeend_time字段实现增量同步,这样可以确保每次只获取最新的数据。
  2. 状态过滤:通过status字段过滤出已完成的订单,这样可以减少无效数据的处理。
  3. 分页处理:由于接口返回的数据可能较多,我们需要通过分页参数来控制每次请求的数据量。

示例请求体如下:

{
  “start_time”: “2023-10-01 00:00:00”,
  “end_time”: “2023-10-01 23:59:59”,
  “status”: “110”,
  “page_size”: “50”,
  “page_no”: “0”
}

数据转换与写入

在获取到原始数据后,需要对其进行初步清洗和转换,以便后续写入目标系统。常见的数据清洗操作包括:

  1. 字段映射与重命名:将源系统中的字段映射到目标系统中的相应字段,并进行必要的重命名。
  2. 数据类型转换:确保所有字段的数据类型符合目标系统的要求,例如日期格式、数字精度等。
  3. 异常数据处理:过滤掉不符合业务规则或存在异常的数据记录。

例如,将源系统中的出库单号映射到目标系统中的订单号,并将日期格式转换为标准格式:

{
   “order_id”: “{{stockout_no}}”,
   “order_date”: “{{stockout_date|date('yyyy-MM-dd')}}”
}

通过以上步骤,我们可以高效地从旺店通·企业奇门接口中获取并加工所需的数据,为后续的数据集成工作打下坚实基础。 如何对接金蝶云星空API接口

利用轻易云数据集成平台实现ETL转换并写入金蝶云星空API接口

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,并最终写入目标平台——金蝶云星空。本文将详细探讨如何利用轻易云数据集成平台配置元数据,实现这一过程。

API接口配置

我们需要配置一个名为batchSave的API接口,使用POST方法进行数据传输。以下是具体的元数据配置:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "FBillTypeID",
      "label": "单据类型",
      "type": "string",
      "describe": "单据类型",
      "value": "_function CASE {trade_type} WHEN '2' THEN 'ZYD-017' WHEN '3' THEN 'ZYD-104' WHEN '7' THEN 'ZYD-105' WHEN '8' THEN 'ZYD-105' WHEN '101' THEN 'ZYD-103' END",
      "parser": {
        "name": "ConvertObjectParser",
        "params": "FNUMBER"
      }
    },
    {
      "field": "FBillNo",
      "label": "单据编号",
      "type": "string",
      "describe": "单据编号",
      "value": "{order_no}"
    },
    {
      ...
    }
  ],
  ...
}

数据字段解析与转换

  1. 单据类型 (FBillTypeID)

    • 使用条件语句根据trade_type字段的值确定单据类型。
    • 示例:当trade_type2时,单据类型为ZYD-017
    • 使用ConvertObjectParser解析器,将其转换为金蝶系统识别的编码格式。
  2. 单据编号 (FBillNo)

    • 直接映射源数据中的order_no字段。
  3. 日期 (FDate)

    • 映射源数据中的consign_time字段。
  4. 销售组织 (FSaleOrgId)

    • 根据不同的店铺编号(如E0029、E0030等)映射到相应的销售组织编码。
    • 使用条件语句和解析器进行转换。
  5. 客户 (FCustomerID)

    • 映射源数据中的fenxiao_nick字段,并通过解析器将其转换为金蝶系统识别的编码格式。
    • 配置了正向映射,确保目标系统能正确识别该客户信息。
  6. 发货组织 (FStockOrgId)

    • 类似于销售组织,根据店铺编号映射到相应的发货组织编码,并使用解析器进行转换。
  7. 销售部门 (FSaleDeptID)

    • 映射源数据中的fenxiao_nick字段,通过解析器和正向映射确保目标系统识别。
  8. 物料明细 (FEntity)

    • 包含多个子字段,如物料编码、仓库、计价数量、价税合计、总毛重和批次号等。
    • 每个子字段都需要进行相应的数据映射和解析。例如,物料编码(FMaterialID)使用源数据中的spec_no字段,通过解析器转换为金蝶系统识别的编码格式。

其他请求参数配置

除了主要的数据字段外,还需要配置一些其他请求参数:

{
  ...
  "otherRequest": [
    {
      ...
    },
    {
      ...
    }
  ],
  ...
}

这些参数包括表单ID(FormId)、操作类型(Operation)、是否自动提交和审核(IsAutoSubmitAndAudit)等。这些参数确保了在写入目标平台时,能够正确执行相应的操作。

操作方法

最后,我们定义操作方法为批量保存(batchArraySave),每次处理20条记录:

{
  ...
  "operation": {
    ...
    "rowsKey": "array",
    ...
    "rows": 20,
    ...
    ...
  }
}

通过上述配置,我们可以实现从源平台到金蝶云星空的数据ETL转换,并成功写入目标平台。这不仅提高了数据处理效率,也确保了各个系统间的数据一致性和准确性。 金蝶与外部系统打通接口

更多系统对接方案