案例分享:金蝶云星空数据集成到旺店通·旗舰奇门
在企业信息化系统中,不同平台间的数据对接与同步常常面临着复杂的技术挑战。本文将详细介绍一个实际运行的案例——通过“01-KW-采购订单同步”方案,将金蝶云星空的数据高效集成到旺店通·旗舰奇门,展示如何借助轻易云数据集成平台实现这一目标。
在本次项目中,我们旨在确保金蝶云星空中的采购订单能够准确、及时地写入到旺店通·旗舰奇门,从而实现跨平台的无缝衔接。任务不仅涉及定时可靠地抓取和处理大量接口数据,还需要应对分页与限流等技术难题,并处理两系统之间的数据格式差异。
首先,通过调用金蝶云星空提供的executeBillQuery API接口,我们实时获取最新的采购订单数据。在执行此操作时,需要特别注意接口的限流策略,以避免触发频率限制。同时,在批量抓取数据过程中,应采用分页机制以保证大规模数据读取的一致性与完整性。
完成数据读取后,下一步是进行必要的数据转换和映射。这是因为金蝶云星空和旺店通·旗舰奇门在数据结构上存在明显差异。为了解决这一问题,我们设计了一套定制化的数据映射规则,使得每个字段都能准确对应并符合目的系统要求。
处理完毕后的清洗及转换好的订单信息,将通过wdt.purchase.purchaseorder.createorder API接口快速写入到旺店通·旗舰奇门。这个过程我们采用了分批次、多线程的方法,大大提高了写入效率,同时设置了异常处理与错误重试机制,确保任何突发故障不会影响整体流程稳定性。
综上所述,本案例不仅呈现了两个不同应用系统间高效且稳定的数据交互方式,也反映出轻易云平台全方位帮助用户提升业务透明度与操作效率的重要价值。在以下具体实施部分,我们将进一步细致讲解各步骤中的关键配置以及代码示例,希望为读者提供有益参考和实践指导。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口来获取采购订单数据,并进行初步的数据加工。
接口配置与调用
首先,我们需要配置并调用金蝶云星空的executeBillQuery
接口。该接口使用POST方法,通过传递一系列参数来查询采购订单数据。
以下是元数据配置的关键部分:
{
"api": "executeBillQuery",
"method": "POST",
"number": "FBillNo",
"id": "FPOOrderEntry_FEntryId",
"pagination": {
"pageSize": 200
},
"idCheck": true,
...
}
该配置指定了API名称、请求方法、分页设置等基本信息。分页设置中的pageSize
为200,意味着每次请求将返回最多200条记录。
请求参数构建
请求参数是接口调用的核心部分,决定了查询结果的范围和内容。以下是主要的请求字段:
"request": [
{"field":"FPOOrderEntry_FEntryId","label":"FPOOrderEntry_FEntryId","type":"string","value":"FPOOrderEntry_FEntryId"},
{"field":"FID","label":"FID","type":"string","value":"FID"},
{"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
...
]
这些字段包括采购订单的各种属性,如单据编号(FBillNo)、供应商(FSupplierId_FNumber)、采购日期(FDate)等。这些字段将在后续的数据加工过程中被使用。
数据过滤与分页处理
为了确保查询结果符合业务需求,我们需要设置过滤条件和分页参数:
"otherRequest": [
{"field":"Limit","label":"最大行数","type":"string","value":"{PAGINATION_PAGE_SIZE}"},
{"field":"StartRow","label":"开始行索引","type":"string","value":"{PAGINATION_START_ROW}"},
{"field":"FilterString","label":"过滤条件","type":"string","value":"FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FDocumentStatus = 'C' and FPurchaseOrgId.FNumber = '100'"},
...
]
其中,FilterString
用于定义过滤条件,例如只查询审批日期在上次同步时间之后且单据状态为“已审核”的记录。此外,分页参数Limit
和StartRow
用于控制每次请求的数据量和起始位置。
数据获取与初步加工
在完成接口调用并获取到原始数据后,我们需要对数据进行初步加工。这包括字段映射、数据清洗等操作。例如,将金蝶云星空中的字段映射到目标系统中的对应字段,并处理可能存在的数据格式问题。
以下是一个简单的数据映射示例:
{
"FPOOrderEntry_FEntryId": "entry_id",
"FBillNo": "bill_no",
"FSupplierId_FNumber": "supplier_id",
...
}
通过这种方式,我们可以确保从源系统获取的数据能够无缝对接到目标系统中。
实践案例
假设我们需要同步最近一周内所有已审核的采购订单,可以按照以下步骤进行操作:
- 设置过滤条件:将
FilterString
设置为FApproveDate >= '2023-10-01' and FDocumentStatus = 'C' and FPurchaseOrgId.FNumber = '100'
。 - 分页处理:根据实际情况调整分页参数,确保能够完整获取所有符合条件的数据。
- 调用接口:通过轻易云平台发起POST请求,获取采购订单数据。
- 数据加工:对返回的数据进行字段映射和清洗,准备写入目标系统。
通过上述步骤,我们可以高效地实现从金蝶云星空到目标系统的数据集成,为业务流程提供可靠的数据支持。
轻易云数据集成平台生命周期第二步:ETL转换与写入旺店通·旗舰奇门API接口
在数据集成过程中,将源平台的数据进行ETL转换并写入目标平台是关键的一环。本文将深入探讨如何使用轻易云数据集成平台,将已经集成的源平台数据转为旺店通·旗舰奇门API接口所能接收的格式,并最终写入目标平台。
元数据配置解析
首先,我们需要理解元数据配置,这将指导我们如何进行ETL转换。以下是元数据配置的关键部分:
{
"api": "wdt.purchase.purchaseorder.createorder",
"method": "POST",
"idCheck": true,
"operation": {
"method": "merge",
"field": "FBillNo",
"bodyName": "POOrderEntry",
"bodySum": ["FQty"],
"header": ["FBillNo", "F_TPRO_LargeText", "FSupplierId_FNumber", "FProviderAddress",
"FProviderContactId_FName", "FDeliveryDate", "FSettleModeId_FName",
"F_TPRO_Base2_FNumber", "F_UEQV_Remarks"],
"body": ["FMaterialId_FNumber", "FQty", "FPrice",
"FEntryDiscount", "FEntryTaxRate", "FTaxPrice"]
},
...
}
此配置文件定义了API接口wdt.purchase.purchaseorder.createorder
,使用POST方法提交数据,并且启用了ID检查(idCheck: true
)。操作部分定义了如何合并和处理字段,特别是采购订单的头部和明细信息。
数据请求与清洗
在ETL转换过程中,首先需要从源系统获取原始数据并进行清洗。假设我们已经完成了这一阶段,现在需要将清洗后的数据映射到目标API接口所需的格式。
数据转换与写入
根据元数据配置,我们需要将源系统的数据字段映射到旺店通·旗舰奇门API接口所需的字段。以下是具体的字段映射和转换过程:
-
采购单编号 (
purchase_no
):{"field":"purchase_no","value":"{FBillNo}"}
将源系统中的
FBillNo
字段映射为目标系统中的purchase_no
。 -
供应商编号 (
provider_no
):{"field":"provider_no","value":"{FSupplierId_FNumber}"}
将源系统中的
FSupplierId_FNumber
字段映射为目标系统中的provider_no
。 -
备注 (
remark
):{"field":"remark","value":"{F_UEQV_Remarks}"}
将源系统中的
F_UEQV_Remarks
字段映射为目标系统中的remark
。 -
收货仓编号 (
receive_warehouse_nos
) 和 预计入库仓库编号 (expect_warehouse_no
):{"field":"receive_warehouse_nos","value":"{F_TPRO_Base2_FNumber}"}, {"field":"expect_warehouse_no","value":"{F_TPRO_Base2_FNumber}"}
将源系统中的同一字段
F_TPRO_Base2_FNumber
映射为两个不同的目标字段。 -
采购单详情 (
purchase_details
):{ ... {"field":"spec_no","value":"{{POOrderEntry.FMaterialId_FNumber}}"}, {"field":"num","value":"{{POOrderEntry.FQty}}"}, {"field":"price","value":"{{POOrderEntry.FPrice}}"}, {"field":"tax_rate","value":"_function {FEntryTaxRate} \/100"}, {"field":"tax_price","value":"{{POOrderEntry.FTaxPrice}}"} ... }
在处理采购单详情时,需要注意的是,数组类型的数据需要逐项处理,并且可能涉及到复杂的计算和格式转换。例如,税率(tax_rate
)需要通过函数将百分比值转换为小数形式。
提交请求
完成所有字段映射后,我们可以构建最终的请求体,并通过POST方法提交到旺店通·旗舰奇门API接口:
{
...
{
"api": "/wdt/purchase/purchaseorder/createorder",
...
{
// 构建好的请求体
...
}
}
}
通过上述步骤,我们实现了从源平台到旺店通·旗舰奇门API接口的数据ETL转换和写入。这一过程不仅确保了数据的一致性和完整性,还极大地提高了业务流程的自动化水平。