从旺店通到金蝶云星辰:销售订单数据自动化集成指南

  • 轻易云集成顾问-张妍琪

销售订单集成案例分享:旺店通·企业奇门数据对接金蝶云星辰V2

在本篇技术文章中,我们将深入探讨如何通过轻易云数据集成平台,实现旺店通·企业奇门到金蝶云星辰V2的销售订单数据无缝对接。本次案例重点放在API接口相关的技术实现及其细节处理上,确保每一个环节从抓取到存储都高效、可靠。

首先,为确保从旺店通·企业奇门获取的数据不漏单,并能够定时可靠地进行抓取,我们使用了wdt.trade.query API接口。该接口支持分页查询,以应对大批量数据提取时可能出现的限流问题。在实际应用中,通过设置合理的分页参数和请求频率,我们有效避免了因限流导致的数据丢失或延迟。

紧接着,我们需要将大量销售订单信息快速写入到金蝶云星辰V2。这里我们主要使用了其提供的API /jdy/v2/scm/sal_order。为了保证写入速度和准确性,我们采用批量集成的方法,一次性提交多条记录。这不仅显著提高了处理效率,还减少了网络传输中的开销。

考虑到两大系统之间的数据格式差异,对于每个字段进行了详细映射与转换。例如,旺店通中的某些字段名和格式与金蝶云存在不一致之处,这要求我们在中间层做灵活且精准的数据转换。同时,还特别注意处理异常情况,如网络故障或接口返回错误等,通过设计健全的重试机制,保障整个对接过程稳健运行。

最后,不容忽视的是实时监控与日志记录。这对于预防问题以及排查故障至关重要。在整个集成过程中,每一步操作都被详细记录,并设置告警通知机制。一旦检测到异常状况,可以即时响应并快速纠正,从而最大限度地保证业务连续性和数据完整性。

通过这些精心设计与实现,本方案成功解决了跨系统销售订单数据同步的问题,为后续业务运作打下坚实基础。以下章节将具体讲解各个步骤中的技术细节及优化技巧。 泛微OA与ERP系统接口开发配置

调用源系统旺店通·企业奇门接口wdt.trade.query获取并加工数据

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

接口调用配置

首先,我们需要配置接口调用的元数据。根据提供的元数据配置,wdt.trade.query接口的请求方法为POST,主要参数包括订单状态、时间范围、订单编号等。以下是具体的请求参数配置:

{
  "api": "wdt.trade.query",
  "effect": "QUERY",
  "method": "POST",
  "number": "{trade_no}",
  "id": "{trade_id}",
  "name": "{trade_no}",
  "request": [
    {
      "field": "status",
      "label": "订单状态",
      "type": "string",
      "describe": "订单状态 如果不传该字段则查询所有订单   (传该字段:5已取消 10待付款 12待尾款 13待选仓 15等未付16延时审核 19预订单前处理 20前处理(赠品,合并,拆分)21委外前处理22抢单前处理 25预订单 27待抢单 30待客审 35待财审 40待递交仓库 45递交仓库中 50已递交仓库 53未确认 55已确认(已审核) 95已发货 105部分打款 110已完成 113异常发货)",
      "value": "55"
    },
    {
      "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}}"
    },
    {
      ...
    }
  ],
  ...
}

请求参数详解

  1. status(订单状态): 用于筛选特定状态的订单,例如“55”表示已确认(已审核)的订单。
  2. start_time 和 end_time(开始和结束时间): 按照最后修改时间增量获取数据,用于实现数据的增量同步。
  3. src_tid, trade_no, shop_no, warehouse_no 等: 用于进一步细化查询条件,例如指定店铺编号、仓库编号等。

数据请求与清洗

在发送请求后,我们将接收到一组原始的销售订单数据。这些数据通常包含多个字段,如订单编号、商品信息、客户信息等。在轻易云平台上,可以通过内置的数据清洗工具对这些原始数据进行预处理,包括但不限于以下操作:

  1. 字段映射: 将源系统中的字段映射到目标系统中的标准字段。例如,将trade_no映射到目标系统中的order_number
  2. 格式转换: 将日期格式从yyyy-MM-dd HH:mm:ss转换为目标系统所需的格式。
  3. 过滤无效数据: 移除不符合业务规则的数据,例如缺少关键字段的数据记录。

数据转换与写入

经过清洗后的数据需要进一步转换,以适应目标系统的数据结构和业务逻辑。这一步通常包括以下操作:

  1. 合并与拆分: 根据业务需求,将多个记录合并为一条记录或将一条记录拆分为多条记录。
  2. 计算派生字段: 根据已有字段计算出新的派生字段,例如根据商品数量和单价计算总金额。
  3. 校验与补全: 对关键字段进行校验,并根据业务规则补全缺失的信息。

