金蝶云星空数据集成到旺店通WMS的技术案例:调拨入库=>其他入库单-1
在实现金蝶云星空与旺店通WMS的系统对接过程中,针对“调拨入库 => 其他入库单-1”的具体需求,我们设计了一套高效、稳定的数据集成方案。本案例着重解析API接口调用和大数据量处理中的关键技术点。
首先,我们利用金蝶云星空提供的数据接口executeBillQuery
,定时抓取目标业务范围内的数据。通过合理设置分页参数,有效缓解了由于数据量大而导致的系统压力,同时避免漏单现象发生。
其次,为确保数据能够快速且准确地写入旺店通WMS系统,我们采用批量导入方式,并调用其API WDT_WMS_ENTRYORDER_CREATE
进行插入操作。在此过程中,特别考虑到了两者之间的数据格式差异,通过自定义映射模块,实现了格式转换和字段对齐。同时,对于可能出现的接口限流问题,我们设计了智能重试机制,以提高整体可靠性。
整个流程中,每个环节均由实时监控与日志记录功能支撑,一旦发生异常能够及时预警并追溯来源,从而有效保障了整个集成过程的可控性和透明度。以下是该解决方案中重要技术实施细节与步骤解析。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的第一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口来获取并加工数据。
接口配置与请求参数
首先,我们需要配置接口及其请求参数。根据元数据配置,executeBillQuery
接口采用POST方法,需要传递多个字段以确保正确的数据查询和返回。
以下是关键的请求参数及其配置:
- FormId: 业务对象表单Id,必须填写金蝶的表单ID,如:
STK_TransferDirect
。 - FieldKeys: 需查询的字段key集合,格式为字符串数组,通过逗号分隔。
- FilterString: 过滤条件,用于限定查询范围,例如:
FApproveDate>='{{MINUTE_AGO_30|datetime}}' and FDestStockId.F_JZJ_CheckBox=1
。 - Limit: 最大行数,用于分页查询。
- StartRow: 开始行索引,用于分页查询。
- TopRowCount: 返回总行数。
请求示例
以下是一个完整的请求示例:
{
"FormId": "STK_TransferDirect",
"FieldKeys": "FBillEntry_FEntryID,FID,FBillNo,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID.FNumber,FTransferBizType,FStockOutOrgId.FNumber,FTransferDirect,FNote,FBizType,FSaleOrgId.FNumber,FSettleOrgId.FNumber,FCustID.FNumber,FSUPPLIERID.FNumber,FThirdSrcId,FThirdSrcBillNo,FThirdSystem,FMaterialId.FNumber,FLot.fnumber,FSrcStockId.FNumber,FSrcStockLocId,FDestStockId.FNumber,FDestStockLocId,FQty,FPrice,FAmount,FBomId,FProduceDate,FExpiryDate,FMtoNo,FSrcStockStatusId,FDestStockStatusId,FOwnerId.FNumber,FOwnerOutId.FNumber,FSrcBillTypeId,FSrcSeq,FOrderNo,FNoteEntry,FSrcBillNo,FBFLowId,FConsignPrice,FTaxPrice,FTaxRate,FDestLot.fnumber,FQmEntryId,FConvertEntryId,FSOEntryId,FThirdSrcEntryId,FISFREE",
"FilterString": "FApproveDate>='{{MINUTE_AGO_30|datetime}}' and FDestStockId.F_JZJ_CheckBox=1",
"Limit": 100,
"StartRow": 0,
"TopRowCount": 0
}
数据清洗与转换
在获取到原始数据后,需要对数据进行清洗和转换,以便后续处理和写入目标系统。以下是一些常见的数据清洗和转换操作:
- 字段映射:将源系统中的字段映射到目标系统中的相应字段。例如,将
FBillNo
映射到目标系统中的单据编号字段。 - 数据类型转换:确保所有字段的数据类型符合目标系统的要求。例如,将日期字符串转换为标准日期格式。
- 值校验与修正:检查关键字段的值是否符合业务规则,并进行必要的修正。例如,确保数量字段不为空且大于零。
实际案例
假设我们需要从金蝶云星空中获取调拨入库单的数据,并将其写入到其他入库单中。具体步骤如下:
-
调用接口获取数据:
- 配置并发送上述请求,获取调拨入库单的数据。
-
清洗与转换数据:
- 将返回的数据进行字段映射,如将
FBillNo
映射为目标系统中的单据编号。 - 转换日期格式,将
FDate
从字符串格式转换为标准日期格式。 - 校验数量字段
FQty
,确保其不为空且大于零。
- 将返回的数据进行字段映射,如将
-
写入目标系统:
- 将清洗和转换后的数据通过轻易云平台写入到其他入库单中。
通过以上步骤,我们可以高效地实现从金蝶云星空到目标系统的数据集成。这不仅提高了数据处理的准确性和效率,还确保了业务流程的顺畅运行。
将源平台数据转换为旺店通WMSAPI接口格式并写入
在数据集成生命周期的第二步中,我们需要将已经从源平台获取的数据进行ETL(提取、转换、加载)处理,最终将其写入目标平台——旺店通WMS。本文将详细探讨如何通过轻易云数据集成平台实现这一过程。
API接口配置
首先,我们需要配置与目标平台的API接口。根据提供的元数据配置,我们使用WDT_WMS_ENTRYORDER_CREATE
接口,通过POST方法向旺店通WMS发送数据。以下是具体的API配置细节:
- API:
WDT_WMS_ENTRYORDER_CREATE
- Method:
POST
- ID Check:
true
数据转换逻辑
在进行数据转换时,我们需要遵循以下操作逻辑:
- 合并操作: 使用
merge
方法,将字段FBillNo
作为唯一标识符,确保每个入库单号唯一。 - 主体名称: 数据主体命名为
details
,包含表头和表体信息。 - 表头字段:
FBillNo
: 入库单号FDate
: 入库日期FDestStockId_FNumber
: 目的仓库编码
- 表体字段:
FMaterialId_FNumber
: 商品编码FBillEntry_FEntryID
: 入库单行号FQty
: 商品数量FDestLot
: 批次号FProduceDate
: 生产日期FExpiryDate
: 过期日期
请求体构建
根据元数据配置,我们需要构建请求体,将源平台的数据映射到目标平台所需的格式。具体映射关系如下:
-
入库单信息(entryOrder):
- 入库单号(entryOrderCode):
{FBillNo}
- 仓库编码(warehouseCode):
{FDestStockId_FNumber}
- 业务类型(orderType): 固定值
DBRK
- 入库单号(entryOrderCode):
-
单据信息(orderLines): 每个订单行信息包含以下字段:
- 商家编码(itemCode):
{details.FMaterialId_FNumber}
- 应收商品数量(planQty):
{details.FQty}
- 入库单的行号(orderLineNo):
{details.FBillEntry_FEntryID}
- 库存类型(inventoryType): 固定值
ZP
- 批次(batchCode):
{details.FDestLot}
- 生产日期(productDate):
{details.FProduceDate|date}
- 过期日期(expireDate):
{details.FExpiryDate|date}
- 商家编码(itemCode):
实际案例应用
假设我们从源平台获取到如下数据:
{
"FBillNo": "RK20230901",
"FDate": "2023-09-01",
"FDestStockId_FNumber": "WH001",
"details": [
{
"FMaterialId_FNumber": "ITEM001",
"FBillEntry_FEntryID": "1",
"FQty": "100",
"FDestLot": "LOT20230901",
"FProduceDate": "2023-08-01",
"FExpiryDate": "2024-08-01"
}
]
}
通过ETL转换后,生成的请求体应如下所示:
{
"entryOrder": {
"entryOrderCode": "RK20230901",
"warehouseCode": "WH001",
"orderType": "DBRK"
},
"orderLines": [
{
"orderLine": {
"itemCode": "ITEM001",
"planQty": "100",
"orderLineNo": "1",
"inventoryType": "ZP",
"batchCode": "LOT20230901",
"productDate": "2023-08-01",
"expireDate": "2024-08-01"
}
}
]
}
数据写入
最后一步是将构建好的请求体通过POST方法发送至旺店通WMS的API接口,实现数据写入。轻易云数据集成平台提供了全透明可视化的操作界面,可以实时监控数据流动和处理状态,确保每个环节都清晰易懂。
通过以上步骤,我们成功地将源平台的数据进行了ETL转换,并写入到了目标平台旺店通WMS中。这一过程不仅提高了业务效率,还确保了数据的一致性和准确性。