旺店通-销售出库单-->金蝶-销售出库单【赠品店铺】数据集成案例
在企业数字化转型过程中,数据的有效管理和高效对接至关重要。本文将分享一个具体的系统集成案例,即如何将旺店通·旗舰奇门的数据集成到金蝶云星空中,特别是关于销售出库单的对接。在这个项目中,我们利用了轻易云数据集成平台,实现了从获取旺店通·旗舰奇门API接口(wdt.wms.stockout.sales.querywithdetail)到批量写入金蝶云星空API(batchSave)的完整流程。
获取旺店通·旗舰奇门销售出库单
首先,通过调用旺店通·旗舰奇门提供的API接口wdt.wms.stockout.sales.querywithdetail
来实时抓取销售出库单的数据。该接口支持分页查询,并能返回详细的订单信息,这对于确保数据不漏单和保证业务连续性至关重要。
import requests
def get_sales_orders(api_url, params):
response = requests.post(api_url, json=params)
return response.json()
params = {
"shop_no": "D12345",
"start_time": "2023-01-01 00:00:00",
"end_time": "2023-01-31 23:59:59"
}
sales_orders = get_sales_orders("https://api.wangdiantong.com/wdt/wms/stockout/sales/querywithdetail", params)
通过上述代码,我们可以定时可靠地抓取所需时间段内所有销售出库订单,并处理分页与限流问题,确保不会遗漏任何一条记录。这一步骤还借助了集中监控和告警系统,以实现实时追踪任务状态及性能,一旦出现异常能够及时响应和处理。
数据转换与质量监控
在获得原始数据后,需要进行必要的数据转换以适应金蝶云星空特定的数据结构。使用轻易云平台提供的自定义数据转换逻辑,可以针对不同字段进行精准映射。例如,将“客户名称”对应到目标数据库中的“buyerName”字段:
{
"data_mapping": [
{"source_field": "customer_name", "target_field": "buyerName"},
{"source_field":"order_id","target_field":"saleOrderNo"}
]
}
同时,为进一步确保持久化存储时无误,还引入了自动化的数据质量监控机制。如发现异常,例如缺失必填字段或格式错误等情况,会即时触发告警并作相应修复操作,从而提升整体运行效率及稳定性。
批量写入金蝶云星空
最后一步
调用旺店通·旗舰奇门接口获取并加工数据
在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用旺店通·旗舰奇门接口wdt.wms.stockout.sales.querywithdetail
,获取销售出库单数据并进行初步加工。
接口概述
接口wdt.wms.stockout.sales.querywithdetail
用于查询销售出库单的详细信息。该接口采用POST请求方式,支持分页查询和多种业务参数配置,以满足不同场景下的数据需求。
请求参数配置
根据元数据配置,我们需要构建一个包含分页参数和业务参数的请求体。以下是具体的请求参数说明:
-
分页参数(pager):
page_size
: 每页返回的数据条数,默认值为50。page_no
: 当前页码,默认值为1。
-
业务参数(params):
start_time
: 查询开始时间,使用上次同步时间{{LAST_SYNC_TIME|datetime}}
。end_time
: 查询结束时间,使用当前时间{{CURRENT_TIME|datetime}}
。status_type
: 出库单状态类型,默认值为3(按照指定状态查询)。status
: 出库单状态详细信息,默认值为110。warehouse_no
: 仓库编码,可选。stockout_no
: 出库单编号,可选。shop_nos
: 店铺编号,多店铺使用英文逗号分隔,默认值为"C00099,C00314"。src_order_no
: 销售订单号,可选。need_sn
: 是否返回SN信息,可选。position
: 是否按照货位排序,可选。
以下是构建请求体的示例代码:
{
"pager": {
"page_size": 50,
"page_no": 1
},
"params": {
"start_time": "{{LAST_SYNC_TIME|datetime}}",
"end_time": "{{CURRENT_TIME|datetime}}",
"status_type": "3",
"status": "110",
"warehouse_no": "",
"stockout_no": "",
"shop_nos": "C00099,C00314",
"src_order_no": "",
"need_sn": "",
"position": ""
}
}
数据清洗与转换
在获取到原始数据后,需要对数据进行清洗和转换,以便后续处理和写入目标系统。以下是一些常见的数据清洗与转换操作:
- 字段映射:将源系统中的字段映射到目标系统所需的字段。例如,将
order_no
映射到目标系统的订单编号字段。 - 数据过滤:根据特定条件过滤不需要的数据。例如,通过条件过滤掉
src_trade_no
包含"CKSQD"的记录。 - 格式转换:将日期、时间等字段转换为目标系统所需的格式。
以下是一个简单的数据清洗示例:
def clean_data(raw_data):
cleaned_data = []
for record in raw_data:
if 'CKSQD' not in record['src_trade_no']:
cleaned_record = {
'order_id': record['order_no'],
'stockout_id': record['stockout_id'],
'warehouse_code': record['warehouse_no'],
'shop_code': record['shop_nos'],
# 其他字段映射
}
cleaned_data.append(cleaned_record)
return cleaned_data
实时监控与错误处理
在整个数据集成过程中,实时监控和错误处理也是不可忽视的重要环节。通过轻易云平台提供的实时监控功能,可以随时查看数据流动和处理状态,及时发现并解决问题。此外,还可以设置错误处理机制,例如重试策略、告警通知等,以确保数据集成过程的稳定性和可靠性。
总结
通过上述步骤,我们实现了从旺店通·旗舰奇门接口获取销售出库单数据,并进行了初步的数据清洗与转换。这只是轻易云数据集成平台生命周期中的第一步,通过合理配置元数据和高效调用API接口,可以极大提升数据集成效率,为后续的数据处理和写入打下坚实基础。
使用轻易云数据集成平台将销售出库单转换并写入金蝶云星空API接口
在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)处理,以便将其转换为目标平台——金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细介绍如何利用轻易云数据集成平台完成这一过程。
数据请求与清洗
首先,我们从源系统(旺店通)提取销售出库单的数据。这一步通常包括数据请求和初步清洗,以确保数据质量和一致性。假设我们已经完成了这一步,接下来重点讨论如何将这些数据转换为金蝶云星空所需的格式,并通过API接口写入目标系统。
数据转换与写入
在轻易云数据集成平台中,配置元数据是实现ETL过程的关键。以下是我们需要配置的元数据:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 20,
"method": "batchArraySave"
},
"request": [
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","value":"XSCKD01_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{order_no}"},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{consign_time}"},
{"field":"FStockOrgId","label":"发货组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100.01"},
{"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","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":...
以上配置定义了如何将源系统的数据字段映射到金蝶云星空API所需的字段。具体字段解释如下:
- FBillTypeID: 单据类型,固定值
XSCKD01_SYS
。 - FBillNo: 单据编号,对应源系统中的
order_no
。 - FDate: 日期,对应源系统中的
consign_time
。 - FStockOrgId: 发货组织,固定值
100.01
。 - FSaleOrgId: 销售组织,对应源系统中的
shop_no
,并通过ConvertObjectParser
进行转换。 - FSettleOrgID: 结算组织,同样对应
shop_no
并进行转换。 - FLinkMan: 收货人姓名,对应源系统中的
receiver_name
。 - FLinkPhone: 联系电话,对应源系统中的
receiver_telno
。
明细信息处理
对于明细信息,我们使用数组结构来处理每个商品的详细信息:
{
"field": "FEntity",
"label": "明细信息",
"type": "array",
"children": [
{"field": "FMaterialID", "label": "物料编码", "type": "string", "describe": "基础资料", "parser":{"name":...
每个明细项包括以下字段:
- FMaterialID: 物料编码,对应源系统中的
goods_no
,并通过解析器进行转换。 - FRealQty: 实发数量,对应源系统中的
goods_count
。 - FTaxPrice: 含税单价,对应源系统中的
sell_price
。 - FStockID: 仓库,对应源系统中的
warehouse_no
,并进行转换。 - FEntrynote: 明细备注,对应源系统中的备注信息。
API调用与提交
最后,通过配置其他请求参数来完成API调用:
"otherRequest":[
{"field":...
这些参数包括业务对象表单ID(如:SAL_OUTSTOCK)、执行操作(如:Save)、是否自动提交并审核等。
通过以上步骤,我们可以成功地将销售出库单从旺店通转换为金蝶云星空API所需的格式,并通过轻易云数据集成平台实现无缝对接和写入。这不仅提高了数据处理效率,也确保了业务流程的一致性和准确性。