通过泛微OA与金蝶云星空实现非生产性付款申请自动化
FD003-非生产性付款申请 泛微=>金蝶付款单-481 集成方案
在企业信息化系统中,数据的高效流转和准确对接是业务流程顺畅运行的关键。本文将聚焦于一个具体的系统对接集成案例:如何通过泛微OA-Http平台的数据集成到金蝶云星空,实现非生产性付款申请的自动化处理。
本次集成方案FD003旨在将泛微OA系统中的非生产性付款申请数据,通过HTTP接口实时抓取,并批量写入到金蝶云星空的付款单模块。此过程不仅需要确保数据传输的高效与稳定,还需解决两大平台之间的数据格式差异和接口调用限制等技术难题。
首先,泛微OA-Http提供了强大的API接口/api/workflow/paService/getWorkflowRequest
,支持定时可靠地抓取非生产性付款申请数据。为了确保数据不漏单,我们采用了分页处理机制,并结合限流策略,有效应对大量数据请求带来的压力。同时,通过自定义的数据转换逻辑,将泛微OA中的数据结构适配为金蝶云星空所需格式。
在目标平台金蝶云星空方面,我们利用其batchSave
API实现了大量数据的快速写入。这一过程得益于轻易云平台提供的高吞吐量能力,使得大批量的数据能够迅速且准确地被集成到金蝶云星空中。此外,为了保证整个集成过程的透明度和可控性,我们使用了集中监控和告警系统,实时跟踪每个任务的状态和性能,一旦出现异常情况,可以及时进行处理和重试。
通过这一系列技术手段,不仅实现了泛微OA与金蝶云星空之间的数据无缝对接,还极大提升了业务处理效率和数据质量。接下来,我们将详细探讨具体实施步骤及关键技术点。
调用泛微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":"481"},
{"field":"workflowIdList","label":"workflowIdList中间方案ID","type":"string","value":"2356388e-8c49-35b3-bb7e-1eca1a8617d5"}
],
"autoFillResponse": true,
"condition_bk":[[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"预付款"}]],
"condition":[
[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"预付款"}],
[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"Prepayment"}]
]
}
该配置定义了API的基本信息、请求参数和条件过滤逻辑。具体步骤如下:
- API地址与方法:指定了要调用的API路径为
/api/workflow/paService/getWorkflowRequest
,使用HTTP GET方法。 - 请求参数:包括
workflowId
和workflowIdList
,用于指定特定的工作流ID和方案ID。 - 条件过滤:通过条件过滤逻辑确保只获取符合特定条件的数据,例如付款类型为“预付款”或“Prepayment”。
数据请求与清洗
在实际操作中,通过上述配置发起HTTP GET请求,从泛微OA系统中获取原始工作流数据。由于业务需求不同,可能需要对返回的数据进行清洗和转换,以适应后续处理步骤。
例如,对于返回的数据结构,可以进行如下处理:
- 字段映射:将泛微OA中的字段映射到金蝶云星空所需的字段。例如,将
requestId
映射为金蝶系统中的唯一标识符。 - 格式转换:根据目标系统要求,对日期、金额等字段进行格式转换。例如,将日期格式从YYYY-MM-DD转换为YYYYMMDD。
- 数据筛选:根据业务规则筛选出有效的数据记录。例如,只保留状态为“已审核”的记录。
异常处理与重试机制
在调用过程中,可能会遇到网络异常或接口限流等问题。为了确保数据不漏单,需要实现可靠的异常处理与重试机制:
- 错误捕获:捕获所有可能的异常,并记录日志以便后续分析。
- 重试策略:对于临时性错误(如网络超时),可以设置一定次数的重试策略,以提高成功率。
- 告警通知:当发生严重错误时,通过告警系统及时通知相关人员进行人工干预。
实时监控与日志记录
为了确保整个过程透明可控,可以利用轻易云平台提供的实时监控和日志记录功能:
- 实时监控:通过可视化界面实时跟踪每个任务的执行状态,包括成功率、处理时间等关键指标。
- 日志记录:详细记录每次API调用及其响应结果,为后续问题排查提供依据。
综上所述,通过合理配置元数据并结合轻易云平台强大的功能,可以高效地从泛微OA系统中获取并加工处理所需的数据,为后续的数据集成打下坚实基础。
将泛微OA数据转换并写入金蝶云星空API接口
在数据集成生命周期中,第二步是将已经集成的源平台数据进行ETL(抽取、转换、加载)转换,并转为目标平台所能够接收的格式。本文将详细讨论如何使用轻易云数据集成平台将泛微OA的数据转换为金蝶云星空API接口所需的格式,并最终写入目标平台。
数据抽取与清洗
首先,从泛微OA系统中抽取数据。通过调用泛微OA-Http接口/api/workflow/paService/getWorkflowRequest
,可以获取到非生产性付款申请的数据。这些数据可能包含多个字段和复杂的数据结构,因此需要进行清洗和预处理。
数据转换
为了适应金蝶云星空API接口的要求,需要对抽取到的数据进行一系列的转换操作。以下是一些关键字段的转换示例:
-
单据类型(FBillTypeID):
{ "field": "FBillTypeID", "value": "FKDLX02_SYS" }
这里将单据类型固定为“其他业务付款单”(FKDLX02_SYS)。
-
币别(FCURRENCYID):
{ "field": "FCURRENCYID", "value": "_findCollection find FNumber from 5740d4e3-ebe8-3548-9635-f35e1fdc983b where FCODE={{workflowMainTableInfo.bberp}}" }
使用
ConvertObjectParser
解析币别代码,将其转换为金蝶云星空系统可识别的格式。 -
结算组织和付款组织(FSETTLEORGID, FPAYORGID):
{ "field": "FSETTLEORGID", "value": "_findCollection find FNumber from 4d9cb35a-56f5-36c7-b34a-f64db755b1f1 where FName={{workflowMainTableInfo.sqgs}}" }, { "field": "FPAYORGID", "value": "_findCollection find FNumber from 4d9cb35a-56f5-36c7-b34a-f64db755b1f1 where FName={{workflowMainTableInfo.sqgs}}" }
通过查找表将结算组织和付款组织名称转换为对应的编码。
-
往来单位类型与往来单位(FCONTACTUNITTYPE, FCONTACTUNIT):
{ "field": "FCONTACTUNITTYPE", "value": "_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" }, { "field": "FCONTACTUNIT", "value": "_function case '{{detail_0.0.wldwlx_FV}}' when '0' then '{{detail_0.0.gysbh}}' when '1' then '{{detail_0.0.khbh}}' when '3' then '{{detail_0.0.zzbh}}' when '2' then '{{detail_0.0.qtwlbh}}' end" }
根据不同的往来单位类型,选择相应的字段进行映射和转换。
-
业务日期(FDATE):
{ "field": "FDATE", "value": "{{workflowMainTableInfo.sqrq}}" }
将业务日期直接映射到目标字段中。
数据加载
完成数据转换后,使用金蝶云星空API接口进行数据写入。具体配置如下:
{
"api": "batchSave",
"method": "POST",
...
}
通过设置FormId
为AP_PAYBILL
,表示要保存的是付款单。同时,配置Operation
为BatchSave
以批量保存数据,并设置必要的标志位如IsAutoSubmitAndAudit
和IsVerifyBaseDataField
等。
高效写入与监控
为了确保数据高效地写入金蝶云星空,可以利用轻易云平台支持高吞吐量的数据写入能力,同时配置集中的监控和告警系统,实时跟踪数据集成任务的状态和性能。例如:
{
"IsAutoSubmitAndAudit": false,
...
}
此外,通过自定义数据转换逻辑,可以适应特定的业务需求和数据结构。例如,在处理分页和限流问题时,可以设置适当的参数以确保不会遗漏任何记录。
异常处理与重试机制
在对接过程中,可能会遇到各种异常情况。轻易云平台提供了完善的异常处理与错误重试机制。例如,当某个请求失败时,可以自动重试一定次数,以确保最终成功:
{
...
}
通过这些配置,我们可以确保泛微OA的数据顺利转换并写入到金蝶云星空系统中,实现无缝对接和高效的数据集成。