案例分享:旺店通·企业奇门数据集成到金蝶云星空
在本案例中,我们将解析一个具体的系统对接集成任务,涉及将旺店通·企业奇门中的调拨单数据高效同步至金蝶云星空。该方案名为“旺店通调拨单同步--114”,通过特定API接口实现数据的可靠抓取和批量写入。
接口概述
为了实现这一目标,我们主要使用两个关键API:
- 旺店通·企业奇门获取数据的API:
wdt.stock.transfer.query
- 金蝶云星空写入数据的API:
batchSave
数据获取与处理
首先,通过调用wdt.stock.transfer.query
接口从旺店通·企业奇门系统中提取调拨单数据。为了确保高吞吐量的数据处理能力,并应对分页与限流问题,需要设计合理的数据抓取策略,例如按批次进行请求,同时使用可靠的日志记录来跟踪每次接口调用状态。
import requests
def get_transfer_data(offset, limit):
url = "https://api.wdt.com/enterprise/query"
params = {
"method": "wdt.stock.transfer.query",
"offset": offset,
"limit": limit,
# 其他必要参数如认证信息等...
}
response = requests.get(url, params=params)
if response.status_code == 200:
return response.json()
else:
# 错误处理逻辑
pass
# 示例调用
transfer_data = get_transfer_data(0, 100)
数据转换与映射
在获得原始数据后,需要通过自定义的数据转换逻辑,将其格式调整为金蝶云星空所需的格式。这一步骤至关重要,特别是要注意字段类型和命名规范之间的差异,通过可视化的数据流设计工具,可以直观地管理这些转换规则。
def transform_to_kingdee_format(raw_data):
transformed_data = []
for item in raw_data["data"]:
transformed_item = {
"field1_in_kingdee": item["field1_in_wdt"],
# 更多字段映射...
}
transformed_data.append(transformed_item)
return {"data": transformed_data}
# 示例转换过程
transformed_result = transform_to_kingdee_format(transfer_data)
数据写入及监控配置
最后,经由转化后的数据需要利用batchSave
API批量写入至金蝶云星空。在此过程中,为了确保不漏单且所有操作均有据可查,应设置实时监控机制及错误重试机制,以应对可能出现的问题,如网络波动或接口响应异常
使用轻易云数据集成平台调用旺店通·企业奇门接口获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台调用旺店通·企业奇门接口wdt.stock.transfer.query
,并对获取的数据进行初步加工。
接口调用配置
首先,我们需要配置元数据以便正确调用wdt.stock.transfer.query
接口。以下是元数据配置的关键部分:
{
"api": "wdt.stock.transfer.query",
"method": "POST",
"number": "transfer_no",
"id": "transfer_id",
"pagination": {
"pageSize": 100
},
"idCheck": true,
"request": [
{"field":"start_time","label":"开始时间","type":"datetime","value":"{{LAST_SYNC_TIME|datetime}}"},
{"field":"end_time","label":"结束时间","type":"datetime","value":"{{CURRENT_TIME|datetime}}"},
{"field":"from_warehouse_no","label":"源仓库","type":"string"},
{"field":"to_warehouse_no","label":"目标仓库","type":"string"},
{"field":"status","label":"调拨单状态","type":"string","value":"90"}
],
"otherRequest": [
{"field":"page_size","label":"分页大小","type":"string","value":"{PAGINATION_PAGE_SIZE}"},
{"field":"page_no","label":"页号","type":"string","value":"{PAGINATION_START_PAGE}"}
],
"condition_bk": [
[{"field": "remark", "logic": "like", "value": "114"}]
]
}
请求参数详解
- 开始时间和结束时间:通过
start_time
和end_time
字段,我们可以指定查询的时间范围。这里使用了动态变量{{LAST_SYNC_TIME|datetime}}
和{{CURRENT_TIME|datetime}}
,确保每次同步时都能获取最新的数据。 - 源仓库和目标仓库:通过
from_warehouse_no
和to_warehouse_no
字段,可以指定调拨单的源仓库和目标仓库。 - 调拨单状态:通过设置状态为90,过滤出特定状态的调拨单。
- 分页参数:为了处理大批量数据,设置了分页参数,包括每页大小(page_size)和页号(page_no)。
数据请求与清洗
在成功调用接口并获取数据后,需要对数据进行初步清洗。这一步骤包括但不限于以下操作:
- 去除冗余字段:只保留必要的字段,如调拨单号(transfer_no)、调拨单ID(transfer_id)等。
- 格式转换:将日期格式统一转换为标准格式,以便后续处理。
- 数据过滤:根据业务需求进一步过滤不符合条件的数据。例如,通过条件备份(condition_bk)中的逻辑条件,只保留备注包含“114”的记录。
实际案例
假设我们需要从2023年1月1日到2023年1月31日之间,查询所有状态为90、备注包含“114”的调拨单。具体请求参数如下:
{
"start_time": "2023-01-01T00:00:00",
"end_time": "2023-01-31T23:59:59",
"status": "90",
"remark_like": "%114%",
"page_size": 100,
"page_no": 1
}
通过上述配置,我们可以顺利调用接口并获取所需数据。接下来,我们需要对返回的数据进行清洗和转换,以便后续写入目标系统。
数据转换与写入
在完成数据请求与清洗后,将清洗后的数据转换为目标系统所需的格式,并写入目标系统。这一步通常包括以下操作:
- 字段映射:将源系统字段映射到目标系统对应字段。
- 数据验证:确保所有必填字段都有值,并符合目标系统的数据规范。
- 批量写入:为了提高效率,可以采用批量写入的方式,将处理好的数据一次性写入目标系统。
通过以上步骤,我们可以实现从旺店通·企业奇门接口到目标系统的数据无缝对接,提高业务透明度和效率。
以上就是使用轻易云数据集成平台调用旺店通·企业奇门接口获取并加工数据的详细技术流程。希望这些技术细节能为您的实际项目提供有价值的参考。
数据集成与ETL转换:从旺店通调拨单到金蝶云星空API接口
在数据集成过程中,将源平台的数据转换为目标平台所能接收的格式是关键步骤之一。本文将深入探讨如何利用轻易云数据集成平台,将旺店通调拨单的数据通过ETL转换,最终写入金蝶云星空API接口。
API接口配置与调用
首先,我们需要了解金蝶云星空API接口的配置。根据元数据配置,目标API为batchSave
,请求方法为POST
。我们需要确保请求中的字段和数据格式符合金蝶云星空的要求。
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","value":"{transfer_no}-TC"},
{"field":"FBillTypeID","label":"单据类型","type":"string","value":"ZJDB01_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FBizType","label":"业务类型","type":"string","value":"NORMAL"},
{"field":"FTransferDirect","label":"调拨方向","type":"string","value":"GENERAL"},
{"field":"FTransferBizType","label":"调拨类型","type":"string","value":"InnerOrgTransfer"},
{"field":"FStockOutOrgId","label":"调出库存组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"114"},
{"field":"FOwnerOutIdHead","label":"调出货主","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"114"},
{"field":"FStockOrgId","label":"调入库存组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"114"},
{"field":"FDate","label":"日期","type":"string","value":"{created}"},
{"field":"FNote","label":"备注","type":"string","value":"{remark}"},
{
"field": "FBillEntry",
"label": "明细信息",
"type": "array",
"children": [
{"field": "FMaterialId", "label": "物料编码", "type": "string", "parser":{"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{{details_list.spec_no}}", "parent": "FBillEntry"},
{"field": "FCMKBarCode", "label": "零售条形码", "type": "string", "parent": "FBillEntry"},
{"field": "FQty", "label": "调拨数量", "type": "string", "value": "{{details_list.num}}", "parent": "FBillEntry"},
{"field": "FSrcStockId", "label": "调出仓库", "type": "string", "parser":{"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{from_warehouse_no}", "parent": "FBillEntry"},
{"field": "FDestStockId", "label": "调入仓库", "type": "string", "value: "{to_warehouse_no}", parser: {name: ConvertObjectParser, params: FNumber}, parent: FBillEntry},
{ field: FNoteEntry, label: 备注, type: string, value: {{details_list.remark}}, parent: FBillEntry },
{ field: FISFREE, label: 赠品, type: string, parent: FBillEntry }
],
value: details_list
}
],
otherRequest:[
{ field:"FormId", label:"业务对象表单Id", type:"string", value:"STK_TransferDirect"},
{ field:"IsAutoSubmitAndAudit", label:"提交并审核", type:"bool", value:"true"},
{ field:"IsVerifyBaseDataField", label:"验证基础资料", type:"bool", value:"true"},
{ field:"Operation", label:"执行的操作", type:"string", value:"Save"}
]
}
数据转换与清洗
在数据转换过程中,我们需要对源平台的数据进行清洗和格式化,以满足目标平台的需求。例如,将旺店通的字段映射到金蝶云星空所需的字段,并进行必要的格式转换。
-
单据编号(FBillNo):
- 来源字段:
transfer_no
- 转换规则:在原始编号后添加后缀
-TC
- 来源字段:
-
单据类型(FBillTypeID):
- 固定值:
ZJDB01_SYS
- 使用解析器
ConvertObjectParser
进行对象转换
- 固定值:
-
业务类型(FBizType):
- 固定值:
NORMAL
- 固定值:
-
调拨方向(FTransferDirect):
- 固定值:
GENERAL
- 固定值:
-
日期(FDate):
- 来源字段:
created
- 来源字段:
-
备注(FNote):
- 来源字段:
remark
- 来源字段:
-
明细信息(FBillEntry):
- 包含多个子字段,如物料编码、零售条形码、调拨数量等,每个子字段都需要对应源数据进行映射和转换。
数据写入
完成数据清洗和转换后,即可将处理后的数据通过API接口写入到金蝶云星空。以下是一个示例请求体:
{
FormId: 'STK_TransferDirect',
IsAutoSubmitAndAudit: true,
IsVerifyBaseDataField: true,
Operation: 'Save',
array:[
{
FBillNo:'12345-TC',
FBillTypeID:{ FNumber:'ZJDB01_SYS'},
FBizType:'NORMAL',
FTransferDirect:'GENERAL',
FTransferBizType:'InnerOrgTransfer',
FStockOutOrgId:{ FNumber:'114'},
FOwnerOutIdHead:{ FNumber:'114'},
FStockOrgId:{ FNumber:'114'},
FDate:'2023-10-01',
FNote:'This is a remark.',
FBillEntry:[
{
FMaterialId:{ FNumber:'SPEC001'},
FCMKBarCode:'',
FQty:'100',
FSrcStockId:{ FNumber:'WH001'},
FDestStockId:{ FNumber:'WH002'},
FNoteEntry:'',
FISFREE:''
}
]
}
]
}
通过上述步骤,我们实现了从旺店通到金蝶云星空的数据ETL转换,并成功将处理后的数据写入目标平台。这一过程不仅提升了数据处理效率,还确保了数据的一致性和准确性。