旺店通·旗舰奇门数据集成金蝶云星空:销售出库单对接技术解析
在现代企业复杂的供应链管理中,数据的无缝流动至关重要。本文将详细探讨如何通过轻易云数据集成平台,将旺店通·旗舰奇门系统中的销售出库单精确、高效地集成到金蝶云星空系统上。
此次案例分析集中于一个具体任务:利用API接口wdt.wms.stockout.sales.querywithdetail
从旺店通·旗舰奇门获取销售出库单数据,并通过金蝶云星空的数据写入API batchSave
实现批量数据导入。这一过程强调了多个关键技术点,包括高吞吐量的数据处理能力、自定义数据转换逻辑以及实时监控和异常处理机制等。
首先,通过轻易云可视化的数据流设计工具,我们能够直观地配置从旺店通抓取接口所需的参数及相关逻辑。在此过程中,高频率调用wdt.wms.stockout.sales.querywithdetail
需要解决分页和限流问题,以确保所有销售出库单都能被有效抓取并存储。然而,由于两个系统之间存在不同的数据结构,还必须进行自定义的数据转换操作,以保证格式一致性,提高集成效率。
与此同时,针对大量数据快速写入到金蝶云星空这一需求,通过优化分批次提交策略,可以显著提升性能。结合实时监控和告警系统,我们不仅可以追踪每个任务执行的状态和性能指标,而且在发生错误时迅速定位源头并触发重试机制,确保流程最终达成设定目标,不漏掉任何一个订单记录。
总而言之,本案例展示了跨平台、跨系统间实现可靠、高效数据对接的一整套解决方案,从而为业务提供坚实的数据支撑。后续我们将逐步深入各环节具体配置与调优细节,为读者呈现完整实施路径与操作技巧。
调用旺店通·旗舰奇门接口wdt.wms.stockout.sales.querywithdetail获取并加工数据
在数据集成的生命周期中,第一步是调用源系统的API接口以获取原始数据。本文将深入探讨如何使用轻易云数据集成平台调用旺店通·旗舰奇门接口wdt.wms.stockout.sales.querywithdetail
,并对获取的数据进行初步加工。
接口概述
接口wdt.wms.stockout.sales.querywithdetail
用于查询销售出库单的详细信息。该接口采用POST请求方式,支持分页查询,并可以根据多种业务参数进行过滤。
元数据配置解析
以下是元数据配置的详细内容:
{
"api": "wdt.wms.stockout.sales.querywithdetail",
"method": "POST",
"number": "order_no",
"id": "stockout_id",
"idCheck": true,
"request": [
{
"field": "pager",
"label": "分页参数",
"type": "object",
"children": [
{
"field": "page_size",
"label": "分页大小",
"type": "int",
"value": 50,
"parent": "pager"
},
{
"field": "page_no",
"label": "页号",
"type": "int",
"value": 1,
"parent": "pager"
}
]
},
{
"field": "params",
...
}
],
...
}
请求参数配置
-
分页参数:
page_size
: 每页返回记录数,默认值为50。page_no
: 当前页码,默认值为1。
-
业务参数:
start_time
和end_time
: 查询时间范围,分别使用动态变量{{MINUTE_AGO_30|datetime}}
和{{CURRENT_TIME|datetime}}
表示过去30分钟和当前时间。status_type
: 出库单状态,默认值为3(按照指定的status状态字段查询)。status
: 出库单状态详细,默认值为110。- 其他可选参数包括仓库编码、出库单编号、店铺编号、销售订单号等。
条件过滤与补偿机制
元数据配置中还定义了条件过滤和补偿机制:
-
条件过滤:通过逻辑运算符对特定字段进行过滤,例如:
[ {"field":"shop_no","logic":"notin","value":"bf796c6,C00314,C00099"}, {"field":"src_trade_no","logic":"notlike","value":"XSDD"}, {"field":"src_trade_no","logic":"notlike","value":"CKSQD"} ]
-
补偿机制:在定时任务中定义了接管字段,用于处理遗漏的数据。例如,每小时运行一次任务,将开始时间设置为当前时间前2小时,结束时间设置为当前时间前1小时:
{ ... {"field":"params.start_time","value":"_function FROM_UNIXTIME( unix_timestamp() - 7200 , '%Y-%m-%d %H:%i:%s' )"}, {"field":"params.end_time","value":"_function FROM_UNIXTIME( unix_timestamp() - 3600 , '%Y-%m-%d %H:%i:%s' )"} ... }
数据请求与清洗
在调用接口后,需要对返回的数据进行清洗和初步加工。这一步骤包括:
- 去重与校验:根据配置中的
idCheck
字段,对返回的数据进行去重和唯一性校验。 - 格式转换:将原始数据转换为目标系统所需的格式。例如,将日期字符串转换为标准日期格式,将数值字段统一单位等。
- 异常处理:对于缺失或异常的数据进行标记或修正,以确保后续处理的准确性。
实践案例
假设我们需要获取过去30分钟内状态为110的销售出库单,并将其导入到金蝶系统。具体步骤如下:
-
配置请求参数:
{ ... {"field":"params.start_time","value":"{{MINUTE_AGO_30|datetime}}"}, {"field":"params.end_time","value":"{{CURRENT_TIME|datetime}}"}, {"field":"params.status_type","value":"3"}, {"field":"params.status","value":"110"} ... }
-
调用接口并获取数据:
response = requests.post(api_url, json=request_payload) data = response.json()
-
对数据进行清洗和初步加工:
cleaned_data = clean_and_transform(data)
-
将清洗后的数据写入目标系统(金蝶):
write_to_kd(cleaned_data)
通过上述步骤,我们能够高效地从旺店通系统中提取销售出库单数据,并将其无缝集成到金蝶系统中。这不仅提高了数据处理的效率,也确保了业务流程的连续性和准确性。
使用轻易云数据集成平台实现金蝶云星空API接口的数据转换与写入
在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是关键步骤之一。本文将深入探讨如何使用轻易云数据集成平台,将源平台(如旺店通)的销售出库单数据进行转换,并通过金蝶云星空API接口写入目标平台。
API接口配置与元数据解析
首先,我们需要理解金蝶云星空API接口的配置。以下是一个典型的API请求配置:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{"field":"FBillTypeID","label":"单据类型","type":"string","value":"XSCKD01_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FBillNo","label":"单据编号","type":"string","value":"{order_no}"},
{"field":"FDate","label":"日期","type":"string","value":"{consign_time}"},
{"field":"FStockOrgId","label":"发货组织","type":"string","value":"100.01","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FSaleOrgId","label":"销售组织","type":"string","value":"{shop_no}","parser":{"name":"ConvertObjectParser","params":"FNumber"},"mapping":{"target":"65693884484e3b37ea13d9f4","direction":"positive"}},
{"field":"FSettleOrgID","label":"结算组织","type":"string","value":"{shop_no}","parser":{"name":"ConvertObjectParser","params":"FNumber"},"mapping":{"target":"65693884484e3b37ea13d9f4","direction":"positive"}},
{"field":"FLinkMan","label":"收货人姓名","type":"string","value":"{receiver_name}"},
{"field":"FLinkPhone","label":"联系电话","type":"string","value":"{receiver_telno}"},
{"field":"Fnote","label":"备注","type": "string", "value": "{remark}"}
],
"otherRequest":[
{"field": "FormId", "label": "业务对象表单Id", "type": "string", "value": "SAL_OUTSTOCK"},
{"field": "Operation", "label": "执行的操作", "type": "string", "value": "Save"},
{"field": "IsAutoSubmitAndAudit", "label": "提交并审核", "type": "bool", "value": true},
{"field": "IsVerifyBaseDataField", "label": "验证基础资料", "type": bool, value: true},
{"field: SubSystemId, label: 系统模块, type: string, value: 21},
{ label: 允许负库存, field: InterationFlags, type: string, value: STK_InvCheckResult }
]
}
数据字段解析与映射
在配置过程中,关键在于正确解析和映射源数据到目标平台所需的字段格式。以下是一些重要字段的解析和映射规则:
-
单据类型 (
FBillTypeID
):- 固定值
"XSCKD01_SYS"
,使用ConvertObjectParser
转换为金蝶系统识别的编码。
- 固定值
-
单据编号 (
FBillNo
):- 动态值
{order_no}
,直接从源数据中提取订单编号。
- 动态值
-
日期 (
FDate
):- 动态值
{consign_time}
,提取发货时间作为单据日期。
- 动态值
-
发货组织 (
FStockOrgId
):- 固定值
"100.01"
,使用ConvertObjectParser
转换为金蝶系统识别的编码。
- 固定值
-
销售组织 (
FSaleOrgId
) 和 结算组织 (FSettleOrgID
):- 动态值
{shop_no}
,使用ConvertObjectParser
并通过mapping
映射到目标系统中的具体组织编码。
- 动态值
-
收货人信息:
- 收货人姓名 (
FLinkMan
) 和联系电话 (FLinkPhone
) 分别映射为{receiver_name}
和{receiver_telno}
。
- 收货人姓名 (
-
备注 (
Fnote
):- 动态值
{remark}
,从源数据中提取备注信息。
- 动态值
明细信息处理
对于明细信息(即订单中的商品列表),需要特别处理嵌套数组结构:
{
field: FEntity,
label: 明细信息,
type: array,
children: [
{ field: FMaterialID, label: 物料编码, type: string, parser: { name: ConvertObjectParser, params: FNumber }, value: {{details_list.goods_no}} },
{ field: FRealQty, label: 实发数量, type: string, value: {{details_list.goods_count}} },
{ field: FTaxPrice, label: 含税单价, type:string,value :{{details_list.sell_price}}},
{ field:FStockID,label :仓库,type:string,value:{warehouse_no}},
...
]
}
每个子字段都需要根据具体需求进行解析和映射。例如:
- 物料编码 (
FMaterialID
):使用ConvertObjectParser
转换商品编号。 - 实发数量 (
FRealQty
):直接从源数据中提取实际发货数量。 - 含税单价 (
FTaxPrice
):从源数据中提取商品销售价格。
数据转换与写入
完成上述字段解析和映射后,通过配置好的API请求,将转换后的数据批量写入金蝶云星空系统。轻易云数据集成平台提供了全异步处理机制,确保高效的数据传输和处理。
{
"api" : "/k3cloud/api/sal/outstock/batchSave",
"method" : POST,
"body" : {
"Model" : {
...
"FBillNo" : "{order_no}",
...
"SubSystemId" : 21
...
}
}
}
通过这种方式,可以实现不同系统间的数据无缝对接,提高业务处理效率和准确性。