接口调用与优化:盘亏数据从旺店通到用友BIP的实现方案

  • 轻易云集成顾问-钟家寿

盘亏单-p:旺店通·企业奇门数据集成到用友BIP的技术解析

在本次项目实施中,主要目标是将旺店通·企业奇门系统中的库存盘亏数据通过接口整合到用友BIP平台,以实现高效的数据同步与业务协同。本文将详细探讨这一过程中所涉及的关键技术点、具体实现步骤及常见问题解决方案。

一、确保集成过程不漏单

为了保证从旺店通·企业奇门获取的数据完整性,首先调用API wdt.stockout.order.query 定时抓取出库订单信息。这需要设置精确的定时任务来定期扫描新产生或更新的订单,并进行批量读取操作。在此基础上,我们采取增量抓取策略,仅处理自上次成功同步以来发生变化的数据,从而减轻服务器负担并提升数据传输效率。

二、大量数据快速写入到用友BIP

面对大量库存盘亏订单,需要优化写入性能以避免拥塞和卡顿。通过使用多线程异步写入机制,将从旺店通·企业奇门提取的大批量数据分段后并行发送至用友BIP。其中,每条记录都调用API /yonbip/scm/othoutrecord/single/save 完成存储操作。另外,通过设立缓存队列,可以有效缓解瞬间高并发下可能出现的问题。

三、分页与限流问题

由于旺店通·企业奇门接口对查询结果有分页限制,因此我们必须妥善处理分页逻辑。在每次接口请求中记录当前页码以及返回数量,当确认所有页面均已处理完毕后再停止请求。此外,为应对访问频率限制,可以实现在接口层面增加冷却时间或者进一步提高脚本执行延迟,以适应服务端限流策略,从而保障整个获取流程的稳定性和连续性。

上述初始准备工作为后续更深入细致的问题解决奠定了基础,在接下来的部分里,我们将探讨如何进行数据格式转换、异常重试机制以及日志监控等重要环节。 金蝶与外部系统打通接口

调用旺店通·企业奇门接口获取并加工数据

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

接口调用配置

首先,我们需要了解接口的基本配置。根据元数据配置,wdt.stockout.order.query接口采用POST方法进行调用,主要参数如下:

  • api: wdt.stockout.order.query
  • method: POST
  • number: stockout_no
  • id: stockout_no
  • pagination: 每页30条记录
  • condition:
    • stockout_reason字段包含“盘亏”
    • status字段大于等于95

请求参数详解

请求参数分为两部分:基础请求参数和其他请求参数。

基础请求参数
  1. start_timeend_time

    • 用于按最后修改时间增量获取数据。
    • 格式为yyyy-MM-dd HH:mm:ss
    • 例如:start_time={{LAST_SYNC_TIME|datetime}}, end_time={{CURRENT_TIME|datetime}}
  2. order_type

    • 出库单类型,值为7表示“其他出库”。
  3. status

    • 出库单状态,默认查已发货和已完成单据。
  4. warehouse_no

    • 仓库编号,用于区分不同仓库。
  5. src_order_no

    • 源单号。
  6. stockout_no

    • 出库单号,传该字段可以不传时间。
其他请求参数
  1. page_size

    • 每页返回的数据条数,默认值为40。
  2. page_no

    • 页号,不传值默认从0页开始。

数据清洗与转换

在获取到原始数据后,需要对其进行清洗和转换,以确保数据的准确性和一致性。以下是一些常见的数据清洗步骤:

  1. 过滤无效数据

    • 根据业务需求过滤掉不符合条件的数据,例如状态不为95或110的记录。
  2. 字段映射与转换

    • 将源系统的字段映射到目标系统所需的字段。例如,将stockout_no映射为目标系统中的出库单号。
  3. 格式化日期时间

    • 确保所有日期时间字段格式一致,以便后续处理和分析。
  4. 去重处理

    • 如果同一条记录多次出现,需要进行去重处理,以避免重复数据影响业务决策。

数据写入

