用友BIPAPI接口在数据集成生命周期中的应用

  • 轻易云集成顾问-何语琴

退换货生成销售退货(线下)-v: 旺店通·企业奇门数据集成到用友BIP

在本案例中,我们探讨了如何高效、准确地实现旺店通·企业奇门系统与用友BIP之间的数据集成,具体是将退换货信息生成销售退货单。为了确保数据无缝对接,并能实时监控处理过程,我们采用了一整套优化方案。

首先,通过调用旺店通·企业奇门的API wdt.refund.query,我们能够定时可靠地抓取最新的退还信息。这一过程不仅保证了数据不漏单,更大幅提升了业务操作的透明度和效率。在此基础上,为了解决大量数据快速写入到用友BIP的问题,我们专门设计了一种批量集成机制。

然而,在实际实施过程中,分页和限流问题常常成为挑战。我们通过设置合理的分页参数以及使用错峰请求策略,有效地避免了接口调用过于频繁而导致的性能瓶颈。此外,由于旺店通与用友BIP的数据格式存在差异,我们通过中间层进行细致的数据映射转换,以确保每一条记录都能正确写入目标系统。使用 /yonbip/sd/vouchersalereturn/singleSave API 完成数据保存操作,每步都经过严密测试与配置验证。

另一个关键点在于错误重试机制与异常处理。为应对网络波动或接口临时不可用等情况,本方案引入了智能重试逻辑,以及详细完善的日志记录功能,使得任何异常状况都能被迅速定位并解决。此外,还包括自定义对接规则,用以满足特定业务需求,显著提高系统整体稳定性和可维护性。

这次技术落地案例展示的不仅是一个高效的数据迁移方案,还体现出定制化、多维度对接策略如何促进企业运营水平质变提升。 金蝶云星空API接口配置

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

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

接口调用配置

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

{
  "api": "wdt.refund.query",
  "method": "POST",
  "number": "refund_no",
  "id": "refund_id",
  "pagination": {
    "pageSize": 40
  },
  "idCheck": true,
  "beatFlat": ["refund_order_list"],
  "condition": [
    [{"field":"shop_no","logic":"eq","value":"063"},{"field":"process_status","logic":"egt","value":"70","strictMode":true},{"field":"type","logic":"eq","value":2}],
    ...
    [{"field":"shop_no","logic":"eq","value":"171"},{"field":"process_status","logic":"egt","value":"70","strictMode":true},{"field":"type","logic":"eq","value":3}]
  ],
  "request": [
    {"field":"process_status","label":"退换单处理状态","type":"string"},
    {"field":"time_type","label":"时间类型","type":"string"},
    {"field":"start_time","label":"开始时间","type":"string"},
    {"field":"end_time","label":"结束时间","type":"string"},
    {"field":"page_size","label":"分页大小","type":"string"},
    {"field":"shop_no","label":"店铺编号","type":"string"},
    {"field":"page_no","label":"页号","type":"string"},
    {"field":"refund_no","label":"Erp内退换单编号","type":"string"},
    {"field":"src_refund_no","label":"平台原始退换单号","type":"string"},
    {"field":"trade_no","label":"系统订单编号","type":"string"},
    {"field":"tid","label":"原始单号","type":"string"}
  ]
}

请求参数设置

在请求参数中,关键字段包括start_timeend_time,用于按时间增量获取数据。以下是具体的请求参数示例:

{
  "process_status": "70",
  "time_type": "0",
  "start_time": "{{LAST_SYNC_TIME|datetime}}",
  "end_time": "{{CURRENT_TIME|datetime}}",
  "page_size": "{PAGINATION_PAGE_SIZE}",
  "shop_no": "063"
}

数据清洗与转换

在获取到原始数据后,需要对数据进行清洗和转换。以下是一些常见的数据清洗与转换操作:

  1. 字段映射:将源系统中的字段映射到目标系统中的字段。例如,将refund_no映射为目标系统中的return_order_number
  2. 数据格式转换:将日期格式从字符串转换为标准日期格式。
  3. 过滤无效数据:移除不符合业务规则的数据,例如处理状态不等于70的数据。

数据写入

经过清洗和转换后的数据,需要写入到目标系统中。在轻易云平台上,可以通过配置相应的写入接口实现这一过程。例如,将清洗后的退换货数据写入到ERP系统中的销售退货模块。

