用友BIP数据集成到旺店通·企业奇门:采购订单(红字) => 采购退料单-v
在进行用友BIP与旺店通·企业奇门系统的对接过程中,我们选择了一个典型案例——将“采购订单(红字)”的数据集成到“采购退料单-v”。此次集成主要涉及从用友BIP接口获取原始数据,并通过高效、安全的方法将其写入到旺店通·企业奇门。
由于该场景下的数据量较大且需保证无遗漏,我们实现了定时可靠的抓取用友BIP接口数据,同时处理分页和限流问题,以确保每一条有效信息都能被及时、准确地获取。具体执行中,调用用友BIP API /yonbip/scm/purchaseorder/list
,按分批次读取数据,是第一步关键环节。
然而,仅仅是成功抓取并不足以完成整个流程。在大量数据向目标系统—旺店通·企业奇门的快速写入过程中,仍然需要应对多种挑战,如处理两者之间的数据格式差异,对接异常情况以及错误重试机制等。例如,在调用API wdt.purchase.return.push
时,通过自定义映射规则,将源系统复杂多样的数据结构转换为目标系统所需格式,成为确保顺利操控的重要步骤。此外,通过实时监控和日志记录,实现透明化管理,也有效提升了运作效率与稳定性。
在以下部分,我们将详细探讨各个技术步骤及解决方案,包括如何保障集成过程中的无缝衔接、抑制潜在风险,以及增进整体业务流畅度,从而使得这一集成方案得以成功落地应用。
调用用友BIP接口获取并加工采购订单数据
在轻易云数据集成平台中,调用源系统用友BIP接口/yonbip/scm/purchaseorder/list
是数据集成生命周期的第一步。本文将详细探讨如何配置和调用该接口,并对返回的数据进行加工处理。
接口调用配置
首先,我们需要配置API请求参数。根据元数据配置,接口使用POST方法,以下是具体的请求参数:
pageIndex
: 页码,默认值为1。pageSize
: 每页数,默认值为1000。isSum
: 查询表头,默认值为false。simpleVOs
: 查询条件对象,包括多个过滤条件。queryOrders
: 排序字段数组。
示例请求体如下:
{
"pageIndex": "1",
"pageSize": "1000",
"isSum": "false",
"simpleVOs": {
"field1": {
"field": "totalQuantity",
"op": "elt",
"value1": ""
},
"field2": {
"field": "auditTime",
"op": "egt",
"value1": "{{LAST_SYNC_TIME|datetime}}"
},
"field3": {
"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
例如,假设原始响应数据如下:
{
"id": 12345,
"purchaseOrders_id": 67890,
"headFreeItem.define1": "item001",
"vendor": {"name":"Vendor A"},
"warehouse":{"location":"Warehouse A"}
}
经过格式化处理后的数据应为:
{
"new_id": "12345",
"new_purchaseOrders_id": "67890",
"new_headFreeItem": "item001",
"new_vendor": {"name":"Vendor A"},
"new_warehouse":{"location":"Warehouse A"}
}
实现步骤
- 配置API请求:在轻易云平台上配置API调用参数,如页码、每页数量、查询条件和排序字段等。
- 发送请求:通过POST方法向用友BIP接口发送请求,获取采购订单列表。
- 接收响应:接收并解析API响应数据。
- 数据格式化:根据元数据配置,对响应中的字段进行重命名和格式转换。
- 存储或进一步处理:将格式化后的数据存储到目标系统或进行进一步的数据处理。
注意事项
- 确保查询条件中的时间戳(如
{{LAST_SYNC_TIME|datetime}}
)正确替换,以保证增量同步的准确性。 - 在实际应用中,根据业务需求调整过滤条件和排序字段,以获取所需的数据集。
- 数据格式化过程中,应确保所有必需字段均已正确映射,以避免后续处理中的数据缺失或错误。
通过上述步骤,我们可以高效地从用友BIP系统中获取采购订单数据,并进行必要的加工处理,为后续的数据写入和业务分析打下坚实基础。
使用轻易云数据集成平台将采购订单转换为旺店通·企业奇门API接口的技术案例
在数据集成过程中,将已经集成的源平台数据进行ETL转换,并最终写入目标平台是一个关键步骤。本文将详细探讨如何使用轻易云数据集成平台,将采购订单(红字)转换为采购退料单,并通过旺店通·企业奇门API接口写入目标平台。
API接口配置
首先,我们需要配置旺店通·企业奇门的API接口。根据提供的元数据配置,API接口为wdt.purchase.return.push
,使用POST方法提交请求。以下是主要字段和其对应的配置:
- 供应商编号(
provider_no
):从源数据中的vendor_code
字段获取。 - 外部单号(
outer_no
):从源数据中的code
字段获取。 - 是否审核(
is_check
):固定值为1,表示自动审核。 - 出库仓库编号(
warehouse_no
):通过映射从源数据中的new_warehouse
字段获取。 - 备注(
remark
):组合了源数据中的new_memo
和org_name
字段。
数据转换与写入
在进行数据转换时,我们需要特别注意以下几点:
-
明细列表节点(detail_list):这是请求参数的二级数据节点,包含采购退货单所有货品明细属性信息的数据节点。我们需要将源数据中的明细列表映射到这个节点中。
-
字段映射:
spec_no
: 从源数据中的product_cCode
num
: 退货数量,需要将源数据中的purchaseOrders_subQty
乘以 -1price
: 从源数据中的oriUnitPrice
tax
: 税率,需要将源数据中的listTaxRate
乘以 0.01detail_remark
: 从源数据中的new_purchaseOrders_memo
以下是具体的元数据配置示例:
{
"api": "wdt.purchase.return.push",
"method": "POST",
"idCheck": true,
"operation": {
"method": "merge",
"field": "vendor,warehouse,code,new_headFreeItem,new_memo",
"bodyName": "detail_list",
"bodySum": ["purchaseOrders_subQty"],
"header": ["new_vendor", "new_warehouse", "code", "new_headFreeItem", "new_memo", "org_name", "vendor_code"],
"body": ["product_cCode", "purchaseOrders_subQty", "oriUnitPrice", "listTaxRate", "new_purchaseOrders_memo"]
},
"request": [
{
"field": "provider_no",
"label": "供应商编号",
"type": "string",
"describe": "供应商编号",
"value": "{vendor_code}"
},
{
"field": "outer_no",
"label": "外部单号",
"type": "string",
"describe": "外部单号",
"value": "{code}"
},
{
"field": "is_check",
...
数据处理逻辑
在实际操作中,轻易云平台会按照上述配置进行ETL处理:
- 提取:从源系统中提取采购订单的数据。
- 清洗:对提取的数据进行必要的清洗和校验,例如确保所有必填字段都有值。
- 转换:按照元数据配置,将提取的数据字段映射到目标系统所需的格式。例如,将退货数量乘以-1,将税率乘以0.01等。
- 加载:通过调用旺店通·企业奇门API接口,将转换后的数据写入目标系统。
实际应用案例
假设我们有一条采购订单,其原始数据如下:
{
...
// 省略其他不相关字段
...
{
...
// 明细列表
detail_list: [
{
product_cCode: 'P001',
purchaseOrders_subQty: 10,
oriUnitPrice: 100,
listTaxRate: 13,
new_purchaseOrders_memo: '退货原因'
}
],
vendor_code: 'V001',
code: 'PO123456',
new_warehouse: 'W001',
new_memo: '紧急退货',
org_name: '公司A'
}
}
经过ETL处理后,生成的请求体如下:
{
...
// 省略其他不相关字段
...
{
provider_no: 'V001',
outer_no: 'PO123456',
is_check: '1',
warehouse_no: '_findCollection find omsOutWarehouse from fa193860-6aa8-37a8-b996-a856e9a8a96f where ysOutWarehouse=W001 mappingType=3',
remark: '紧急退货-公司A',
detail_list: [
{
spec_no: 'P001',
num: '-10', // 原始数量乘以-1
price: '100',
tax: '0.13', // 原始税率乘以0.01
detail_remark: '退货原因'
}
]
}
}
通过上述步骤,我们成功地将采购订单的数据转换为符合旺店通·企业奇门API接口要求的格式,并完成了写入操作。这种标准化和自动化的数据处理流程,大大提高了业务效率和准确性。