轻松实现用友BIP与旺店通数据集成的技术方案
用友BIP数据集成到旺店通·企业奇门的技术案例分享
在本次技术案例中,我们将探讨如何通过轻易云数据集成平台,将用友BIP系统中的采购订单(红字)数据高效地集成到旺店通·企业奇门的采购退料单中。该方案不仅需要确保数据的准确性和时效性,还需处理两大系统之间的数据格式差异和接口调用问题。
首先,针对用友BIP系统,我们使用其提供的API接口/yonbip/scm/purchaseorder/list
来定时可靠地抓取采购订单(红字)数据。为了保证大量数据能够快速写入到旺店通·企业奇门,我们利用了其高吞吐量的数据写入能力,通过API接口wdt.purchase.return.push
实现批量数据的推送。
在整个集成过程中,轻易云平台提供了强大的可视化数据流设计工具,使得我们能够直观地设计和管理数据流动。同时,集中监控和告警系统实时跟踪每个集成任务的状态和性能,确保任何异常情况都能被及时发现并处理。此外,为了适应特定业务需求,我们还支持自定义的数据转换逻辑,以解决用友BIP与旺店通·企业奇门之间的数据格式差异问题。
通过这些技术手段,不仅提升了业务透明度和效率,也确保了整个集成过程中的数据质量和稳定性。在接下来的章节中,我们将详细介绍具体的实施步骤及关键技术点。
调用用友BIP接口/yonbip/scm/purchaseorder/list获取并加工数据
在轻易云数据集成平台的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云平台调用用友BIP接口/yonbip/scm/purchaseorder/list
,并对获取的数据进行加工处理。
API接口配置与请求参数
首先,我们需要配置API接口及其请求参数。根据元数据配置,可以确定以下关键参数:
- API路径:
/yonbip/scm/purchaseorder/list
- 请求方法:POST
- 分页参数:
pageIndex
和pageSize
- 过滤条件:通过
simpleVOs
字段传递多个查询条件 - 排序字段:通过
queryOrders
字段指定排序规则
具体的请求参数如下:
{
"pageIndex": "1",
"pageSize": "1000",
"isSum": "false",
"simpleVOs": [
{
"field": "totalQuantity",
"op": "elt"
},
{
"field": "auditTime",
"op": "egt",
"value1": "{{LAST_SYNC_TIME|datetime}}"
},
{
"field": "org",
"op": "neq",
"value1": "1553156871271481351"
}
],
"queryOrders": [
{
"field": "id",
"order": "asc"
}
]
}
数据格式转换与映射
在获取到采购订单数据后,需要对其进行格式转换和映射,以便后续处理。根据元数据配置,我们需要将原始字段名转换为新的字段名,并确保所有字段类型一致。例如:
id
转换为new_id
purchaseOrders_id
转换为new_purchaseOrders_id
headFreeItem.define1
转换为new_headFreeItem
vendor
转换为new_vendor
warehouse
转换为new_warehouse
这种映射可以通过轻易云平台提供的自定义数据转换逻辑来实现,确保每个字段都能正确匹配目标系统的要求。
数据清洗与质量监控
为了保证数据质量,在数据获取和转换过程中,需要进行必要的数据清洗和质量监控。轻易云平台支持多种数据质量监控机制,包括异常检测、重复记录检查等。例如,对于分页返回的数据,需要确保没有漏单情况发生,这可以通过以下步骤实现:
- 分页处理:逐页请求采购订单列表,直到所有页面的数据都被获取。
- 去重检查:对每一页返回的数据进行去重操作,避免重复记录。
- 异常检测:实时监控每次API调用的状态,如果出现错误或超时情况,及时触发告警并进行重试。
实时监控与日志记录
在整个数据集成过程中,实时监控和日志记录是不可或缺的一部分。轻易云平台提供了集中化的监控和告警系统,可以实时跟踪每个集成任务的状态和性能。例如,通过日志记录,可以详细追踪每次API调用的响应时间、返回结果以及可能出现的问题,从而快速定位并解决问题。
总结
通过以上步骤,我们成功地调用了用友BIP接口 /yonbip/scm/purchaseorder/list
, 并对获取的数据进行了有效的加工处理。这不仅提高了数据集成效率,还保证了数据质量,为后续的数据写入和业务应用打下坚实基础。在实际应用中,根据具体业务需求,还可以进一步优化这些流程,以实现更高效、更可靠的数据集成。
数据转换与写入:轻易云数据集成平台对接旺店通·企业奇门API接口
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台所能接收的格式。本文将详细探讨如何通过轻易云数据集成平台,将采购订单(红字)数据转换为采购退料单,并写入目标平台旺店通·企业奇门API接口。
ETL转换过程中的关键步骤
-
数据清洗与标准化:首先,需要对从源系统获取的数据进行清洗和标准化处理。确保数据的完整性和一致性,这是后续ETL操作的基础。
-
字段映射与转换:根据元数据配置文件中的字段映射规则,将源系统的数据字段映射到目标系统所需的字段格式。例如,供应商编号
vendor_code
需要映射到目标字段provider_no
。 -
自定义转换逻辑:在某些情况下,需要根据业务需求进行特定的逻辑处理。例如,将退货数量取负值以符合旺店通·企业奇门API的要求。
数据转换示例
根据提供的元数据配置,我们可以看到具体字段的映射和转换规则。以下是几个关键字段的转换示例:
-
供应商编号
- 源系统字段:
vendor_code
- 目标系统字段:
provider_no
- 转换规则:直接映射
"provider_no": "{vendor_code}"
- 源系统字段:
-
外部单号
- 源系统字段:
code
- 目标系统字段:
outer_no
- 转换规则:直接映射
"outer_no": "{code}"
- 源系统字段:
-
出库仓库编号
- 源系统字段:
new_warehouse
- 目标系统字段:
warehouse_no
- 转换规则:通过自定义函数查找并映射
"warehouse_no": "_findCollection find omsOutWarehouse from fa193860-6aa8-37a8-b996-a856e9a8a96f where ysOutWarehouse={new_warehouse} mappingType=3"
- 源系统字段:
-
退货数量
- 源系统字段:
purchaseOrders_subQty
- 目标系统字段:
num
- 转换规则:取负值
"num": "_function {{detail_list.purchaseOrders_subQty}}*-1"
- 源系统字段:
数据写入旺店通·企业奇门API
完成ETL转换后,下一步是将处理后的数据通过API接口写入到旺店通·企业奇门。以下是关键步骤:
-
构建请求体: 根据元数据配置文件中的请求参数,构建符合旺店通·企业奇门API要求的请求体。例如:
{ "provider_no": "{vendor_code}", "outer_no": "{code}", "is_check": "1", "warehouse_no": "_findCollection find omsOutWarehouse from fa193860-6aa8-37a8-b996-a856e9a8a96f where ysOutWarehouse={new_warehouse} mappingType=3", "remark": "{new_memo}-{org_name}", "detail_list": [ { "spec_no": "{{detail_list.product_cCode}}", "num": "_function {{detail_list.purchaseOrders_subQty}}*-1", "price": "{{detail_list.oriUnitPrice}}", "tax": "_function {{detail_list.listTaxRate}}*0.01", "detail_remark": "{{detail_list.new_purchaseOrders_memo}}" } ] }
-
调用API接口: 使用POST方法将请求体发送到旺店通·企业奇门API接口。
POST /wdt.purchase.return.push HTTP/1.1 Host: api.wangdian.cn Content-Type: application/json Body: {构建好的请求体}
-
处理响应: 接收并解析API响应,处理可能出现的错误或异常情况,例如网络超时、接口限流等。
异常处理与重试机制
在实际操作中,可能会遇到各种异常情况,例如网络问题、接口限流等。因此,需要设计健壮的异常处理和重试机制:
-
异常捕获: 捕获所有可能出现的异常,并记录日志以便后续分析。
-
重试机制: 对于临时性错误,可以设置重试机制,例如每隔几秒钟重试一次,总共重试三次。
通过以上步骤,可以确保采购订单(红字)成功转换为采购退料单,并可靠地写入到旺店通·企业奇门。