金蝶云星空数据集成到旺店通·旗舰版:标准-金蝶-其他出库单——>旺店通-委外仓退(出库业务)
在企业管理系统中,实现不同平台之间的数据无缝对接往往是一项复杂而关键的任务。本文将介绍如何通过轻易云数据集成平台,完成从金蝶云星空到旺店通·旗舰版的系统对接,重点分享“标准-金蝶-其他出库单——>旺店通-委外仓退(出库业务)”这一方案。
首先,我们需要从金蝶云星空获取相关出库单信息。为此,可使用executeBillQuery API接口进行调用。例如,通过API定时可靠地抓取接口数据,以确保不会漏单。这一过程不仅要处理好分页和限流的问题,还需建立起实时监控与日志记录机制,对每一次API调用进行跟踪和分析,从而保证所有数据都能准确采集。
获取到的数据通常存在格式差异,因此在写入到旺店通·旗舰版之前,需要进行必要的数据转换和映射。利用高效灵活的轻易云数据映射工具,可以处理这些源端与目标端之间的数据格式不一致问题。在转化过程中,要注意针对特定需求对接开发自定义规则,以便满足业务逻辑要求。
之后,将经转化后的批量数据快速写入至旺店通·旗舰版,可以调用wms.stockother.Out.push API来实现这一操作。同样也必须确保该过程中的异常处理及错误重试机制,这可以有效应对可能出现的数据冲突或网络异常等问题,提高整体流程的稳定性和鲁棒性。同时,也可以通过实时监控功能持续关注整个传输链路上的状态变化,一旦发现状况能够及时响应调整。
这个技术案例不仅展示了如何将两个不同系统间实现高效、可靠的数据交互,更体现了多种技术细节,例如分页、限流控制,自定义映射以及异常重试等多个方面的深度应用。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何使用轻易云数据集成平台,通过调用金蝶云星空的executeBillQuery
接口来获取并加工数据,以实现标准-金蝶-其他出库单到旺店通-委外仓退(出库业务)的集成。
接口配置与请求参数
首先,我们需要配置调用金蝶云星空接口的元数据。以下是元数据配置的详细内容:
{
"api": "executeBillQuery",
"effect": "QUERY",
"method": "POST",
"number": "FBillNo",
"id": "FEntity_FEntryID",
"name": "FBillNo",
"idCheck": true,
"request": [
{"field":"FEntity_FEntryID","label":"FEntryID","type":"string","describe":"FEntryID","value":"FEntity_FEntryID"},
{"field":"FID","label":"实体主键","type":"string","describe":"实体主键","value":"FID"},
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"FBillNo"},
{"field":"FDocumentStatus","label":"单据状态","type":"string","describe":"单据状态","value":"FDocumentStatus"},
{"field":"FStockOrgId_FNumber","label":"库存组织","type":"string","describe":"库存组织","value":"FStockOrgId.FNumber"},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"FDate"},
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","value":"FBillTypeID"},
{"field":"FNOTE","label":"备注","type":"string","describe":"备注","value":"FNOTE"},
{"field":...}
],
"otherRequest": [
{"field":...}
],
"autoFillResponse": true
}
请求参数解析
- 基本字段:如
FBillNo
(单据编号)、FID
(实体主键)、FDate
(日期)等,这些字段是从金蝶云星空获取出库单信息所必须的。 - 过滤条件:通过
FilterString
字段设置过滤条件,例如:FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FStockOrgId.FNumber='101' and FSTOCKID.F_TBIK_Assistant_qtr = '委外仓' and FBillTypeID.FNUMBER in ('QTCKD01_SYS') and FDate>='2024-08-05 00:00:00'
此过滤条件确保只获取符合特定条件的数据,如指定库存组织、出库类型等。
- 分页参数:通过
Limit
和StartRow
字段控制查询结果的分页,确保一次请求不会返回过多数据,影响性能。
调用接口与处理响应
在配置好元数据后,通过轻易云平台发起POST请求,调用金蝶云星空的executeBillQuery
接口。以下是一个示例请求体:
{
"FormId": "STK_MisDelivery",
"FieldKeys": ["FID", "FBillNo", ...],
"FilterString": "...",
"Limit": 100,
"StartRow": 0
}
响应示例如下:
{
"Result": {
...
"Data": [
{
"FID": "...",
"FBillNo": "...",
...
},
...
]
}
}
数据清洗与转换
获取到原始数据后,需要对其进行清洗和转换,以便后续写入目标系统。常见的数据清洗操作包括:
- 字段映射:将金蝶云星空中的字段映射到目标系统对应的字段。例如,将
FBillNo
映射为目标系统中的订单编号。 - 数据格式转换:将日期格式从金蝶的格式转换为目标系统所需的格式。
- 值校验与处理:检查关键字段是否为空或无效,并进行必要的处理。
以下是一个简单的数据清洗示例:
def clean_data(raw_data):
cleaned_data = []
for entry in raw_data:
cleaned_entry = {
'order_id': entry['FBillNo'],
'date': convert_date_format(entry['FDate']),
...
}
cleaned_data.append(cleaned_entry)
return cleaned_data
写入目标系统
经过清洗和转换后的数据可以通过轻易云平台写入到目标系统,如旺店通。此过程通常涉及调用目标系统提供的API接口,将处理后的数据批量写入。
总结而言,通过轻易云平台调用金蝶云星空的executeBillQuery
接口,并对获取的数据进行清洗和转换,可以实现不同系统间的数据无缝对接。这一过程不仅提高了业务透明度和效率,还确保了数据的一致性和准确性。
使用轻易云数据集成平台进行ETL转换并写入旺店通·旗舰版API接口
在数据集成生命周期的第二步中,我们将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,转为目标平台——旺店通·旗舰版API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何通过轻易云数据集成平台实现这一过程。
API接口配置
在本案例中,我们需要调用旺店通·旗舰版的wms.stockother.Out.push
API接口。该接口用于处理出库业务,具体元数据配置如下:
{
"api": "wms.stockother.Out.push",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "order",
"label": "单据头",
"type": "object",
"children": [
{"field": "outer_no", "label": "外部单号", "type": "string", "value": "{FBillNo}"},
{"field": "warehouse_no", "label": "仓库编号", "type": "string", "value": "{FSTOCKID_FNumber}"},
{"field": "reason", "label": "出库原因", "type": "string", "value": "{F_TBIK_CKLX}"},
{"field": "is_check", "label": "是否审核", "type":"string","value":"true"},
{"field":"remark","label":"备注","type":"string","value":"{FNOTE}"},
{"field":"receiver_name","label":"收件人名称","type":"string","value":"接口传单"},
{"field":"receiver_mobile","label":"收件人电话","type":"string","value":"18888888888"},
{"field":"receiver_province","label":"省","type":"string","value":"广东省"},
{"field":"receiver_city","label":"市","type":"string","value":"广州市"},
{"field":"receiver_district","label":"区","type":"string","value":"白云区"},
{"field":"receiver_address","label":"地址","type":"string","value":"接口传单"}
]
},
{
"field": "order_details",
"label": "单据明细",
"type": ["array"],
"value" : ["list"],
children: [
{ field: 'spec_no', label: '商家编码', type: 'string', value: '{FMATERIALID_FNumber}' },
{ field: 'num', label: '数量', type: 'string', value: '{FBaseQty}' },
{ field: 'remark', label: '明细备注', type: 'string', value: '{FEntryNote}' }
]
}
],
groupCalculate:{
headerGroup:["FBillNo",...],
bodyGroup:["FMATERIALID_FNumber"...],
bodyName:"list",
calculate:{
FBaseQty:"$sum"
}
},
buildModel:true
}
数据请求与清洗
首先,我们从源系统(金蝶)中提取出库单的数据。这一步骤涉及到对原始数据的清洗和初步转换,以确保其符合目标系统的要求。例如,将金蝶中的字段FBillNo
映射到目标系统中的outer_no
字段。
数据转换与写入
在轻易云数据集成平台上,我们可以利用其强大的ETL功能,将清洗后的数据进一步转换为旺店通·旗舰版API所需的格式。以下是具体步骤:
- 定义请求结构:根据元数据配置定义请求结构,包括单据头和单据明细部分。
- 字段映射:将源系统的数据字段映射到目标系统的字段。例如:
FBillNo
->outer_no
FSTOCKID_FNumber
->warehouse_no
F_TBIK_CKLX
->reason
- 聚合计算:对于需要聚合计算的字段,如数量(
FBaseQty
),我们可以使用内置的计算函数(如求和$sum
)来完成。 - 构建模型:根据定义好的请求结构和映射关系,构建最终的数据模型。
示例代码
以下是一个示例代码片段,展示如何利用轻易云平台进行上述操作:
import requests
import json
# 构建请求头
order = {
'outer_no': source_data['FBillNo'],
'warehouse_no': source_data['FSTOCKID_FNumber'],
'reason': source_data['F_TBIK_CKLX'],
'is_check': True,
'remark': source_data['FNOTE'],
'receiver_name': '接口传单',
'receiver_mobile': '18888888888',
'receiver_province': '广东省',
'receiver_city': '广州市',
'receiver_district': '白云区',
'receiver_address': '接口传单'
}
# 构建请求体
order_details = []
for item in source_data['details']:
order_details.append({
'spec_no': item['FMATERIALID_FNumber'],
'num': item['FBaseQty'],
'remark': item['FEntryNote']
})
payload = {
'order': order,
'order_details': order_details
}
# 发起POST请求
response = requests.post('https://api.wangdian.cn/wms.stockother.Out.push', json=payload)
print(response.json())
通过上述步骤,我们成功地将金蝶系统中的出库单数据转换为旺店通·旗舰版API所能接受的格式,并通过POST请求将其写入目标系统。这一过程充分利用了轻易云数据集成平台的ETL功能,实现了不同系统间的数据无缝对接。