清洗和转换后的数据需要写入目标系统。这一步通常包括以下操作:

  1. 批量插入

    • 将处理好的数据批量插入到目标数据库,提高写入效率。
  2. 日志记录

    • 记录每次数据处理的日志,包括成功和失败的记录,以便后续追踪和排查问题。
  3. 异常处理

    • 对于写入过程中出现的异常情况,需要有相应的处理机制,例如重试或报警通知。

通过以上步骤,我们可以高效地调用旺店通·企业奇门接口获取盘亏单数据,并进行必要的数据清洗和转换,最终实现数据的无缝对接。这不仅提高了业务透明度,也极大提升了工作效率。 如何开发金蝶云星空API接口

数据集成与ETL转换:用友BIPAPI接口配置案例

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,使其符合目标平台用友BIPAPI接口所能够接收的格式,最终写入目标平台。本文将详细探讨如何利用轻易云数据集成平台实现这一过程。

API接口配置

我们需要将数据通过POST方法提交到用友BIP的/yonbip/scm/othoutrecord/single/save接口。以下是具体的元数据配置:

{
  "api": "/yonbip/scm/othoutrecord/single/save",
  "method": "POST",
  "idCheck": true,
  "BIPAudit": "/yonbip/scm/othoutrecord/batchaudit",
  "request": [
    {
      "field": "resubmitCheckKey",
      "label": "保证请求的幂等性",
      "type": "string",
      "describe": "该值由客户端生成",
      "value": "{order_no}"
    },
    {
      "field": "code",
      "label": "单据编号",
      "type": "string",
      "describe": "以系统编码规则配置为准,系统设置为手工编号时必输,系统设置为自动编号时非必输;更新操作时必填    例:QTCK0000001",
      "value": "{order_no}"
    },
    {
      // ... (其他字段省略)
    }
  ]
}

数据清洗与转换

在实际操作中,我们需要对源平台的数据进行清洗和转换,以确保其符合目标平台的要求。以下是几个关键字段及其处理方式:

  1. 幂等性检查键 resubmitCheckKey

    • 使用订单号 {order_no} 作为唯一标识,确保每次请求都是幂等的。
  2. 单据编号 code

    • 根据系统编码规则配置,如果是手工编号则必填,使用 {order_no}
  3. 库存组织 org会计主体 accountOrg

    • 使用 _findCollection 方法从特定表中查找对应的 org_code,例如:
      _findCollection find org_code from 4f73f755-1c4f-33e6-b5a1-7e3b8d894800 where code={warehouse_no}
  4. 单据日期 vouchdate

    • 格式化日期为 yyyy-MM-dd,例如 {consign_time}
  5. 其他出库单子表 othOutRecords

    • 子表字段包括物料、物料SKU、批次号、生产日期、有效期至、应发数量、件数、主计量单位等。
    • 示例:
      {
      "field": "product",
      "label": "物料",
      "type": "string",
      "describe": "传入id或code    例:PD0817000001",
      "value": "{{details_list.goods_no}}"
      }

子表数据处理

对于子表中的数据,需要特别注意以下几点:

  1. 物料信息

    • 使用物料编码 {details_list.goods_no} 和 SKU {details_list.spec_no}
  2. 数量和件数

    • 应发数量和件数均使用 {details_list.goods_count}
  3. 主计量单位和库存单位

    • 使用 _findCollection 方法查找对应的单位编码,例如:
      _findCollection find code from f9eedcc9-f1ff-31c0-9081-6aee9cf21740 where name={goods_unit}
  4. 备注信息

    • 在子表中添加备注信息 {details_list.remark}

提交与审核

完成数据清洗与转换后,将数据提交到用友BIPAPI接口,并调用审核接口 /yonbip/scm/othoutrecord/batchaudit 完成审核流程。

{
  // 提交请求示例
  // ...
}

// 调用审核接口
{
  // 审核请求示例
  // ...
}

通过上述步骤,我们可以实现源平台数据到目标平台用友BIPAPI接口的数据转换和写入。这一过程不仅提高了数据处理效率,还确保了数据的一致性和准确性。 用友与CRM系统接口开发配置

更多系统对接方案