JY-BDS新增供应商:吉客云数据集成到金蝶云星空
在企业信息化系统中,数据的高效流动和准确对接是业务顺利运行的关键。本文将分享一个实际案例——如何通过JY-BDS新增供应商方案,将吉客云的数据无缝集成到金蝶云星空。
背景与挑战
在本次集成项目中,我们需要解决以下几个技术难题:
- 高吞吐量的数据写入:确保大量供应商数据能够快速、稳定地从吉客云导入到金蝶云星空。
- 实时监控与告警:提供集中监控和告警系统,实时跟踪数据集成任务的状态和性能,确保每一条数据都不漏单。
- API资产管理:通过统一视图和控制台全面掌握API资产的使用情况,实现资源的高效利用和优化配置。
- 数据质量监控与异常检测:及时发现并处理数据问题,保证数据的一致性和完整性。
- 自定义数据转换逻辑:适应特定业务需求和不同平台的数据结构差异。
技术方案概述
为了实现上述目标,我们采用了轻易云平台提供的一系列功能模块,通过可视化的数据流设计工具,使得整个集成过程更加直观且易于管理。具体步骤如下:
- 调用吉客云接口
erp.vend.get
获取供应商数据:我们首先需要定时可靠地抓取吉客云接口中的供应商信息,并处理分页和限流问题,以确保所有数据都能被完整获取。 - 自定义转换逻辑处理:针对吉客云与金蝶云星空之间的数据格式差异,我们设计了自定义转换逻辑,以适应两者不同的数据结构要求。
- 批量写入金蝶云星空
batchSave
接口:通过高吞吐量的数据写入能力,将处理后的供应商信息批量导入到金蝶云星空中,提升整体效率。 - 实时监控与日志记录:在整个过程中,我们实现了对每个环节的实时监控,并记录详细日志以便后续审计和问题排查。
关键技术点
- 分页与限流处理:为了解决大规模数据抓取时可能遇到的分页及限流问题,我们设计了一套智能调度机制,确保每次请求都能成功返回所需的数据片段。
- 异常处理与错误重试机制:针对可能出现的网络波动或服务异常情况,我们实现了自动错误重试机制,以保证任务执行的连续性和稳定性。
- 定制化映射规则:根据业务需求,对不同字段进行精细化映射,使得最终导入的数据完全符合金蝶云星空的标准。
通过以上技术手段,本次JY-BDS新增供应商方案不仅有效解决了跨平台数据集成中的诸多挑战,还显著提升了企业在供应链管理方面的信息化水平。接下来我们将详细介绍各个步骤及其实现细节。
调用吉客云接口erp.vend.get获取并加工数据
在轻易云数据集成平台的生命周期中,第一步是调用源系统吉客云的接口erp.vend.get
来获取供应商数据,并进行初步加工处理。这一步骤至关重要,因为它决定了后续数据转换和写入阶段的数据质量和完整性。
接口调用配置
首先,我们需要配置元数据,以便正确调用吉客云的API接口。以下是关键的元数据配置项:
- api:
erp.vend.get
- method:
POST
- number:
code
- id:
vendId
- pagination: 每页50条记录
- idCheck: 启用ID检查
请求参数包括分页信息和时间范围,用于增量抓取修改过的数据:
{
"pageIndex": "1",
"pageSize": "50",
"gmtModifiedStart": "{{LAST_SYNC_TIME|datetime}}",
"gmtModifiedEnd": "{{CURRENT_TIME|datetime}}"
}
数据请求与清洗
在实际操作中,轻易云平台通过异步方式发送HTTP POST请求到吉客云API。为了确保高效的数据抓取,我们需要处理分页和限流问题。每次请求返回的数据量不超过50条,通过递增pageIndex
参数实现多页抓取。
- 分页处理:设置初始
pageIndex
为1,每次请求后检查返回结果是否为空,如果不为空则继续下一页。 - 时间范围过滤:使用上次同步时间(
LAST_SYNC_TIME
)和当前时间(CURRENT_TIME
)作为过滤条件,只抓取在此期间内修改过的数据。
数据转换与写入准备
在获取到原始数据后,需要对其进行初步清洗和转换,以适应目标系统金蝶云星空的要求。这包括但不限于:
- 字段映射:将吉客云中的字段名映射到金蝶云星空所需的字段名。例如,将
vendId
映射为目标系统中的供应商ID。 - 格式转换:根据业务需求,对日期、数值等字段进行格式化处理。
例如,将原始JSON数据中的供应商名称字段从“name”转换为目标系统所需的“supplierName”:
{
"supplierName": "{{name}}"
}
异常处理与监控
为了确保集成过程的可靠性,轻易云平台提供了实时监控和告警功能。如果在调用API过程中出现错误或异常(如网络超时、API限流),系统会自动记录日志并触发告警机制。同时,可以设置重试策略,在一定次数内自动重试失败的请求。
此外,通过自定义脚本,可以实现更复杂的数据清洗逻辑,例如去除重复记录、合并多条相关记录等。这些操作可以通过轻易云平台提供的可视化工具直观地设计和管理,大大简化了开发工作。
确保数据完整性
为了避免漏单情况发生,启用了ID检查功能(idCheck)。这意味着每次抓取到的新数据都会与已有数据进行比对,确保没有遗漏任何一条新增或更新记录。同时,通过定时任务机制,可以定期自动触发数据同步操作,进一步提高集成过程的可靠性。
综上所述,通过合理配置元数据并利用轻易云平台强大的异步处理能力,我们能够高效地从吉客云获取并加工供应商数据,为后续的数据转换与写入奠定坚实基础。
使用轻易云数据集成平台实现吉客云到金蝶云星空的ETL转换与写入
在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。以下是如何通过轻易云数据集成平台完成这一过程的详细技术实现。
1. 数据请求与清洗
首先,通过调用吉客云的接口erp.vend.get
获取供应商数据。这一步主要涉及到分页和限流问题的处理,以确保高效、稳定地抓取数据。需要特别注意的是,吉客云接口的数据结构可能与金蝶云星空所要求的数据格式存在差异,因此在请求过程中就要开始考虑这些差异。
2. 数据转换逻辑
接下来,我们需要根据金蝶云星空API接口的要求对数据进行转换。这里我们采用元数据配置来定义具体的转换规则。以下是部分关键配置项:
{
"api": "batchSave",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 10,
"method": "batchArraySave"
},
"request": [
{"field": "FNumber", "label": "编码", "type": "string", "value": "{code}"},
{"field": "FName", "label": "名称", "type": "string", "value": "{name}"},
{"field": "FUseOrgId", "label": "使用组织",
"type": "string",
"parser":{"name":"ConvertObjectParser","params":"FNumber"},
"value":"100"},
{"field": "FCreateOrgId",
"label":"创建组织",
...
在这个配置中,我们可以看到针对不同字段进行了特定的转换和映射。例如:
FNumber
字段直接从源数据的code
字段映射过来。FUseOrgId
和FCreateOrgId
字段通过一个名为ConvertObjectParser
的解析器,将值统一设置为“100”。- 对于复杂对象如供应商分组和基本信息,也通过自定义逻辑进行转换。
3. 自定义逻辑与条件判断
元数据配置中还包含了一些自定义逻辑,例如根据不同的分类ID(classId
)来确定供应商分组和供应类别:
{
...
{"label":"供应商分组","field":"FGroup","type":"string","value":"_function case '{classId}' when '7' then 'VECF00001' when '8' then 'VENC00001 ' end","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"label":"基本信息","field":"FBaseInfo","type":"object","children":[{"parent":"FBaseInfo","label":"供应类别","field":"FSupplyClassify","type":"string","value":"_function case '{classId}' when '7' then 'FW' when '8' then 'CG ' end"}]}
}
这种条件判断确保了不同类型的数据能够被正确地映射到金蝶云星空所需的格式。
4. 数据写入目标平台
经过上述步骤的数据转换后,最终需要将这些数据批量写入到金蝶云星空。这里我们使用了批量保存API batchSave
,并设置了相关操作参数:
{
...
{"field":"FormId","label":"业务对象表单Id","type":"string","describe":"必须填写金蝶的表单ID如:PUR_PurchaseOrder","value":"BD_Supplier"},
{"field":"Operation","label":"执行的操作","type":"string","value":"batchSave"},
{"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","describe":"是否验证所有的基础资料有效性,布尔类,默认false(非必录)","value":"false"},
{"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","value":"true"}
}
这部分配置确保了在数据写入时能够自动提交并审核,从而简化了后续操作流程。
5. 异常处理与重试机制
在实际操作过程中,不可避免会遇到一些异常情况,例如网络波动或接口限流问题。因此,需要设计健壮的异常处理与重试机制。例如,当批量保存失败时,可以捕获错误信息,并根据错误类型决定是否进行重试或记录日志以供后续排查。
6. 实时监控与日志记录
为了确保整个集成过程透明且可追溯,轻易云提供了实时监控和日志记录功能。这些功能可以帮助我们实时跟踪每个任务的状态和性能,并及时发现和处理潜在的问题。
通过上述步骤,我们可以高效地将吉客云的数据经过ETL转换后,成功写入到金蝶云星空。这一过程不仅保证了数据的一致性和完整性,还极大提升了业务处理效率。