案例分享:调拨出库管理旺店通数据集成到金蝶云星空
在本案例中,我们将详细探讨如何成功实现「调拨出库」类型的数据从旺店通·企业奇门系统的出库单管理模块,集成到金蝶云星空中的其他出库单模块。通过API接口 wdt.stockout.order.query
获取旺店通数据,并使用 batchSave
接口实现数据在金蝶云星空的写入。
为了确保整个数据集成过程高效、可靠和准确,采用了以下几个关键技术方案:
-
定时可靠抓取:利用定时任务机制,每隔一段时间自动调用旺店通·企业奇门接口
wdt.stockout.order.query
以获取最新的出库单数据。这些任务均配置了重试策略,以防止网络波动或临时故障导致的数据漏采问题。 -
处理分页与限流:由于旺店通接口存在返回结果分页及请求频率限制,因此设计了一种智能分页抓取方案,确保每次获取最大量有效数据,同时避免触发限流限制,从而保证大批量数据快速、稳定地导入目标系统。
-
格式转换与映射:针对两套系统间可能的字段不一致和格式差异,通过自定义映射规则,将旺店通返回的数据转换为符合金蝶云星空要求的结构。在此过程中,还会捕捉并记录所有异常情况以便后续分析与优化。
-
批量写入优化:为了提高整体写入性能,在经过预处理和验证后的数据信息,会被打包成适当大小的一组,通过调用
batchSave
接口进行批量写入操作,大幅提升传输效率和速度。 -
实时监控与日志记录:提供全程透明化的数据处理监控体系,可以实时追踪每一个环节。所有操作日志被自动记录并归档,对于出现的问题可以迅速定位原因并及时响应,提高整体运维效果及用户体验。
接下来,我们将深入剖析这些技术点在实际项目实施中的具体应用细节,以及应对挑战的方法。
使用轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockout.order.query获取并加工数据
在数据集成的生命周期中,调用源系统接口是关键的第一步。本文将深入探讨如何使用轻易云数据集成平台配置元数据,调用旺店通·企业奇门接口wdt.stockout.order.query
获取并加工数据。
接口概述
接口wdt.stockout.order.query
用于查询出库单信息。该接口采用POST请求方式,支持多种参数配置以实现精确的数据查询。以下是该接口的主要参数配置:
- start_time: 开始时间,用于增量获取数据,格式为
yyyy-MM-dd HH:mm:ss
。 - end_time: 结束时间,用于增量获取数据,格式为
yyyy-MM-dd HH:mm:ss
。 - status: 出库单状态,例如110表示已完成。
- order_type: 出库单类型,例如2表示调拨出库。
- src_order_no: 系统订单编号。
- src_tid: 原始单号。
- stockout_no: 出库单号。
- shop_no: 店铺编号,用于区分不同店铺的数据。
- warehouse_no: 仓库编号,用于区分不同仓库的数据。
此外,还支持分页参数:
- page_size: 每页返回的数据条数,默认值为40。
- page_no: 页号,默认从0页开始。
元数据配置
在轻易云数据集成平台中,我们可以通过以下元数据配置来调用该接口:
{
"api": "wdt.stockout.order.query",
"effect": "QUERY",
"method": "POST",
"number": "order_no",
"id": "stockout_id",
"name": "order_no",
"idCheck": true,
"request": [
{
"field": "start_time",
"label": "开始时间",
"type": "datetime",
"describe": "增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
"value": "{{LAST_SYNC_TIME|datetime}}"
},
{
"field": "end_time",
"label": "结束时间",
"type": "datetime",
"describe": "增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss",
"value": "{{CURRENT_TIME|datetime}}"
},
{
"field": "status",
"label": "状态",
"type": "string",
"describe": "5已取消,55已审核,95已发货,105 部分打款,110已完成,113:异常发货",
"value": 110
},
{
"field": "order_type",
...
数据请求与清洗
在实际操作中,我们首先需要设置好请求参数。通过使用模板变量如{{LAST_SYNC_TIME|datetime}}
和{{CURRENT_TIME|datetime}}
来动态填充开始和结束时间,可以确保每次调用都是增量获取最新的数据。
例如:
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
![金蝶云星空API接口配置](https://pic.qeasy.cloud/S29.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台生命周期的第二步:ETL转换与数据写入金蝶云星空API接口
在数据集成过程中,ETL(Extract, Transform, Load)转换是至关重要的一环。本文将详细探讨如何利用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。
#### 数据请求与清洗
在开始ETL转换之前,首先需要从源平台(如旺店通)获取出库单管理的数据。假设我们已经完成了这一阶段,并且获得了结构化的原始数据。接下来,我们将进入数据转换与写入阶段。
#### 数据转换
在数据转换过程中,需要将源平台的数据字段映射到目标平台金蝶云星空API接口所需的字段格式。以下是元数据配置示例,该配置定义了如何将源平台的数据映射到金蝶云星空的其他出库单API接口:
```json
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"},
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"标准其他出库单:QTCKD01_SYS\n资产出库:QTCKD02_SYS\nVMI出库:QTCKD03_SYS\n费用物料出库:QTCKD04_SYS\n库存调整:QTCKD05_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTCKD07_SYS"},
{"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"},
{"field":"FPickOrgId","label":"领用组织","type":"string","describe":"领用组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"},
{"field":"FStockDirect","label":"库存方向","type":"string","describe":"库存方向","value":"GENERAL"},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{consign_time}"},
{"field":"FDeptId","label":"领料部门","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"BM000003"},
{"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"","value":""},
{"field":"","label":"","type":"","describe":"","value":""},
...
],
"otherRequest":[
{"field":"","label":"","type":"","describe":"","value":""},
...
],
"operation":{
"rowsKey":"",
"rows":"",
"method":"",
}
}
上述配置中,每个字段都详细描述了其在目标系统中的映射关系。例如:
FBillNo
映射为{order_no}
,即源系统中的订单编号。FBillTypeID
固定为QTCKD07_SYS
,表示标准其他出库单。FStockOrgId
和FPickOrgId
都固定为100
,表示库存组织和领用组织。
数据写入
完成数据转换后,需要将这些结构化的数据通过API接口写入到金蝶云星空。以下是一个实际的HTTP POST请求示例,用于将转换后的数据提交到金蝶云星空:
POST /k3cloud/api/batchSave HTTP/1.1
Host: api.kingdee.com
Content-Type: application/json
Authorization: Bearer <token>
{
"FormId": "STK_MisDelivery",
"IsAutoSubmitAndAudit": false,
"IsVerifyBaseDataField": true,
"Operation": "Save",
"InterationFlags": ["STK_InvCheckResult"],
"Model": {
...
}
}
在这个请求中:
FormId
指定业务对象表单ID,这里为STK_MisDelivery
。IsAutoSubmitAndAudit
设置为false
,表示不自动提交和审核。IsVerifyBaseDataField
设置为true
,表示验证所有基础资料有效性。Operation
设置为Save
,执行保存操作。InterationFlags
包含"STK_InvCheckResult"
,允许负库存。
通过上述配置和请求,我们实现了从源平台到目标平台的数据无缝对接。这一过程不仅确保了数据的一致性和准确性,还大大提高了业务处理效率。
总结
通过轻易云数据集成平台,我们可以高效地完成从源平台到目标平台的数据ETL转换和写入操作。在实际应用中,只需根据具体业务需求调整元数据配置,即可实现不同系统间的数据无缝对接,为企业的信息化建设提供强有力的支持。