集成泛微OA与金蝶云:非生产性付款申请自动化方案
集成方案: FD003-非生产性付款申请 泛微=>金蝶付款单-393
在企业信息化系统的集成过程中,数据的高效流动和准确对接是关键。本文将分享一个具体的系统对接案例:如何通过轻易云数据集成平台,将泛微OA-Http的数据无缝集成到金蝶云星空中,实现非生产性付款申请的自动化处理。
本次集成方案FD003旨在将泛微OA-Http中的非生产性付款申请数据,通过调用其API接口/api/workflow/paService/getWorkflowRequest
,批量写入到金蝶云星空的付款单模块。为了确保数据不漏单且快速写入,我们采用了以下技术特性:
-
高吞吐量的数据写入能力:通过优化数据传输通道,使得大量付款申请数据能够迅速从泛微OA-Http系统中提取,并可靠地写入到金蝶云星空中。
-
实时监控与告警系统:在整个数据集成过程中,利用集中监控和告警功能,实时跟踪任务状态和性能指标,确保每一笔数据都能准确无误地完成传输。
-
自定义数据转换逻辑:针对泛微OA-Http与金蝶云星空之间的数据格式差异,我们设计了灵活的转换逻辑,以适应不同业务需求和复杂的数据结构。
-
分页与限流处理:为应对泛微OA-Http接口的分页和限流问题,我们实现了智能抓取机制,定时可靠地获取所需数据,并进行批量处理。
-
异常处理与错误重试机制:在对接过程中,如果出现任何异常情况或错误,我们设置了完善的重试机制,以保证最终所有数据都能成功写入目标平台。
通过这些技术手段,本次集成方案不仅提升了业务流程的自动化程度,还显著提高了整体效率,为企业提供了一套稳定、可靠的数据对接解决方案。在后续章节中,我们将详细介绍具体实施步骤及技术细节。
调用泛微OA-Http接口获取并加工数据
在轻易云数据集成平台的生命周期中,第一步是调用源系统接口以获取原始数据。本文将详细探讨如何通过泛微OA-Http接口/api/workflow/paService/getWorkflowRequest
来实现这一过程,并对数据进行初步加工处理。
接口配置与调用
首先,我们需要配置和调用泛微OA-Http接口。根据提供的元数据配置,可以看到该接口使用GET方法进行查询操作,主要参数包括workflowId
和workflowIdList
。这些参数用于指定要查询的工作流ID和相关的中间方案ID。
{
"api": "/api/workflow/paService/getWorkflowRequest",
"effect": "QUERY",
"method": "GET",
"number": "requestId",
"id": "requestId",
"name": "id",
"idCheck": true,
...
}
在实际操作中,我们需要确保这些参数正确传递,以便成功获取所需的数据。例如:
GET /api/workflow/paService/getWorkflowRequest?workflowId=393&workflowIdList=2356388e-8c49-35b3-bb7e-1eca1a8617d5
数据过滤与条件设置
为了确保我们只获取到符合特定条件的数据,可以利用元数据中的条件配置项。在本案例中,我们设置了两个条件,分别是:
workflowMainTableInfo.fklx = '预付款'
workflowMainTableInfo.fklx = 'Prepayment'
这些条件用于过滤出类型为“预付款”或“Prepayment”的工作流请求。这种多语言支持可以确保系统在不同语言环境下都能正常运行。
"condition":[
[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"预付款"}],
[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"Prepayment"}]
]
数据清洗与转换
一旦成功获取到原始数据,下一步就是对其进行清洗和转换。轻易云平台提供了强大的自定义数据转换逻辑功能,使得我们能够根据业务需求对数据进行灵活处理。例如,将字段名从中文转换为英文,或者将日期格式统一为标准格式等。
假设我们从泛微OA获取到以下原始数据:
{
"requestId": "12345",
"workflowMainTableInfo": {
"fklx": "预付款"
},
...
}
我们可以通过自定义逻辑将其转换为目标系统所需的格式,例如金蝶云星空所需的格式:
{
"id": "12345",
"paymentType": "Prepayment"
}
异常处理与监控
在整个过程中,异常处理和实时监控也是至关重要的一环。轻易云平台提供了集中的监控和告警系统,可以实时跟踪每个数据集成任务的状态和性能。一旦发现异常情况,如网络超时、接口返回错误等,可以及时触发告警并采取相应措施。
此外,对于分页和限流问题,也需要特别注意。在调用泛微OA-Http接口时,如果返回的数据量较大,需要实现分页机制,以避免一次性请求过多数据导致性能问题。同时,还要考虑API限流策略,以防止因频繁调用而被封禁。
总结
通过以上步骤,我们可以高效地调用泛微OA-Http接口获取原始数据,并对其进行初步加工处理,为后续的数据写入阶段打下坚实基础。在这个过程中,合理配置API参数、设置过滤条件、实施自定义转换逻辑以及做好异常处理和监控,是确保整个流程顺利进行的重要保障。
集成方案FD003:非生产性付款申请数据ETL转换与写入金蝶云星空
在集成平台生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将详细探讨如何通过轻易云数据集成平台实现这一过程。
数据请求与清洗
首先,通过泛微OA-Http接口获取源数据。为了确保数据完整性和一致性,我们需要处理分页和限流问题。使用定时任务可靠地抓取接口数据,并通过自定义逻辑清洗和规范化这些数据。
数据转换与写入
接下来,将清洗后的数据进行ETL转换,遵循金蝶云星空API接口的要求。以下是主要字段的配置和转换逻辑:
- 单据编号(FBillNo):直接映射。
- 单据类型(FBillTypeID):根据业务需求设置为“其他业务付款单(FKDLX02_SYS)”。
- 币别(FCURRENCYID):通过
ConvertObjectParser
解析,将币别代码映射为金蝶系统中的对应值。 - 业务日期(FDATE):从源数据中提取并直接映射。
- 结算组织(FSETTLEORGID)和付款组织(FPAYORGID):利用
ConvertObjectParser
解析,将组织名称转换为金蝶系统中的唯一标识。 - 往来单位类型及单位:根据源数据中的单位类型,通过条件判断逻辑设置相应的值。例如:
_function case '{{detail_0.0.wldwlx_FV}}' when '0' then 'BD_Supplier' when '1' then 'BD_Customer' when '3' then 'ORG_Organizations' when '2' then 'FIN_OTHERS' end
- 收款单位类型及单位:类似于往来单位类型及单位的处理方式。
- 业务类型(FBUSINESSTYPE):固定为“其他业务(3)”。
- 备注(FREMARK)、自定义单号(F_XDW_OANO)、应付金额(FPAYTOTALAMOUNTFOR_H)、实付金额(FREALPAYAMOUNTFOR_H)等字段均直接从源数据中提取并映射。
付款单明细处理
对于付款单明细部分,需要特别注意以下几点:
- 结算方式(FSETTLETYPEID):固定为“JSFS04_SYS”。
- 付款用途(FPURPOSEID)、费用承担部门(FEXPENSEDEPTID_E)等字段均通过
ConvertObjectParser
解析,将名称转换为金蝶系统中的唯一标识。 - 税额计算:利用自定义函数计算税额:
_function round('{{detail_0.tbje}}'-('{{detail_0.tbje}}'/(1+(REPLACE('{{detail_0.sl}}','%','')*0.01))),2)
API调用与写入
在完成所有字段的转换后,通过调用金蝶云星空的批量保存接口batchSave
,将处理好的数据写入目标平台。以下是主要配置参数:
FormId
: AP_PAYBILLOperation
: BatchSaveIsAutoSubmitAndAudit
: falseIsVerifyBaseDataField
: true
通过POST方法发送请求,并确保每个操作都能成功执行。如果出现异常,则需要实现错误重试机制,以保证数据的可靠性和一致性。
实时监控与日志记录
在整个过程中,利用轻易云的数据质量监控和异常检测功能,实时跟踪任务状态,并记录日志以便于后续分析和问题排查。这些措施能够有效保障集成过程中的透明度和可控性。
小结
通过上述步骤,我们能够高效地将泛微OA-Http接口的数据进行ETL转换,并成功写入到金蝶云星空系统中。这一过程不仅提升了数据处理的效率,还确保了数据的一致性和完整性,为企业提供了可靠的数据支持。