金蝶云星空数据集成到旺店通WMS案例分享:盘盈单=>其他入库单-1
在系统对接和数据集成领域,确保不同平台之间的数据无缝流动是关键任务。本文将详细介绍如何使用轻易云数据集成平台,将金蝶云星空的"盘盈单"数据有效地同步至旺店通WMS系统中的“其他入库单”。
一、金蝶云星空接口调用
为了实现从金蝶云星空获取有效的盘盈单数据,我们需要调用其提供的API executeBillQuery
。该接口允许我们按指定的业务条件进行查询,并分页返回结果。在实际操作中,需要特别处理以下两点:
- 分页处理:由于每次API调用返回的数据量有限,因此需实现分页抓取机制,以确保所有相关记录不漏掉。
- 限流控制:为避免触发金蝶云星空API服务端限制,请求频率需合理设置。
# 示例代码片段 - 调用executeBillQuery API
def fetch_data_from_kingdee(pagination_params):
response = requests.post(
url="https://api.kingdee.com/executeBillQuery",
data=json.dumps(pagination_params),
headers={"Content-Type": "application/json"}
)
return response.json()
二、批量写入到旺店通WMS
当成功获取到金蝶云星空盘盈单后,下一步便是将这些数据高效地写入到旺店通WMS的“其他入库单”模块中。这里我们使用 WDT_WMS_ENTRYORDER_CREATE
接口来完成这一目标。
# 示例代码片段 - 调用 WDT_WMS_ENTRYORDER_CREATE API
def write_data_to_wdt(data_batch):
response = requests.post(
url="https://api.wangdiantong.com/WDT_WMS_ENTRYORDER_CREATE",
data=json.dumps(data_batch),
headers={"Content-Type": "application/json"}
)
return response.json()
在这个过程中,有几项技术挑战值得关注:
-
数据格式转换: 金蝶与旺店通系统间的数据格式可能有较大差异,此时必须进行定制化的数据映射和调整。例如字段名和结构上的不同。
-
错误重试机制: 考虑网络环境等各种可能引起请求失败的问题,构建一个可靠的错误重试机制非常重要,确保每条记录都能够故障自动恢复并被正确写入。
-
实时监控与日志记录: 为了保证整个过程透明可追溯,每一步操作及异常情况都应详尽地记录日志,这不仅方便问题排查,也为
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空接口executeBillQuery
,获取并加工盘盈单数据,以实现与其他入库单的无缝对接。
接口调用配置
首先,我们需要配置接口调用的元数据。根据提供的元数据配置,我们可以看到以下关键参数:
- API:
executeBillQuery
- Method:
POST
- Pagination: 每页500条记录
- ID Check:
true
- Operation Method:
merge
这些参数定义了我们如何从金蝶云星空系统中请求数据,并且如何处理和合并这些数据。
请求字段配置
在请求字段部分,我们需要特别注意以下字段:
[
{"field":"FBillEntry_FEntryID","label":"FEntryID","type":"string","value":"FBillEntry_FEntryID"},
{"field":"FID","label":"实体主键","type":"string","value":"FID"},
{"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
{"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"},
{"field":"FStockOrgId_FNumber","label":"库存组织","type":"string","value":"FStockOrgId.FNumber"},
{"field":"FDate","label":"日期","type":"string","value":"FDate"},
{"field":"FBillTypeID","label":"单据类型","type":"string","value":"FBillTypeID"},
{"field":"FStockerId","label":"仓管员","type":"string","value":"FStockerId"},
{"field":"FCreatorId","label":"创建人","type":"string","value":"FCreatorId"},
{"field":"FCreateDate","label":"创建日期","type":"string","value":"FCreateDate"},
{"field":"FModifierId","label":"最后修改人","type":"string","value":"FModifierId"},
{"field": "FModifyDate", "label": "最后修改日期", "type": "string", "value": "FModifyDate" },
// ...省略其他字段
]
这些字段定义了我们需要从金蝶云星空系统中提取的数据内容,包括单据编号、库存组织、日期等信息。
分页与过滤条件
为了高效地处理大量数据,我们使用分页机制,每次请求500条记录。同时,通过过滤条件来限定查询范围,例如:
{
"FilterString": "FApproveDate>='{{MINUTE_AGO_30|datetime}}' AND FStockId.F_JZJ_CheckBox=1"
}
这个过滤条件确保我们只获取最近30分钟内审核通过且特定仓库的盘盈单数据。
数据处理与合并
在获取到原始数据后,需要进行清洗和转换。根据元数据配置中的操作方法,我们将使用merge
方法,将分录明细合并到主表中。具体操作如下:
{
"method": "merge",
"field": "FBillEntry_FEntryID",
"bodyName": "details",
"header": ["FBillNo", "FBillEntry_FEntryID"],
"body": ["FMaterialId_FNumber", "FGainQty"]
}
这一步骤确保每个盘盈单的明细项(如物料编码和盘盈数量)正确地关联到对应的主表记录中。
实际案例操作步骤
- 配置API请求:在轻易云平台上,创建一个新的API请求任务,选择
POST
方法,并填写API地址为executeBillQuery
。 - 设置请求参数:根据元数据配置,设置请求体中的各个字段和分页参数。
- 执行请求并获取响应:发送请求后,平台会返回包含盘盈单信息的数据集。
- 数据清洗与转换:使用预定义的操作方法,将分录明细合并到主表记录中。
- 写入目标系统:将处理后的数据写入目标系统,实现盘盈单与其他入库单的数据对接。
通过以上步骤,我们可以高效地从金蝶云星空系统中提取并处理盘盈单数据,为后续的数据集成奠定基础。这种全透明可视化的操作方式,不仅提升了业务透明度,还极大提高了工作效率。
轻易云数据集成平台生命周期的第二步:ETL转换与写入旺店通WMSAPI接口
在数据集成过程中,ETL(提取、转换、加载)是至关重要的一环。本文将详细探讨如何使用轻易云数据集成平台,将源平台的数据进行ETL转换,并最终写入目标平台——旺店通WMSAPI接口。
数据请求与清洗
在开始ETL之前,我们需要从源平台获取数据并进行初步清洗。假设我们已经完成了这一步,接下来将重点介绍如何将清洗后的数据转换为旺店通WMSAPI接口所能接受的格式。
数据转换与写入
我们需要将盘盈单的数据转换为旺店通WMS的其他入库单格式,并通过API接口进行数据写入。以下是具体的元数据配置和操作步骤:
元数据配置解析
{
"api": "WDT_WMS_ENTRYORDER_CREATE",
"method": "POST",
"idCheck": true,
"operation": {
"method": "merge",
"field": "FBillNo,FStockId_FNumber",
"bodyName": "details",
"bodySum": ["FGainQty"],
"header": ["FStockId_FNumber", "FBillNo"],
"body": ["FMaterialId_FNumber", "FGainQty"]
},
"request": [
{
"label": "入库单信息",
"field": "entryOrder",
"type": "object",
"children": [
{"parent": "entryOrder", "label": "入库单号", "field": "entryOrderCode", "type": "string", "value":"{FBillNo}"},
{"parent": "entryOrder", "label": "仓库编码", "field":"warehouseCode", "type":"string","value":"{FDestStockId_FNumber}"},
{"parent":"entryOrder","label":"业务类型","field":"orderType","type":"string","value":"QTRK"}
]
},
{
"label":"单据信息",
"field":"orderLines",
"type":"array",
"value":"details",
"children":[
{
"field":"orderLine",
"label":"orderLine",
"type":"object",
"parent":"orderLines",
"children":[
{"parent":"orderLines","label":"商家编码","field":"itemCode","type":"string","value":"{{details.FMaterialId_FNumber}}"},
{"parent":"orderLines","label":"应收商品数量","field":"planQty","type":"string","value":"{{details.FQty}}"},
{"parent":"orderLines","label":"入库单的行号","field":"orderLineNo","type":"string","value":"{{details.FBillEntry_FEntryID}}"},
{"parent":"orderLines","label":"库存类型","field":"inventoryType","type":"string","value":"ZP"},
{"parent":"orderLines","label":"批次","field":"batchCode","type":"string","value":
"{{details.FDestLot}}"},
{"parent":
"orderLines",
"label":
"生产日期",
"field":
"productDate",
"type":
"string",
"value":
"{{details.FProduceDate|date}}"
},
{"parent":
orderLines,
label:
过期日期,
field:
expireDate,
type:
string,
value:
{{details.FExpiryDate|date}}
}
]
}
]
}
]
}
数据转换逻辑
-
定义API请求参数:
api
字段指定了目标API接口为WDT_WMS_ENTRYORDER_CREATE
。method
字段指定了HTTP请求方法为POST
。idCheck
字段设置为true
,表示在执行操作前会进行ID校验。
-
操作配置:
operation
部分定义了如何处理数据,包括合并字段(merge
方法)、合并依据(FBillNo,FStockId_FNumber
)、以及需要处理的表头和表体字段。
-
请求结构:
request
部分定义了具体的请求结构,包括两个主要部分:入库单信息和单据信息。
-
入库单信息:
entryOrderCode
: 对应源数据中的FBillNo
。warehouseCode
: 对应源数据中的FDestStockId_FNumber
。orderType
: 固定值为“QTRK”(其他入库)。
-
单据信息:
- 包含一个数组,每个元素代表一行订单明细。
- 每个订单明细包含多个字段,如商家编码(对应源数据中的物料编号)、应收商品数量、行号、库存类型(固定值为“ZP”)、批次、生产日期和过期日期等。
实际操作步骤
- 提取原始数据:从源系统中提取盘盈单的数据,包括物料编号、数量、仓库编码等信息。
- 清洗与预处理:对提取的数据进行必要的清洗和预处理,例如格式化日期字段,确保所有字段符合目标API要求。
- 构建请求报文:根据元数据配置,将清洗后的数据映射到目标API的请求结构中。使用模板语言将源字段值填充到目标字段中。
- 发送请求:通过HTTP POST方法,将构建好的请求报文发送到旺店通WMSAPI接口,完成数据写入操作。
通过上述步骤,我们可以高效地将源平台的数据转换并写入到旺店通WMS,实现不同系统间的数据无缝对接。这不仅提升了业务流程的自动化程度,还确保了数据的一致性和准确性。