实时监控与日志记录

为了确保数据集成过程的透明性和可追溯性,实时监控和日志记录是必不可少的。通过轻易云平台提供的监控工具,可以实时查看每个环节的数据流动和处理状态,并记录详细的操作日志,以便于后续的审计和问题排查。

总结

通过以上步骤,我们可以高效地调用旺店通·企业奇门接口wdt.refund.query获取退换货数据,并进行相应的数据清洗、转换和写入操作。这不仅提升了业务处理效率,还确保了数据的一致性和准确性。在实际应用中,根据具体业务需求,可以进一步优化和定制这些操作流程。 用友与WMS系统接口开发配置

数据集成生命周期中的ETL转换:用友BIPAPI接口应用

在数据集成生命周期的第二步中,关键任务是将已经集成的源平台数据进行ETL转换,使其符合目标平台——用友BIPAPI接口所能接收的格式,并最终写入目标平台。以下是具体操作步骤和技术细节。

接口配置与数据映射

首先,我们需要配置接口及其相关字段,以确保数据能够正确传输到用友BIP系统。以下是接口配置的元数据:

{
  "api": "/yonbip/sd/vouchersalereturn/singleSave",
  "method": "POST",
  "idCheck": true,
  "BIPAudit": "/yonbip/sd/vouchersalereturn/approve",
  "operation": {
    "method": "merge",
    "field": "refund_no",
    "bodyName": "refund_order_list",
    "bodySum": ["refund_order_list_refund_num", "refund_order_list_refund_order_amount"],
    "header": ["refund_no", "shop_no", "remark", "modified", "actual_refund_amount", "warehouse_no", "tid"],
    "body": ["refund_order_list_spec_no", "refund_order_list_refund_num", 
             "refund_order_list_refund_order_amount", 
             "refund_order_list_oid", 
             "refund_order_list_tid", 
             "refund_order_list_order_id", 
             "refund_order_list_wdttax_rate", 
             "refund_order_list_remark"]
  },
  ...
}

请求参数设置

在请求参数设置部分,我们需要确保每个字段都映射到相应的数据源字段,并且格式正确。例如:

  • resubmitCheckKey 用于保证请求的幂等性,值为 {refund_no}
  • code 为单据编码,值为 {refund_no}
  • salesOrgId 销售组织,通过 _findCollection 方法从映射表中获取。
  • transactionTypeId 固定值为 "1480261131563434158"

以下是部分请求参数配置示例:

[
  {
    "field": "resubmitCheckKey",
    ...
    "value": "{refund_no}"
  },
  {
    ...
    "value": "_findCollection find mapping_sale_org from ... where shop_no={shop_no}"
  },
  ...
]

数据清洗与转换

在ETL过程中,数据清洗和转换是核心步骤。我们需要确保源数据经过清洗后,符合目标系统的要求。例如,对于退款订单列表中的每一项,需要计算税额、含税金额等字段,并进行相应的转换。

{
  ...
  {
    ...
    "field": "oriTaxUnitPrice",
    ...
    // 含税成交价计算公式
    // round((round(退款订单金额,2) / 退款数量),2)
    // 示例:_function round((round({{refund_order_list.refund_order_list_refund_order_amount}},2)/{{refund_order_list.refund_order_list_refund_num}}),2)
  },
  {
    ...
    // 无税单价计算公式
    // round((round(退款订单金额,2) / (1+税率)),2)
    // 示例:_function round((round({{refund_order_list.refund_order_list_refund_order_amount}},2)/(1+{{refund_order_list.refund_order_list_wdttax_rate}})),2)
  }
}

数据写入目标平台

完成数据清洗和转换后,我们将处理后的数据通过POST请求写入用友BIP系统。为了确保操作成功,需要进行幂等性检查和审核操作。

{
  ...
  // POST请求发送处理后的数据
}

审核与确认

最后一步是调用审核接口 /yonbip/sd/vouchersalereturn/approve 确认退货单据。

{
  ...
  // 调用审核接口确认退货单据
}

通过以上步骤,我们实现了从源平台到用友BIP系统的数据ETL转换和写入,确保每个环节的数据准确性和一致性。这不仅提高了业务透明度,还大大提升了整体效率。 用友与MES系统接口开发配置

更多系统对接方案