系统对接集成案例分享:旺店通·企业奇门数据集成到金蝶云星辰V2
在实施企业信息化系统集成时,数据流的无缝对接是确保业务顺畅运行的关键。本文将详细探讨如何通过轻易云数据集成平台,实现旺店通·企业奇门的数据高效、准确地导入至金蝶云星辰V2中。在这个过程中,我们选用的实际运行方案为“其他出库(委外)V2.0”,旨在优化订单处理流程,提高系统一致性。
首先,要从旺店通·企业奇门获取出库订单的相关数据,我们调用了其API wdt.stockout.order.query
。为了避免因分页和限流问题导致的数据遗漏或重复读取,我们采用了定时可靠的数据抓取机制,并实时监控接口返回结果,确保所有订单都能被完整抓取并妥善记录。
下一个挑战是处理从旺店通获取到的大量数据。在这一步中,我们专注于快速、高效地将这些数据写入金蝶云星辰V2,通过批量写入功能 /jdy/v2/scm/inv_other_out
大幅度缩短了同步时间。同时,为应对两大平台之间存在的数据格式差异,在映射过程中特别进行了定制化调整,以保证目标数据库能够正确识别和存储各类字段信息。
值得注意的是,整个集成过程不仅需要关注正常情况下的数据传输,还必须构建一套完善的异常处理与错误重试机制。当遇到网络抖动或者第三方API响应异常时,这些机制能够自动检测并采取相应措施进行重试操作,最大程度上降低因意外情况引起的数据丢失风险。
通过上述步骤及技术手段,不仅实现了旺店通·企业奇门与金蝶云星辰V2系统间稳定、高效、安全的数据交互,还提升了整体业务运维效率,为后续更多跨系统协同打下坚实基础。
调用旺店通·企业奇门接口获取并加工数据
在数据集成生命周期的第一步,我们需要调用源系统的API接口以获取原始数据,并对其进行初步加工。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口 wdt.stockout.order.query
,并对返回的数据进行处理。
接口配置与请求参数
首先,我们需要配置API接口的元数据。以下是我们使用的元数据配置:
{
"api": "wdt.stockout.order.query",
"method": "POST",
"number": "order_no",
"id": "stockout_id",
"pagination": {
"pageSize": 30
},
"condition": [
[
{
"field": "warehouse_no",
"logic": "neq",
"value": "WH2024052601"
}
]
],
"idCheck": true,
"request": [
{
"field": "start_time",
"label": "开始时间",
"type": "string",
"describe": "按最后修改时间增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
"value": "{{LAST_SYNC_TIME|datetime}}"
},
{
"field": "end_time",
"label": "结束时间",
"type": "string",
"describe": "按最后修改时间增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss",
"value": "{{CURRENT_TIME|datetime}}"
},
{
"field": "order_type",
"label": "出库单类型",
"type": "string",
"describe":"2调拨出库,3采购退货出库,4盘亏出库,5生产出库,7其他出库,8多发出库,9纠错出库,10保修配件出库,11初始化出库,12jit拣货出库,13委外出库",
"value":"13"
},
{
"field":"status",
...
请求参数解析
- 时间参数:
start_time
和end_time
用于按最后修改时间增量获取数据。start_time
使用上次同步时间,end_time
使用当前时间。 - 订单类型:
order_type
固定为13
,表示委外出库。 - 订单状态:默认查询已发货和已完成的单据,即状态为
95
和110
。 - 仓库编号排除条件:排除仓库编号为
WH2024052601
的记录。
数据请求与分页处理
为了确保高效的数据传输,我们使用分页机制。每次请求返回最多30条记录,通过调整 page_no
参数逐页获取所有符合条件的数据。
{
...
,"otherRequest":[
{
...
},
{
...
}
]
}
数据清洗与转换
在获取到原始数据后,需要对其进行清洗和转换,以便后续处理和存储。以下是一些常见的数据清洗操作:
- 字段映射:将API返回的数据字段映射到目标系统所需的字段。例如,将
order_no
映射为目标系统中的订单编号。 - 数据过滤:根据业务需求过滤掉不需要的记录。例如,只保留状态为已发货和已完成的记录。
- 格式转换:将日期、金额等字段转换为目标系统所需的格式。
实际案例分析
假设我们从API返回了以下部分数据:
{
...
}
我们需要对这些数据进行如下处理:
- 将
order_no
转换为目标系统中的订单编号。 - 将日期字段从字符串格式转换为日期对象。
- 根据业务规则过滤掉不符合条件的记录。
通过上述步骤,我们可以确保从源系统获取的数据经过清洗和转换后,能够无缝对接到目标系统中,从而实现高效的数据集成。
以上就是调用旺店通·企业奇门接口获取并加工数据的详细过程。在实际操作中,根据具体业务需求可能还需要进行更多定制化处理。
数据集成与转换:将数据写入金蝶云星辰V2 API接口
在数据集成的生命周期中,第二步至关重要,即将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,并最终写入目标平台。在本案例中,我们将探讨如何使用轻易云数据集成平台,将数据转换为金蝶云星辰V2 API接口所能接收的格式,并写入目标平台。
元数据配置解析
首先,我们需要理解元数据配置中的各个字段及其含义:
{
"api": "/jdy/v2/scm/inv_other_out",
"effect": "EXECUTE",
"method": "POST",
"number": "id",
"id": "id",
"name": "id",
"idCheck": true,
"request": [
{
"field": "bill_date",
"label": "单据日期",
"type": "string",
"value": "{consign_time}"
},
{
"field": "bill_no",
"label": "单据编码",
"type": "string",
"value": "{order_no}"
},
{
"field": "trans_type_id",
"label": "业务类型id",
"type": "string",
"value": "13"
},
{
"field": "operation_key",
"label": "操作类型",
"type": "string",
"value": "audit"
},
{
...
}
]
}
api
: 接口路径/jdy/v2/scm/inv_other_out
method
: HTTP请求方法POST
number
,id
,name
: 标识字段request
: 请求体字段配置
数据请求与清洗
在此阶段,我们从源系统提取原始数据,并进行必要的清洗和预处理。假设我们已经获得了如下格式的源数据:
{
"_id":"12345abcde",
"_source":{
...
"_details_list":[
{"goods_no":"1001",...},
{"goods_no":"1002",...}
]
}
}
数据转换与写入
接下来,我们将源数据转换为目标平台所需的格式。以下是关键步骤:
-
提取并映射字段:
- 将
consign_time
映射到bill_date
- 将
order_no
映射到bill_no
- 固定值
13
赋给trans_type_id
- 固定值
audit
赋给operation_key
- 将
-
处理商品分录:
- 对于每个商品分录(即数组中的每个对象),需要查询MongoDB以获取相关信息,如商品ID、单位ID等。
- 使用
_mongoQuery
和_findCollection
方法进行查询和映射。
例如,对于商品编号为 1001
的商品,执行以下查询:
{
"_mongoQuery d476a55d-acc7-3156-9c7f-b9f9dce596b5 findField=content.id where={\"content.number\": {\"$eq\":\"1001\"}}"
}
- 构建请求体: 最终构建的请求体应符合API要求,例如:
{
...
{
field: 'material_entity',
label: '商品分录',
type: 'array',
value: 'details_list',
children: [
{
field: 'material_id',
label: '商品',
type: 'string',
value: '_mongoQuery d476a55d-acc7-3156-9c7f-b9f9dce596b5 findField=content.id where={"content.number":{"$eq":"{{details_list.goods_no}}"}}'
},
...
]
}
}
最终请求示例
最终生成的请求体可能如下:
{
...,
{
bill_date: '2023-10-01',
bill_no: 'ORD12345',
trans_type_id: '13',
operation_key: 'audit',
material_entity: [
{
material_id: 'MAT001', // 从MongoDB查询结果
qty: '10', // 从 details_list 中提取
unit_id: 'UNIT001', // 从MongoDB查询结果
stock_id: 'STOCK001' // 从 findCollection 查询结果
},
...
]
}
}
通过上述步骤,我们成功地将源平台的数据转换为金蝶云星辰V2 API接口所能接收的格式,并准备好发送POST请求以完成数据写入。