从退货到入库:用友BIP与旺店通的高效对接解决方案

  • 轻易云集成顾问-林峰

旺店通·企业奇门数据集成到用友BIP的技术实践:退货入库对接YS销售出库(红字)-v

在零售和电商领域,订单管理与库存处理一度是企业信息化过程中最为关键的环节之一。在本次技术案例中,我们将详细介绍如何通过高效的数据集成,实现旺店通·企业奇门的数据与用友BIP系统之间的无缝对接。其中,退货入库对接YS销售出库(红字)-v方案将作为核心解决方案被剖析。本次集成的重点在于确保数据准确传输、快速写入以及实时监控。

具体来说,本案例主要涉及以下几项核心技术实现:

  1. 调用旺店通·企业奇门接口wdt.stockin.order.query.refund
    我们需要从今日下单并且发生退货业务的数据中提取相关的信息。通过调用wdt.stockin.order.query.refund接口,可以获取所需的订单详情及对应状态。这一步骤要求我们设置合理的分页机制,并妥善处理限流问题,以保障数据抓取过程中的稳定性。

  2. 批量集成数据到用友BIP
    在成功获取并整理好旺店通·企业奇门的数据之后,需要利用API /yonbip/scm/salesout/mergeSourceData/save 将这些数据批量写入到用友BIP系统中。此处必须特别注意两个系统之间的数据格式差异,并进行必要的数据映射工作。此外,对于异常情况,必须有完善的错误重试机制来保证操作的一致性和可靠性。

  3. 定时可靠地抓取和快速写入
    为了确保整体流程高效运作,我们使用了定时任务调度器来抓取旺店通·企业奇门接口中的最新订单。同时,通过优化数据库连接池及提高网络请求效率,大幅缩短了每一次大规模写入所需时间,从而提升整体性能。

  4. 实时监控与日志记录
    实现全程透明监管对于业务至关重要。我们通过对每个步骤进行细粒度日志记录,以及搭建先进监控面板,对整个数据处理过程进行了全面、细致、实时地追踪,从而能够迅速识别出任何潜在问题,并即时进行调整和修复。

  5. 特殊需求下定制化适配
    针对某些客户特定需求,用友BIP支持高度灵活的定制化映射规则,使得来自不同渠道多样化格式的数据都能顺利整合进统一的平台,加快决策响应速度并减少人为介入力度。

本文开篇仅以简要概述 打通企业微信数据接口

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

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

接口调用配置

首先,我们需要配置接口调用的元数据。以下是针对wdt.stockin.order.query.refund接口的具体配置:

{
  "api": "wdt.stockin.order.query.refund",
  "method": "POST",
  "number": "order_no",
  "id": "order_no",
  "pagination": {
    "pageSize": 50
  },
  "formatResponse": [
    {
      "old": "stockin_time",
      "new": "stockin_time_new",
      "format": "date"
    }
  ],
  "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":"入库单状态 10已取消20编辑中30待审核60待结算80已完成(默认查询80已完成单据)"
    },
    {
      "field":"shop_no",
      "label":"店铺编号",
      “type":"string",
      “describe":"代表店铺所有属性的唯一编码,用于店铺区分,ERP内支持自定义(ERP店铺界面设置),用于获取指定店铺单据数据信息"
    }
  ],
  “otherRequest”: [
    {
        “field”: “page_size”,
        “label”: “分页大小”,
        “type”: “string”,
        “describe”:“每页返回的数据条数,输入值范围1~50,不传本参数,输入值默认为40,使用举例单击这里”,
        “value”:“{PAGINATION_PAGE_SIZE}”
    },
    {
        “field”:“page_no”,
        “label”:“页号”,
        “type”:“string”,
        “describe”:“不传值默认从0页开始”,
        “value”:“{PAGINATION_START_PAGE}”
    }
   ]
}

请求参数说明

  • start_timeend_time: 用于增量获取数据。start_time表示开始时间,而end_time表示结束时间。这两个字段采用动态变量分别表示上次同步时间和当前时间。
  • status: 用于过滤入库单状态。默认查询状态为80,即已完成的单据。
  • shop_no: 店铺编号,用于区分不同店铺的数据。
  • page_sizepage_no: 分页参数,用于控制每次请求返回的数据条数和页码。

数据格式化与转换

在接收到原始数据后,需要对部分字段进行格式化处理。例如,将字段stockin_time重命名为stockin_time_new并转换为日期格式:

"formatResponse":[
  {
    “old”:“stockin_time”,
    “new”:“stockin_time_new”,
    “format”:“date”
  }
]

这种格式化处理可以确保后续的数据处理和分析更加规范和一致。

数据请求与清洗

通过上述配置,我们可以发起HTTP POST请求来获取退货入库订单的数据。以下是一个示例请求:

