管易云数据集成到金蝶云星空:一体化采购入库单对接方案
在实际业务场景中,实现不同系统之间的数据无缝集成是一个不可忽视的挑战。本案例分享了如何通过自定义数据转换逻辑和高效的数据处理能力,将管易云的采购入库单(合格品)成功对接至金蝶云星空的分步式调入单。
首先,通过调用管易云的API接口gy.erp.purchase.arrive.get,获取实时更新的采购入库数据。为了确保无遗漏,我们采用定时抓取机制,并结合分页与限流策略,有效管理大量数据请求。同时,为了应对不同系统间的数据格式差异,利用轻易云平台提供的可视化数据流设计工具,自定义构建映射规则,从而保证数据信息的一致性。
在传输过程中的监控与告警也被纳入整体方案中,集中监控体系实时跟踪任务状态,一旦出现异常则及时进行错误重试和日志记录。这不仅提升了整个集成过程的可靠性,还为日后的故障排查提供了依据。此外,通过轻松高效地将批量处理的数据快速写入到金蝶云星空(batchSave API),该方案满足了企业对于大规模数据信息快速响应和准确性的需求。
本技术案例重点描述如何利用上述特性及技术手段,高效率、高质量地实现从管易云到金蝶云星空的数据对接解决方案。以下将深入解析具体实施步骤及关键技术要点。
调用管易云接口gy.erp.purchase.arrive.get获取并加工数据的技术案例
在数据集成过程中,调用源系统接口是关键的一步。本文将详细探讨如何通过轻易云数据集成平台调用管易云的gy.erp.purchase.arrive.get
接口获取采购入库单数据,并对其进行初步加工。
接口调用配置
首先,我们需要配置调用管易云接口的元数据。以下是相关配置:
{
"api": "gy.erp.purchase.arrive.get",
"effect": "QUERY",
"method": "POST",
"number": "code",
"id": "id",
"idCheck": true,
"request": [
{"field":"start_create","label":"start_create","type":"string","describe":"111"},
{"field":"end_create","label":"end_create","type":"string","describe":"111"},
{"field":"start_approve","label":"start_approve","type":"string","describe":"111"},
{"field":"end_approve","label":"end_approve","type":"string","describe":"111"},
{"field":"warehouse_code","label":"warehouse_code","type":"string","describe":"111"},
{"field":"supplier_code","label":"supplier_code","type":"string","describe":"111"},
{"field":"code","label":"code","type":"string","describe":"111"},
{"field":"status","label":"status","type":"string","describe":"111", "value": "1"},
{"field":"start_modify","label":"start_modify","type":"string","describe":"111", "value": "{{LAST_SYNC_TIME|datetime}}"},
{"field":"end_modify","label":"end_modify","type":"string","describe":"111", "value": "{{CURRENT_TIME|datetime}}"},
{"field":"has_cancel_data","label":"has_cancel_data","type":"string","describe":"111", "value": "false"},
{"field": "has_account", "label": "has_account", "type": "string", "describe": "111"}
],
"otherRequest":[
{"field": "page_size", "label": "page_size", "type": "string", "describe": "默认为10", "value": "{PAGINATION_PAGE_SIZE}"},
{"field": "page_no", "label": "page_no", "type": "string", "describe": "默认1", "value": "{PAGINATION_START_PAGE}"}
],
"autoFillResponse": true,
"condition_bk":[[{"field": "note", “logic”: “like”, “value”: “DBSQDJ”}]],
“condition”:[[{"field”: “note”, “logic”: “like”, “value”: “DBSQDJ”}]]
}
数据请求与清洗
在配置好元数据后,我们可以开始进行数据请求和清洗。以下是具体步骤:
-
设置请求参数:根据业务需求设置请求参数,例如时间范围、仓库代码、供应商代码等。特别注意
start_modify
和end_modify
字段,这两个字段分别使用上次同步时间和当前时间,确保只获取增量数据。 -
发送请求:使用POST方法发送请求到管易云的
gy.erp.purchase.arrive.get
接口。 -
处理响应:接收并解析响应数据。由于配置了
autoFillResponse: true
,系统会自动填充返回的数据结构。 -
数据过滤:根据业务逻辑对返回的数据进行过滤。例如,通过条件过滤字段
note
来筛选符合特定条件的数据(如包含“DBSQDJ”的记录)。
数据转换与写入
在完成初步的数据清洗后,需要将数据转换为目标系统所需的格式,并写入目标系统。这一步通常包括以下几个步骤:
-
字段映射:将源系统的数据字段映射到目标系统的字段。例如,将采购入库单的各个字段映射到金蝶分步式调入单的相应字段。
-
数据转换:根据目标系统的要求,对某些字段进行必要的转换。例如,日期格式转换、数值单位转换等。
-
批量写入:将处理好的数据批量写入目标系统。在轻易云平台上,可以通过配置相应的写入接口实现这一过程。
实践案例
假设我们需要从管易云获取某一时间段内所有状态为“已审核”的采购入库单,并将其导入金蝶分步式调入单。具体操作如下:
-
配置请求参数:
{ ... {“start_create”: “2023-01-01T00:00:00Z”}, {“end_create”: “2023-01-31T23:59:59Z”}, {“status”: “1”} ... }
-
调用接口并获取响应:
{ ... “data”: [ { “code”: “PO123456”, “warehouse_code”: “WH001”, ... }, ... ] ... }
-
数据过滤与转换:
- 筛选出符合条件的数据。
- 将每条记录中的字段映射到金蝶分步式调入单对应的字段。
-
批量写入金蝶系统:
- 使用轻易云平台提供的写入功能,将处理好的数据批量导入金蝶分步式调入单。
通过以上步骤,我们实现了从管易云获取采购入库单并导入金蝶分步式调入单的全过程。这不仅提高了数据处理效率,还确保了数据的一致性和准确性。
使用轻易云数据集成平台将管易采购入库单转换为金蝶分步式调入单
在数据集成过程中,将源平台的数据转换为目标平台可接受的格式是关键步骤。本文将深入探讨如何利用轻易云数据集成平台将管易采购入库单转换为金蝶云星空API接口所能接收的分步式调入单。
元数据配置解析
元数据配置是实现数据转换和写入的核心。以下是关键字段及其配置解析:
-
单据编号 (FBillNo)
- 类型:string
- 描述:单据编号
- 直接从源数据中获取并传递。
-
调入库存组织 (FStockOrgID)
- 类型:string
- 描述:调入库存组织
- 通过
ConvertObjectParser
解析器,将源数据中的库存组织编号转换为金蝶系统中的编号。 - 示例:
_findCollection find FStockInOrgID from 65ecfea9-6416-381a-b85e-6f6cddd2cbd4 where FSrcBillNo={note}
-
日期 (FDate)
- 类型:string
- 描述:日期
- 直接从源数据中获取并传递。
-
单据类型 (FBillTypeID)
- 类型:string
- 描述:单据类型
- 固定值,使用
ConvertObjectParser
解析器进行转换。 - 示例:
FBDR01_SYS
-
调入货主类型 (FOwnerTypeIdHead)
- 类型:string
- 描述:调入货主类型
- 固定值,直接指定为
BD_OwnerOrg
。
-
调入货主 (FOwnerIdHead)
- 类型:string
- 描述:调入货主
- 通过
ConvertObjectParser
解析器,将源数据中的货主编号转换为金蝶系统中的编号。 - 示例:
_findCollection find FOwnerInIdHead from 65ecfea9-6416-381a-b85e-6f6cddd2cbd4 where FSrcBillNo={note}
-
明细信息 (FSTKTRSINENTRY)
- 类型:array
- 描述:明细信息,包含多个子字段,如物料编码、调出仓库、调入仓库等。
明细信息字段解析:
-
物料编码 (FMaterialID)
- 类型:string
- 描述:物料编码
- 使用
ConvertObjectParser
解析器进行转换。 - 示例:
_findCollection find FNumber from a430738b-c21a-3683-832c-4b519dc241ba where F_UQRW_Text={{details.item_code}}
-
调出仓库 (FSrcStockID)
- 类型:string
- 描述:调出仓库
- 使用
ConvertObjectParser
解析器进行转换。 - 示例:
_findCollection find FStockId from 98bf6a98-2c84-3a7f-a277-f69462371e90 where FBillNo={FSrcBillNo} F_UQRW_BaseProperty={{details.item_code}}
-
调入仓库 (FDestStockID)
- 类型:string
- 描述:调入仓库
- 使用
ConvertObjectParser
解析器进行转换。 - 示例:
_findCollection find FNumber from 2d028336-2f80-3a32-9f6d-70cda23b44ad where F_UQRW_Text={warehouse_code}
-
调入数量 (FQty)
- 类型:string
- 描述:调入数量
- 从源数据中直接获取并传递。
数据请求与清洗
在实现上述字段的配置后,需要进行数据请求与清洗。通过调用API接口,将处理后的数据发送到金蝶云星空平台。以下是具体步骤:
- 构建请求体
根据元数据配置构建请求体,确保所有字段按照目标平台要求格式化。例如:
{
"FormId": "STK_TRANSFERIN",
"Operation": "BatchSave",
"IsAutoSubmitAndAudit": true,
"IsVerifyBaseDataField": false,
"Model": {
"FBillNo": "20231001",
"FStockOrgID": {"FNumber": "1001"},
"FDate": "2023-10-01",
...
"FSTKTRSINENTRY": [
{
"FMaterialID": {"FNumber": "MAT001"},
"FSrcStockID": {"FNumber": "WH001"},
...
}
]
}
}
- 发送请求
使用POST方法调用金蝶云星空的batchSave API接口:
POST /k3cloud/api/batchSave HTTP/1.1
Host: k3cloud.kingdee.com
Content-Type: application/json
{
// 请求体内容...
}
- 处理响应
接收并处理API响应,确保数据成功写入目标平台,并根据需要进行错误处理和日志记录。
总结
通过详细配置元数据和调用API接口,可以高效地将管易采购入库单转换为金蝶分步式调入单。这一过程不仅提高了业务流程的自动化程度,还确保了不同系统间的数据一致性和准确性。