金蝶云星空数据集成到旺店通·旗舰版:标准-金蝶-采购退料单——>旺店通-自流转退(外仓调整)
在这篇技术文章中,我们将深入探讨如何通过API接口,将金蝶云星空中的“采购退料单”数据高效集成至旺店通·旗舰版,以实现业务系统间的数据协同和自动化处理。本次案例的实施方案为“标准-金蝶-采购退料单——>旺店通-自流转退(外仓调整)”,我们主要聚焦于以下几个关键技术环节。
首先,为确保从金蝶云星空获取的数据完整且不漏单,调用其executeBillQuery API接口是基础。这个接口允许我们定时抓取并分页处理大量的采购退料单数据。同时,为了避免系统负载过高而导致请求限流,我们必须设计一个合理的限速机制,并对可能发生的网络抖动进行异常处理与重试机制,实现连续稳定的数据传输。
接着便是大规模数据导入至目标系统,即通过调用wms.outer.OuterOut.createOrder API向旺店通·旗舰版写入自流转退(外仓调整)订单。这项操作需要特别关注两个方面:一是批量数据的快速写入性能优化;二是确保两端系统之间的数据格式一致性。在这里,自定义映射规则尤为重要,它直接影响到后续流程是否能够顺利执行。必要时,我们还会结合轻易云平台提供的一些实时监控工具,对整个过程进行日志记录和状态追踪,做到有问题及时发现、迅速解决。
最后,在整个对接过程中,不可避免地涉及到不同系统API返回结果及错误码解析。对此,通过构建鲁棒性的异常处理逻辑来完成可靠性验证,包括针对特定错误码触发重试等动作,这既提高了成功率,也保障了业务链条的连续性和稳定运行。
以上只是本案例技术实操中的核心片段,后续部分将详述每个具体步骤与实现细节,包括如何编写实际调用代码、设置参数以及调优建议等内容。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,第一步是调用源系统接口获取数据。在本文中,我们将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口来获取采购退料单的数据,并对其进行初步加工。
接口配置
首先,我们需要了解executeBillQuery
接口的基本配置。根据提供的元数据配置,接口的主要参数如下:
- API:
executeBillQuery
- Method:
POST
- Effect:
QUERY
- FormId:
PUR_MRB
这些参数定义了我们将要调用的具体API和其操作方式。
请求参数
为了成功调用该接口,我们需要构建请求参数。以下是关键字段及其描述:
- FPURMRBENTRY_FEntryID: 明细信息ID
- FID: 实体主键
- FBillNo: 单据编号
- FDocumentStatus: 单据状态(Z:暂存,A:创建,B:审核中,C:已审核)
- FStockOrgId_FNumber: 退料组织
- FDate: 退料日期
- FBillTypeID_FNumber: 单据类型(如标准退料单、零散采购退料单等)
- FSupplierID_FNumber: 供应商
- FApproveDate: 审核日期
这些字段是我们在请求中必须包含的,以确保能够准确地查询到所需的数据。
构建请求体
根据元数据配置,我们可以构建如下的请求体:
{
"FormId": "PUR_MRB",
"FieldKeys": [
"FPURMRBENTRY_FEntryID",
"FID",
"FBillNo",
"FDocumentStatus",
"FStockOrgId.FNumber",
"FDate",
"FBillTypeID.FNumber",
"FSupplierID.FName",
"FApproveDate"
],
"FilterString": "FApproveDate>='2023-01-01' and FStockOrgId.FNumber='101'",
"Limit": 100,
"StartRow": 0,
"TopRowCount": true
}
在这个请求体中:
FormId
指定了业务对象表单ID。FieldKeys
列出了需要查询的字段集合。FilterString
用于过滤条件,这里示例为查询2023年1月1日之后审核通过且退料组织编号为101的数据。Limit
和StartRow
用于分页查询。
调用API
使用轻易云平台,我们可以通过可视化界面或编写脚本来发送上述请求。以下是一个简单的Python示例,展示如何使用HTTP库进行API调用:
import requests
url = 'https://api.kingdee.com/executeBillQuery'
headers = {
'Content-Type': 'application/json',
}
data = {
"FormId": "PUR_MRB",
"FieldKeys": [
"FPURMRBENTRY_FEntryID",
"FID",
"FBillNo",
...
],
...
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
result = response.json()
# 对结果进行处理
else:
print(f"Error {response.status_code}: {response.text}")
数据加工
获取到原始数据后,需要对其进行初步加工,以便后续的数据转换与写入。例如,可以对日期格式进行标准化处理,对数值字段进行单位转换等。以下是一个简单的数据加工示例:
import pandas as pd
# 假设result是从API获取到的数据列表
df = pd.DataFrame(result)
# 日期格式标准化
df['FDate'] = pd.to_datetime(df['FDate'])
# 数值字段单位转换(如金额从分到元)
df['FBillAmount'] = df['FBillAmount'] / 100
# 输出处理后的数据框
print(df)
通过上述步骤,我们完成了从金蝶云星空获取采购退料单数据并进行初步加工。这为后续的数据转换与写入奠定了基础。
轻易云数据集成平台:将源平台数据ETL转换并写入旺店通·旗舰版API接口
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台所能够接收的格式。本文将详细探讨如何使用轻易云数据集成平台,将金蝶系统中的采购退料单数据转换为旺店通·旗舰版API接口所需的格式,并最终写入目标平台。
API接口配置
首先,我们需要了解目标平台——旺店通·旗舰版API接口的配置。根据元数据配置,API接口为wms.outer.OuterOut.createOrder
,使用POST方法提交请求,并且需要进行ID检查。
以下是详细的请求字段说明:
-
单据头(order):
order_no
:外部单号,对应金蝶系统中的FBillNo
warehouse_no
:仓库编号,对应金蝶系统中的FSTOCKID_FNumber
reason
:出库原因,固定值为“采购退料出库”remark
:备注,包含供应商信息和描述,对应金蝶系统中的FSupplierID_FNumber
和FDESCRIPTION
-
单据明细(order_details):
spec_no
:商家编码,对应金蝶系统中的FMATERIALID_FNumber
num
:数量,对应金蝶系统中的FRMREALQTY
remark
:明细备注,对应金蝶系统中的FNOTE
-
是否审核(is_check):固定值为true
数据转换与写入
在轻易云数据集成平台中,我们可以通过配置元数据来实现上述字段的映射和转换。具体步骤如下:
-
定义请求结构: 根据元数据配置,我们需要定义一个包含单据头和单据明细的请求结构。单据头是一个对象,包含多个字段;单据明细是一个数组,每个元素也是一个对象。
-
字段映射与值替换: 在定义好请求结构后,需要将金蝶系统中的字段映射到对应的API字段。例如,将金蝶系统中的
FBillNo
映射到API字段order_no
,并设置其值为金蝶系统中的实际值。 -
聚合计算: 对于需要进行聚合计算的字段,如数量(FRMREALQTY),我们可以使用元数据配置中的计算规则,将其求和后传递给API接口。
-
生成请求模型: 配置完成后,通过轻易云数据集成平台生成最终的请求模型,并确保其符合API接口要求。
以下是一个示例代码片段,用于展示如何通过轻易云数据集成平台实现上述过程:
{
"api": "wms.outer.OuterOut.createOrder",
"method": "POST",
"request": {
"order": {
"order_no": "{FBillNo}",
"warehouse_no": "{FSTOCKID_FNumber}",
"reason": "采购退料出库",
"remark": "供应商:{FSupplierID_FNumber} {FDESCRIPTION}"
},
"order_details": [
{
"spec_no": "{FMATERIALID_FNumber}",
"num": "{FRMREALQTY}",
"remark": "{FNOTE}"
}
],
"is_check": true
}
}
实际应用案例
假设我们从金蝶系统中获取了一条采购退料单,其主要字段如下:
- FBillNo: 'PO123456'
- FSTOCKID_FNumber: 'WH001'
- FSupplierID_FNumber: 'SUP123'
- FDESCRIPTION: '退货描述'
- FMATERIALID_FNumber: 'MAT001'
- FRMREALQTY: '10'
- FNOTE: '无'
根据上述配置,我们可以生成如下请求体:
{
"api": "wms.outer.OuterOut.createOrder",
"method": "POST",
"request": {
"order": {
"order_no": "PO123456",
"warehouse_no": "WH001",
"reason": "采购退料出库",
"remark": "供应商:SUP123 退货描述"
},
"order_details": [
{
"spec_no": "MAT001",
"num": "10",
"remark": "无"
}
],
"is_check": true
}
}
通过轻易云数据集成平台,我们可以将上述请求体发送到旺店通·旗舰版API接口,实现从金蝶系统到旺店通·旗舰版的数据无缝对接。这不仅简化了数据处理流程,还大大提高了业务效率和准确性。