{
  “start_time”:“2023-01-01 00:00:00”,
  “end_time”:“2023-01-31 23:59:59”,
  “status”:“80”,
  “shop_no”:“SHOP1234”,
  “page_size”:50,
  “page_no”:0
}

请求成功后,将返回包含退货入库订单信息的JSON响应。我们需要对响应中的数据进行清洗和转换,以便后续写入目标系统。

数据清洗示例

假设我们收到如下响应:

{
   ”orders":[
     {
       ”order_no":"ORD12345",
       ”stockin_time":"2023-01-15T08:30:00Z"
     },
     ...
   ]
}

我们需要将其中的stockin_time字段转换为日期格式,并重命名为stockin_time_new

{
   ”orders":[
     {
       ”order_no":"ORD12345",
       ”stockin_time_new":"2023-01-15"
     },
     ...
   ]
}

通过上述步骤,我们成功地调用了旺店通·企业奇门接口并对返回的数据进行了初步加工。这些处理后的数据将为后续的数据转换与写入阶段提供坚实基础。 用友与外部系统接口集成开发

用友BIPAPI接口数据集成技术案例:退货入库对接YS销售出库(红字)

在轻易云数据集成平台中,完成数据请求与清洗后,我们需要将源平台的数据进行ETL转换,使其符合目标平台用友BIPAPI接口的要求,并最终写入目标平台。本文将详细探讨如何通过配置元数据,实现退货入库对接YS销售出库(红字)的数据集成。

API接口配置

我们使用的API接口为/yonbip/scm/salesout/mergeSourceData/save,请求方法为POST。以下是具体的元数据配置:

{
  "api": "/yonbip/scm/salesout/mergeSourceData/save",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "mergeSourceData",
      "label": "是否合并上游数据",
      "type": "string",
      "describe": "是否合并上游数据。值为true的话则sourceid:来源单据主表id,sourceautoid:来源单据行id,makeRuleCode:单据转换规则,_status:操作标识,不可为空。示例:true",
      "value": "true"
    },
    {
      "field": "vouchdate",
      "label": "单据日期",
      "type": "string",
      "describe": "单据日期 示例:2020-11-30 00:00:00",
      "value": "{{check_time|dateTime}}"
    },
    {
      "field": "warehouse",
      "label": "仓库id或编码",
      "type": "string",
      "describe": "仓库id或编码 示例:Z001",
      "value": "_findCollection find ysOutWarehouse from fa193860-6aa8-37a8-b996-a856e9a8a96f where omsOutWarehouse={warehouse_no} shopNo={shop_no} mappingType=2"
    },
    {
      ...
    }
  ],
  ...
}

数据字段解析

  1. mergeSourceData: 设置为true,表示需要合并上游数据,这意味着必须提供sourceidsourceautoidmakeRuleCode_status等字段。
  2. vouchdate: 单据日期,通过模板变量{{check_time|dateTime}}自动填充。
  3. warehouse: 仓库ID或编码,通过查找集合映射实现动态获取。
  4. bizFlowbizFlow_version: 固定值,用于标识业务流程及其版本。
  5. code: 单据编号,可以通过模板变量如 {order_no} 动态生成。
  6. bustype: 交易类型ID或编码,示例中固定为 A30001

子表字段配置

子表字段主要包括数量、来源单据主表ID、来源单据行ID等:

  1. qty: 数量,通过函数 _function {{details_list.goods_count}}*(-1) 实现负数转换,以适应红字退货场景。
  2. sourceid: 来源单据主表ID,通过 _findCollection find new_id from ... where code={src_order_no} 动态获取。
  3. sourceautoid: 来源单据行ID,通过 _mongoQuery ... findField=content.new_saleReturnDetailId where=... 动态查询。
  4. batchnogoodsposition: 如果仓库开启批次管理和货位管理,则必填。
  5. makeRuleCode: 单据转换规则,固定为 salereturnTosalesout 表示退货单生成销售出库。
  6. _status: 操作标识,固定为 Insert 表示新增操作。

数据转换与写入

在轻易云平台中,我们可以通过以下步骤实现数据转换与写入:

  1. 定义ETL规则,将源平台的数据字段映射到目标平台的字段中。
  2. 使用模板变量和函数实现动态值填充和计算,例如数量的负数转换和日期格式化。
  3. 配置API请求参数,包括主表和子表字段,以及必要的关联查询和映射规则。

通过上述配置,我们可以确保源平台的退货入库数据经过ETL处理后,能够准确无误地写入用友BIP系统,实现不同系统间的数据无缝对接。这不仅提升了数据处理效率,也保证了业务流程的连续性和一致性。 电商OMS与WMS系统接口开发配置

更多系统对接方案