FD003-非生产性付款申请 泛微=>金蝶付款单-443 数据集成案例分享
在企业信息化系统中,数据的高效流动和准确对接是提升业务效率的关键。本文将聚焦于一个具体的系统对接集成案例:如何通过轻易云数据集成平台,将泛微OA-Http的数据无缝集成到金蝶云星空中,实现非生产性付款申请的自动化处理。
背景与挑战
在本次方案FD003中,我们需要将泛微OA-Http中的非生产性付款申请数据,通过其提供的API接口/api/workflow/paService/getWorkflowRequest
抓取,并批量写入到金蝶云星空的付款单模块。这个过程中,我们面临以下几个技术挑战:
- 高吞吐量的数据写入能力:确保大量数据能够快速被集成到金蝶云星空中,提升数据处理时效性。
- 实时监控与告警系统:需要实时跟踪数据集成任务的状态和性能,及时发现并处理异常情况。
- 分页和限流问题:处理泛微OA-Http接口的数据分页和限流,以保证稳定的数据获取过程。
- 数据格式差异:解决泛微OA-Http与金蝶云星空之间的数据格式差异,实现定制化的数据映射对接。
解决方案概述
为了应对上述挑战,我们采用了以下技术手段:
- 高效的数据抓取机制:通过定时任务可靠地从泛微OA-Http接口获取最新的付款申请数据,确保不漏单。
- 批量数据写入:利用金蝶云星空提供的
batchSave
API,实现大量数据快速写入,提高整体处理效率。 - 自定义转换逻辑:针对不同平台间的数据结构差异,设计了灵活的数据转换规则,使得每条记录都能正确映射到目标系统中。
- 集中监控与告警:通过轻易云平台提供的集中监控和告警功能,实时跟踪整个数据集成过程,并在出现异常时及时通知相关人员进行处理。
技术要点解析
首先,在泛微OA-Http端,我们使用其API /api/workflow/paService/getWorkflowRequest
定时抓取待处理的付款申请记录。为了解决分页和限流的问题,我们设计了一套智能调度机制,根据实际返回结果动态调整请求参数,从而保证了稳定、高效的数据获取。
其次,在将这些数据写入到金蝶云星空之前,需要进行一系列自定义转换操作。这些操作包括字段映射、格式转换以及必要的数据清洗,以确保每条记录都符合目标系统的要求。最终,通过调用金蝶云星空的 batchSave
API,将经过处理后的数据批量导入到相应模块中。
最后,为了保障整个流程的顺利运行,我们依托轻易云平台强大的监控和告警功能,对每个环节进行实时追踪。一旦检测到异常情况,如网络延迟或接口响应错误,系统会立即发出告警通知,并触发相应的重试机制,以最大程度减少业务影响。
以上是本次案例分享开篇部分内容。在后续章节中,我们将详细介绍具体实现步骤及技术细节,包括如何配置各项参数、编写转换逻辑,以及优化性能的方法等。
调用泛微OA-Http接口获取并加工数据的技术实现
在轻易云数据集成平台中,生命周期的第一步是调用源系统接口获取数据。本文将详细探讨如何通过调用泛微OA-Http接口/api/workflow/paService/getWorkflowRequest
来获取并加工处理非生产性付款申请的数据。
接口配置与请求参数
首先,我们需要配置元数据以便正确调用泛微OA-Http接口。以下是关键的元数据配置:
{
"api": "/api/workflow/paService/getWorkflowRequest",
"effect": "QUERY",
"method": "GET",
"number": "requestId",
"id": "requestId",
"name": "id",
"idCheck": true,
"request": [
{
"field": "workflowId",
"label": "e9流程id",
"type": "string",
"value": "443"
},
{
"field": "workflowIdList",
"label": "workflowIdList中间方案ID",
"type": "string",
"value":"2356388e-8c49-35b3-bb7e-1eca1a8617d5"
}
],
...
}
在这个配置中,api
字段指定了我们要调用的API路径,method
字段定义了HTTP方法为GET。请求参数包括两个字段:workflowId
和workflowIdList
,分别代表流程ID和中间方案ID。
数据过滤与条件设置
为了确保我们只获取到需要的数据,可以通过设置条件进行过滤。在本例中,我们使用了两个条件:
"condition_bk":[[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"预付款"}]],
"condition":[[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"预付款"}],[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"Prepayment"}]]
这些条件确保我们只提取“预付款”类型的数据,无论其中文或英文表示。
数据抓取与清洗
一旦配置完成并发送请求,我们会从泛微OA系统中接收到原始数据。此时,需要对数据进行清洗和初步处理,以便后续步骤中的转换和写入操作。
- 去重与验证:根据元数据中的
idCheck: true
配置,我们会自动检查返回结果中的requestId
字段是否重复,以避免重复记录。 - 字段映射:将原始数据中的字段映射到目标系统所需的格式。例如,将
workflowMainTableInfo.fklx
映射为目标系统中的相应字段。 - 异常处理:如果在抓取过程中遇到异常情况(如网络问题或API限流),可以利用平台提供的实时监控和告警系统及时发现并处理问题。
实践案例
假设我们成功调用了接口,并获得如下部分响应:
{
...
“data”: [
{
“requestId”: “12345”,
“workflowMainTableInfo”: {
“fklx”: “预付款”,
...
}
},
...
]
}
在这个响应中,我们重点关注 requestId
和 fklx
字段。根据前述条件设置,只要 fklx
为“预付款”,该记录就符合我们的要求,将被进一步处理。
高效的数据写入与监控
经过清洗后的数据将被快速写入到金蝶云星空系统。这一步骤同样至关重要,因为它直接影响到业务流程的连续性和准确性。轻易云平台支持高吞吐量的数据写入能力,使得大量数据能够快速被集成。此外,通过集中监控和告警系统,可以实时跟踪每个集成任务的状态和性能,确保整个过程透明可控。
总结来说,通过合理配置元数据、精确设置过滤条件以及有效地清洗和处理数据,可以大幅提升从泛微OA-Http接口获取并加工非生产性付款申请数据的效率和准确性。这不仅优化了业务流程,还为后续的数据转换与写入奠定了坚实基础。
集成方案:FD003-非生产性付款申请 泛微=>金蝶付款单-443
在集成平台生命周期的第二步中,关键任务是将从泛微OA系统获取的数据进行ETL(提取、转换、加载)处理,并转换为金蝶云星空API接口所能接受的格式,最终写入目标平台。本文将详细探讨这一过程中的技术细节和实现方法。
数据提取与转换
首先,从泛微OA系统中提取数据。通过调用泛微OA-Http接口/api/workflow/paService/getWorkflowRequest
,获取非生产性付款申请的数据。这些数据通常包含多个字段,如单据编号、单据类型、币别、业务日期等。需要注意的是,泛微OA系统的数据结构与金蝶云星空的API格式存在差异,因此必须进行数据转换。
{
"FBillNo": "{{workflowMainTableInfo.djb}}",
"FBillTypeID": "FKDLX02_SYS",
"FCURRENCYID": "_findCollection find FNumber from 5740d4e3-ebe8-3548-9635-f35e1fdc983b where FCODE={{workflowMainTableInfo.bberp}}",
"FDATE": "{{workflowMainTableInfo.sqrq}}",
...
}
以上配置片段展示了部分字段的映射关系。需要特别注意以下几点:
- 字段转换:例如,
FCURRENCYID
字段需要通过特定的查找逻辑,从泛微系统中的币别代码转换为金蝶系统中的FNumber。 - 数据解析器:使用
ConvertObjectParser
等解析器,将复杂的对象或编码转换为目标系统能识别的格式。 - 自定义逻辑:某些字段如
FCONTACTUNITTYPE
,需要根据具体业务逻辑进行条件判断和转换,这里使用了_function case
语句来实现。
数据加载
在完成数据转换后,需要通过金蝶云星空API接口将数据写入目标平台。这里使用的是批量保存接口batchSave
,以确保高效处理大量数据。
{
"FormId": "AP_PAYBILL",
"Operation": "BatchSave",
"IsAutoSubmitAndAudit": false,
"IsVerifyBaseDataField": true,
"Model": {
"FBillNo": "...",
...
"FPAYBILLENTRY": [
{
"FSETTLETYPEID": "JSFS04_SYS",
...
}
]
}
}
上述配置片段展示了批量保存操作的基本结构和参数设置。以下是关键点:
- 表单ID:必须指定金蝶的表单ID,如
AP_PAYBILL
,以确保接口能够正确识别和处理提交的数据。 - 操作类型:设置为
BatchSave
,表示进行批量保存操作。 - 自动提交与审核:根据实际需求设置是否自动提交并审核,这里设置为false。
- 基础资料验证:启用基础资料验证,以确保所有基础资料字段的有效性。
异常处理与性能优化
在实际操作中,需要考虑异常处理和性能优化:
- 分页与限流:对于泛微OA接口的数据提取,可以采用分页机制,以防止一次性请求过多数据导致超时或失败。同时,通过限流策略控制请求频率,避免对服务器造成过大压力。
- 错误重试机制:对于金蝶云星空API的调用,可以实现错误重试机制。例如,在网络故障或服务器异常时,可以自动重试提交请求,以提高成功率。
- 实时监控与日志记录:通过集成平台提供的监控和告警系统,实时跟踪数据集成任务的状态和性能,并记录详细日志以便后续分析和问题排查。
数据质量与一致性
确保数据质量和一致性是ETL过程中的重要环节:
- 数据校验:在数据提取和转换过程中,对关键字段进行校验,如单据编号、金额等,确保数据完整性和准确性。
- 异常检测:利用平台提供的数据质量监控功能,及时发现并处理异常数据。例如,对于缺失或格式错误的数据,可以记录日志并发送告警通知。
综上所述,通过合理配置元数据并结合适当的技术手段,可以高效地完成从泛微OA到金蝶云星空的数据集成任务,实现非生产性付款申请的数据无缝对接。