最终,将转换后的数据写入目标系统,实现销售订单的无缝对接。

通过上述步骤,我们可以高效地利用轻易云平台实现旺店通·企业奇门接口的数据集成,为后续的数据分析和业务决策提供可靠的数据支持。 金蝶与外部系统打通接口

利用轻易云数据集成平台进行ETL转换并写入金蝶云星辰V2API接口

在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,并将其转为目标平台所能够接收的格式。本文将深入探讨如何利用轻易云数据集成平台,将销售订单数据转换为金蝶云星辰V2API接口所需的格式,并最终写入目标平台。

API接口元数据配置解析

首先,我们需要理解元数据配置的各个字段及其意义:

{
  "api": "/jdy/v2/scm/sal_order",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field":"bill_date","label":"订单日期","type":"string","describe":"销售订单日期","value":"{modified}"},
    {"field":"bill_no","label":"订单编码","type":"string","describe":"销售订单编码","value":"{trade_no}"},
    {"field":"remark","label":"单据备注","type":"string","describe":"备注","value":"{cs_remark}"},
    {"field":"customer_number","label":"客户编码","type":"string","describe":"单据来源","value":"{shop_no}"},
    {"field":"operation_key","label":"操作类型","type":"string","value":"audit"},
    {
      "field": "custom_field",
      "label": "custom_field",
      "type": "object",
      "children": [
        {
          "field": "custom_field__4__2obgp309axx5_number",
          "label": "项目",
          "type": "string",
          "value": "{shop_no}",
          "mapping": {"target": "6346756ace37e607e17f1072", "direction": "positive"}
        }
      ]
    },
    {
      "field": "material_entity",
      "label": "分录明细",
      "type": "array",
      "describe": "分录明细",
      "value": "goods_list",
      ...
    }
  ]
}

数据字段映射与转换

  1. 基本字段映射

    • bill_date 对应 销售订单日期,取值 {modified}
    • bill_no 对应 销售订单编码,取值 {trade_no}
    • remark 对应 单据备注,取值 {cs_remark}
    • customer_number 对应 客户编码,取值 {shop_no}
    • operation_key 固定为 "audit"
  2. 自定义字段

    • custom_field 是一个嵌套对象,其中包含一个子字段 custom_field__4__2obgp309axx5_number,其值为 {shop_no}。该字段还包含一个映射配置,用于指定目标系统中的具体位置。
  3. 分录明细(material_entity)

    • material_entity 是一个数组,每个元素包含多个子字段,例如:
      • material_number: 对应物料编码,取值为 {{goods_list.goods_no}}
      • stock_id: 仓库ID,通过 _mongoQuery 查询获取。
      • qty: 数量,对应 {{goods_list.num}}
      • unit_id: 单位,通过 _mongoQuery 查询获取。
      • tax_price: 单价,通过 _function round({{goods_list.share_amount}}/{{goods_list.num}},6) 计算得出。

实际操作步骤

  1. 提取数据:从源系统提取销售订单数据,这一步通常由轻易云平台自动完成。

  2. 转换数据:根据上述元数据配置,对提取的数据进行转换。例如:

    {
     ...
     "bill_date": data.modified,
     ...
     // 自定义字段
     custom_field: {
       custom_field__4__2obgp309axx5_number: data.shop_no
     },
     // 分录明细
     material_entity: data.goods_list.map(item => ({
       material_number: item.goods_no,
       stock_id: getStockId(item.warehouse_no), // 调用_mongoQuery查询
       qty: item.num,
       unit_id: getUnitId(item.goods_no), // 调用_mongoQuery查询
       tax_price: round(item.share_amount / item.num, 6),
       cess: '13'
     }))
    }
  3. 加载数据:将转换后的数据通过POST请求发送到金蝶云星辰V2API接口 /jdy/v2/scm/sal_order。例如:

    const axios = require('axios');
    
    axios.post('/jdy/v2/scm/sal_order', transformedData)
        .then(response => console.log('Data loaded successfully:', response.data))
        .catch(error => console.error('Error loading data:', error));

总结

通过对元数据配置的深入理解和应用,我们可以高效地将源系统的数据转换为目标系统所需的格式,并成功写入金蝶云星辰V2API接口。这不仅提高了业务流程的透明度和效率,还确保了不同系统之间的数据无缝对接。 用友与SCM系统接口开发配置

更多系统对接方案