案例分享:金蝶云星空数据集成到金蝶云星空之委外领料-其他出库单
在本篇技术文章中,我们将聚焦于一个系统对接集成案例,具体实现了从金蝶云星空中的数据获取并存入另一套金蝶云星空系统,即委外领料-其他出库单的迁移过程。这个实际运行的方案涵盖了一系列关键性技术点和步骤,包括API调用、数据转换与映射、高效批量写入等。
首先,利用轻易云强大的可视化操作界面,我们定义并执行了多个集成任务。这些任务确保我们能够定时可靠地抓取源系统的数据,并应用自定义的数据转换逻辑以适应目标系统的业务需求和结构。特别是,通过executeBillQuery API接口,我们准确地从源系统提取了有关‘委外领料’和‘其他出库单’的具体内容,这一步骤通过集中监控和告警体系得到了实时跟踪,以保证数据抓取过程中无遗漏,同时也便于及时发现并处理任何突发问题。
为了应对批量数据快速写入需求,batchSave API接口被用来完成这项至关重要的任务。该接口支持高吞吐量,使得大量处理后的记录能迅速、安全地传输至目标系统,大大提升整体操作时效性。此外,在此过程中为了解决分页和限流问题,针对性的策略及重试机制被部署以避免因网络波动或请求频率过高而导致的数据传输失败。
额外需要关注的是两套金蝶云星空系统间可能存在的数据格式差异,这是很多企业在实际操作中面临的一大难点。在本次案例实践中,自定义的数据映射工具发挥了核心作用,使我们可以根据特定要求精准调整字段匹配,从而有效解决这一疑难问题。同时,通过实时监控数据处理状态以及详细日志记录,不仅增强透明度,还进一步优化了故障诊断及恢复流程,加强整体运行稳定性。
以上简述展示了一整套完整且高效的解决方案框架,为后续展开更深入细节讨论奠定基础。下一步,将逐一解析这些关键环节,并提供具体实施步骤与代码示例,以便读者能够全面理解并复用到自己的项目场景中去。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口来获取并加工数据。
接口配置与调用
首先,我们需要配置元数据,以便正确调用金蝶云星空的executeBillQuery
接口。以下是一个典型的元数据配置示例:
{
"api": "executeBillQuery",
"method": "POST",
"number": "FBillNo",
"id": "Fentity_FEntryID",
"pagination": {
"pageSize": 500
},
"idCheck": true,
"request": [
{"field":"Fentity_FEntryID","label":"Fentity_FEntryID","type":"string","describe":"Fentity_FEntryID","value":"Fentity_FEntryID"},
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"FBillNo"},
{"field":"FDocumentStatus","label":"单据状态","type":"string","describe":"单据状态","value":"FDocumentStatus"},
{"field":"FApproverid_FName","label":"审核人_名称","type":"string","describe":"审核人_名称","value":"FApproverid.FName"},
{"field":"FApproveDate","label":"审核日期","type":"string","describe":"审核日期","value":"FApproveDate"},
{"field":"FModifierId_FName","label":"修改人_名称","type":"string","describe":"修改人_名称","value":"FModifierId.FName"},
{"field":"FCreateDate","label":"创建日期","type":"string","describe":"创建日期","value":"FCreateDate"},
{"field":"FCreatorId_FName","label":"创建人_名称","type":"string","describe":"创建人_名称","value":"FCreatorId.FName"},
{"field":"FModifyDate","label":"修改日期","type":"string","describe":"修改日期","value":"FModifyDate"},
{"field":...}
],
"otherRequest": [
{"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"},
{"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"},
{"field":...}
]
}
请求参数解析
在上述配置中,关键字段包括:
api
: 指定要调用的API接口,这里为executeBillQuery
。method
: HTTP请求方法,这里为POST
。number
: 主键字段,用于唯一标识记录。id
: 分录主键字段,用于唯一标识分录记录。pagination
: 分页参数,指定每页返回的数据量。request
: 请求参数列表,定义了需要从源系统获取的字段及其属性。otherRequest
: 其他请求参数,如分页和过滤条件。
数据请求与清洗
通过上述配置,我们可以构建HTTP请求以获取所需数据。以下是一个示例请求体:
{
"FormId": "SUB_PickMtrl",
"FieldKeys": [
... // 列出所有需要查询的字段
],
"FilterString": "...", // 根据业务需求设置过滤条件
...
}
在实际操作中,我们可以利用轻易云平台提供的可视化界面来构建和发送此请求,并实时监控其执行情况。
数据转换与写入
获取到原始数据后,需要对其进行清洗和转换,以符合目标系统的数据格式和业务逻辑。例如,可以使用轻易云平台内置的数据转换工具,对字段进行映射、格式化处理等。
以下是一个简单的数据转换示例:
{
// 原始数据
...
}
通过上述步骤,我们可以实现从金蝶云星空系统到目标系统的数据无缝对接,确保数据的一致性和完整性。
实践案例
假设我们需要集成“委外领料-其他出库单”业务场景,可以按照以下步骤进行操作:
- 配置元数据:根据业务需求,设置所需字段及其属性。
- 构建请求:利用轻易云平台构建HTTP请求,调用
executeBillQuery
接口获取原始数据。 - 数据清洗:对获取到的数据进行清洗和转换,确保符合目标系统要求。
- 写入目标系统:将处理后的数据写入目标系统,实现业务流程的自动化。
通过以上步骤,可以高效地完成从源系统到目标系统的数据集成任务,为企业提供可靠的数据支持。
使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口
在数据集成生命周期的第二步中,我们将已经集成的源平台数据进行ETL(提取、转换、加载)转换,转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。以下是详细的技术步骤和配置说明。
配置API接口元数据
在进行ETL转换之前,需要配置好金蝶云星空API接口的元数据。以下是一个典型的元数据配置示例:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"method": "merge",
"field": "FBillNo,FDate",
"bodyName": "details",
"bodySum": ["FActualQty"],
"header": ["FBillNo", "FDate", "FSubOrgId_FNumber", "FStockOrgId_FNumber"],
"body": ["FMaterialId_FNumber", "FActualQty", "FSubOrgId_FNumber"]
},
...
}
该配置定义了如何将源数据映射到目标系统中的字段,包括主表和子表的数据结构。
数据请求与清洗
在数据请求阶段,我们从源系统获取原始数据,并进行必要的清洗和预处理。这一步通常包括对缺失值、异常值的处理,以及对字段类型的一致性检查。
数据转换
接下来,我们使用轻易云的数据转换功能,将清洗后的数据按照金蝶云星空API接口要求的格式进行转换。以下是具体的字段映射和转换逻辑:
-
单据编号 (FBillNo):
- 类型:字符串
- 描述:单据编号
- 映射:直接映射
{FBillNo}
-
单据类型 (FBillTypeID):
- 类型:字符串
- 描述:单据类型
- 转换器:
ConvertObjectParser
,参数为FNumber
- 固定值:
QTCKD10_SYS
-
库存组织 (FStockOrgId) 和 领用组织 (FPickOrgId):
- 类型:字符串
- 描述:组织
- 转换器:
ConvertObjectParser
,参数为FNumber
- 映射逻辑:
case when '{FStockOrgId_FNumber}' ='100' then '104' when '{FStockOrgId_FNumber}' ='202' then '120' else '109' end
-
日期 (FDate):
- 类型:字符串
- 描述:日期
- 映射:直接映射
{FDate}
-
货主类型 (FOwnerTypeIdHead) 和 货主 (FOwnerIdHead):
- 类型:字符串
- 描述:多类别基础资料列表和多类别基础资料
- 转换器:
ConvertObjectParser
,参数为FNumber
- 固定值:
BD_OwnerOrg
- 映射逻辑同库存组织
-
明细信息 (FEntity): 包含多个子字段,如物料编码、实发数量等。
-
物料编码 (FMaterialId):
- 类型:字符串
- 描述:基础资料
- 转换器:
ConvertObjectParser
,参数为FNumber
- 映射:直接映射
{FMaterialId_FNumber}
-
实发数量 (FQty):
- 类型:字符串
- 描述:数量
- 映射:直接映射
{FActualQty}
-
发货仓库 (FStockId):
- 类型:字符串
- 描述:基础资料
- 固定值:
CK001
数据写入
完成数据转换后,我们使用配置好的API接口将数据写入金蝶云星空。以下是请求示例:
{
"FormId": "STK_MisDelivery",
"IsAutoSubmitAndAudit": false,
"IsVerifyBaseDataField": false,
"Operation": "Save",
...
}
通过POST请求,将处理后的数据发送到金蝶云星空的批量保存接口 batchSave
。
总结
以上步骤详细描述了如何使用轻易云数据集成平台,将源平台的数据经过ETL转换后,成功写入到金蝶云星空API接口中。通过合理配置元数据和灵活应用转换规则,可以确保数据无缝对接,提高业务效率和透明度。