用友BIP与旺店通数据集成的实现方法
用友BIP采购订单数据与旺店通退料单集成方案
本文将介绍如何通过数据集成平台,实现用友BIP采购订单(红字)数据到旺店通退料单的高效集成。该方案需要解决两个系统间的数据格式转换和接口调用问题。
调用用友BIP接口获取数据
我们使用用友BIP提供的API接口`/scm/purchaseorder/list`来获取采购订单数据。以下是接口配置的关键参数:
- API路径:`/scm/purchaseorder/list`
- 请求方法:POST
- 分页参数:`pageIndex`和`pageSize`
- 过滤条件:通过`simpleVOs`字段传递
- 排序字段:通过`queryOrders`字段指定
请求参数示例:
{
"pageIndex": "1",
"pageSize": "1000",
"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接口`/purchase.return.push`进行数据写入。以下是关键步骤:
构建请求体示例:
{
"provider_no": "{vendor_code}",
"outer_no": "{code}",
"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}}"
}
]
}
调用接口:
POST /purchase.return.push HTTP/1.1
Host: api.wangdian.cn
Content-Type: application/json
Body: {构建好的请求体}
异常处理包括:
- 捕获并记录所有异常
- 设置重试机制,如间隔几秒重试三次
通过以上步骤,可以实现用友BIP采购订单数据到旺店通退料单的可靠集成。