旺店通·企业奇门数据集成到金蝶云星空:旺店通其他出库单委外同步案例解析
在本技术案例中,将重点介绍如何通过轻易云数据集成平台实现“旺店通·企业奇门”与“金蝶云星空”之间的数据对接,具体方案名称为“旺店通其他出库单委外同步”。本文将深入探讨API接口的调用、分页和限流处理、数据格式差异应对以及异常处理等关键技术细节,确保数据高可靠性和完整性。
首先,我们来讨论如何保证从“旺店通·企业奇门”获取的库存出库单数据信息在传输过程中不漏单,并准确写入到“金蝶云星空”。核心方法是定时且可靠地抓取wdt.stockout.order.query
接口中的数据,并结合批量操作快速写入至金蝶云星空对应的存储结构。此过程中,需要考虑的不仅仅是接口调用本身,同时还需有效应对接口返回的大量分页数据及其限流规则。
其次,在实际操作中,经常会遇到两系统间的数据格式存在显著差异的问题。在该方案下,通过定制化的数据映射策略实现了这两个系统间的数据转换。例如,从wdt.stockout.order.query
接口获取的JSON格式信息需要被转化为适合于金蝶云星空API batchSave
所接受的XML或另一种JSON格式,这要求我们详细分析并掌握这两个API各自的数据结构特点。
此外,在实时监控与日志记录方面,该案例提供了一套详尽的方法论,能随时追踪每个步骤中的执行状态。这不仅帮助及时发现潜在问题,还保障整个流程的透明度和可审计性。同时,对于可能发生的网络连接失败或异常错误,也搭建了完善重试机制,以提高整体系统健壮性与容错能力。
通过以上几个关键环节,本案展示了如何利用现代化的平台工具灵活、高效地完成跨平台、跨系统的数据集成任务。从而满足业务需求,提高作业效率,实现精细管理。
调用旺店通·企业奇门接口wdt.stockout.order.query获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockout.order.query
来获取并加工数据。
接口概述
接口wdt.stockout.order.query
用于查询出库单信息。我们将通过POST请求方式调用该接口,并根据特定的业务需求进行数据过滤和分页处理。
元数据配置解析
元数据配置是实现接口调用和数据处理的关键。以下是具体的元数据配置解析:
{
"api": "wdt.stockout.order.query",
"method": "POST",
"number": "order_no",
"id": "stockout_id",
"pagination": {
"pageSize": 30
},
"idCheck": true,
"request": [
{"field": "start_time", "label": "开始时间", "type": "string", "value": "{{LAST_SYNC_TIME|datetime}}"},
{"field": "end_time", "label": "结束时间", "type": "string", "value": "{{CURRENT_TIME|datetime}}"},
{"field": "order_type", "label": "出库单类型", "type": "string", "value":"13"},
{"field": "status", "label":"出库单状态","type":"string"},
{"field":"warehouse_no","label":"仓库编号","type":"string"},
{"field":"src_order_no","label":"源单号","type":"string"},
{"field":"stockout_no","label":"出库单号","type":"string"}
],
...
}
请求参数详解
-
时间参数:
start_time
和end_time
分别表示查询的开始时间和结束时间,使用动态变量{{LAST_SYNC_TIME|datetime}}
和{{CURRENT_TIME|datetime}}
来自动填充。
-
出库单类型:
order_type
固定为"13",表示特定类型的出库单。
-
可选过滤条件:
status
,warehouse_no
,src_order_no
,stockout_no
等字段可以根据业务需求进行过滤。
-
分页参数:
page_size
和page_no
用于控制分页,每次请求返回30条记录。
数据请求与清洗
在实际操作中,我们首先需要构建请求报文,根据元数据配置中的字段和条件,生成符合API要求的请求体。例如:
{
"start_time": "{{LAST_SYNC_TIME|datetime}}",
"end_time": "{{CURRENT_TIME|datetime}}",
...
}
通过轻易云平台,可以自动化生成并发送此请求,获取原始数据后进行清洗。清洗过程包括但不限于:
- 字段映射:将API返回的数据字段映射到目标系统所需的字段。
- 格式转换:例如日期格式、数值格式等转换。
- 数据过滤:根据业务规则过滤不需要的数据,例如剔除操作员名称为“外部接口”的记录。
数据转换与写入
在完成数据清洗后,下一步是将数据转换为目标系统所需的格式,并写入目标数据库或系统。这一步通常涉及复杂的数据转换逻辑,例如:
- 合并多个字段
- 根据业务规则计算新的字段值
- 数据去重和一致性校验
通过轻易云平台,可以利用其内置的数据转换工具,实现上述复杂逻辑,并确保高效、准确地将数据写入目标系统。
实时监控与错误处理
在整个过程中,实时监控和错误处理也是不可忽视的部分。轻易云平台提供了全面的监控功能,可以实时跟踪每个步骤的数据流动和处理状态。一旦出现错误,可以快速定位并解决问题,确保数据集成过程顺利进行。
综上所述,通过合理配置元数据并利用轻易云平台强大的功能,我们可以高效地调用旺店通·企业奇门接口获取并加工出库单数据,为后续的数据集成奠定坚实基础。
数据集成案例:将旺店通出库单数据转换并写入金蝶云星空API
在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何利用元数据配置完成这一过程。
API接口配置
我们使用金蝶云星空的batchSave
API接口进行数据写入操作。该接口采用POST请求方式,支持批量保存功能。以下是元数据配置的详细说明:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 10,
"method": "batchArraySave"
},
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","value":"{order_no}-TC"},
{"field":"FBillTypeID","label":"单据类型","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTCKD01_SYS"},
{"field":"FStockOrgId","label":"库存组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"106"},
{"field":"FPickOrgId","label":"领用组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"106"},
{"field":"FDate","label":"日期","type":"string","value":"{consign_time}"},
{"field":"FDeptId","label":"领料部门","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"BM000002"},
{"field":"FNote","label":"备注","type":"string","value":"{remark}"},
{
"field": "FEntity",
"label": "明细信息",
"type": "array",
"children": [
{"field": "FMaterialId", "label": "物料编码", "type": "string", "parser":{"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{{details_list.spec_no}}", "parent": "FEntity"},
{"field": "FCMKBarCode", "label": "零售条形码", "type": "string", "parent": "FEntity"},
{"field": "FQty", "label": "实发数量", "type": "string", "value": "{{details_list.goods_count}}", "parent": "FEntity"},
{"field": "FStockId", "label": "发货仓库", "type": "string", "parser":{"name":
"ConvertObjectParser", "params":
"FNumber"}, "value":
"{warehouse_no}", "parent":
" FEntity"},
{"field":
" FPrice",
" label":
"成本价",
"type":
" string",
"parent":
" FEntity"
},
{
field:
FEntryNote
label
备注
type
string
parent
FEntity
}
],
value: details_list
}
],
otherRequest: [
{ field: FormId, label: 业务对象表单Id, type: string, value: STK_MisDelivery },
{ field: IsAutoSubmitAndAudit, label: 提交并审核, type: bool, value: true },
{ field: IsVerifyBaseDataField, label: 验证基础资料, type: bool, value: true },
{ field: Operation, label: 执行的操作, type: string, value: Save }
]
}
数据字段解析与转换
-
单据编号(FBillNo):
- 类型:字符串
- 值:通过拼接订单号和后缀
-TC
生成,例如{order_no}-TC
。
-
单据类型(FBillTypeID):
- 类型:字符串
- 值:固定值
QTCKD01_SYS
,通过ConvertObjectParser
转换为目标系统可识别的格式。
-
库存组织(FStockOrgId) 和 领用组织(FPickOrgId):
- 类型:字符串
- 值:固定值
106
,同样通过ConvertObjectParser
转换。
-
日期(FDate):
- 类型:字符串
- 值:直接映射源数据中的
consign_time
字段。
-
领料部门(FDeptId):
- 类型:字符串
- 值:固定值
BM000002
,通过ConvertObjectParser
转换。
-
备注(FNote):
- 类型:字符串
- 值:直接映射源数据中的
remark
字段。
-
明细信息(FEntity):
- 类型:数组,每个子项包含以下字段:
- 物料编码(FMaterialId):通过
details_list.spec_no
映射,并使用ConvertObjectParser
转换。 - 零售条形码(FCMKBarCode):直接映射。
- 实发数量(FQty):通过
details_list.goods_count
映射。 - 发货仓库(FStockId):通过
{warehouse_no}
映射,并使用ConvertObjectParser
转换。 - 成本价(FPrice) 和 备注(FEntryNote):直接映射。
- 物料编码(FMaterialId):通过
- 类型:数组,每个子项包含以下字段:
执行操作与其他请求参数
- 表单ID (
FormId
) 固定为STK_MisDelivery
。 - 自动提交并审核 (
IsAutoSubmitAndAudit
) 设置为true
。 - 验证基础资料 (
IsVerifyBaseDataField
) 设置为true
。 - 操作类型 (
Operation
) 固定为Save
。
实际应用案例
假设我们有一条源数据记录如下:
{
order_no: 'OD123456',
consign_time: '2023-09-15',
remark: 'Urgent delivery',
details_list: [
{
spec_no: 'SP001',
goods_count: '10'
}
],
warehouse_no: 'WH001'
}
经过上述配置和转换后,生成的目标平台请求体如下:
{
FBillNo: 'OD123456-TC',
FBillTypeID: { FNumber: 'QTCKD01_SYS' },
FStockOrgId: { FNumber: '106' },
FPickOrgId:{ FNumber:'106'},
FDate:'2023-09-15',
FDeptId:{ FNumber:'BM000002'},
FNote:'Urgent delivery',
FEntity:[
{
FMaterialId:{ FNumber:'SP001'},
FCMKBarCode:'',
FQty:'10',
FStockId:{ FNumber:'WH001'},
FPrice:'',
FEntryNote:''
}
],
FormId:'STK_MisDelivery',
IsAutoSubmitAndAudit:true,
IsVerifyBaseDataField:true,
Operation:'Save'
}
以上内容展示了如何利用元数据配置,将旺店通出库单的数据转换为金蝶云星空API接口所需格式,并成功写入目标平台。这种高效、透明的数据处理流程,不仅提升了业务效率,还确保了数据的一致性和准确性。