简析泛微OA-Http与金蝶云星空数据集成方案
在这篇文章中,我们将探讨一个具体的系统对接案例:如何通过轻易云数据集成平台,将非生产性付款申请的数据从泛微OA-Http系统集成到金蝶云星空中。这个实际运行的方案被命名为“FD003-非生产性付款申请 泛微=>金蝶付款单-499”。
首先,针对该集成任务,我们需要处理的是两个主要API接口:
- 获取泛微OA-Http接口数据:
/api/workflow/paService/getWorkflowRequest
- 写入至金蝶云星空:
batchSave
轻易云数据集成平台提供了高吞吐量的数据写入能力,使我们能够快速应对大量的支付申请请求,并且支持自定义数据转换逻辑来适应不同业务需求和数据结构。在本案例中,通过定时可靠地抓取泛微OA-Http接口的数据,同时处理分页和限流问题,是确保整个流程顺利进行的重要步骤。
其中尤其关键的一点在于,用可视化的数据流设计工具直观管理每个环节。这样的工具不仅提升了配置透明度,还便于实时监控和日志记录,以确保任何异常情况能及时被发现和处理。例如,当调用/api/workflow/paService/getWorkflowRequest
接口时,我们必须考虑到可能存在的数据不一致或分页返回不全问题,这就需要预先设置好重试机制及错误处理策略。
另外,为了解决泛微OA-Http与金蝶云星空之间的数据格式差异,定制化映射规则是必不可少的。这可以保证每条来自源端(即泛微OA)的记录都能准确无误地转变为目标端(金蝶)的数据格式并成功存储。
总结来说,利用集中监控与告警系统等特性,不仅帮助我们全面掌握集成本身,还提升了任务执行的可靠性,为企业资源的高效利用提供了强有力保障。在后续部分,我们将深入剖析具体流程,包括详细的API调用、映射设定以及错误重试机制等技术细节。
调用泛微OA-Http接口/api/workflow/paService/getWorkflowRequest获取并加工数据
在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用泛微OA-Http接口 /api/workflow/paService/getWorkflowRequest
获取并加工数据。
接口配置与调用
首先,我们需要配置接口的元数据,以便正确调用和处理数据。以下是关键的元数据配置:
{
"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": "499"},
{"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
字段指定了我们要调用的接口路径,method
字段定义了HTTP请求方法为GET。request
数组包含了两个关键字段:
workflowId
: e9流程ID,值为499。workflowIdList
: 中间方案ID,值为2356388e-8c49-35b3-bb7e-1eca1a8617d5。
这些参数将被传递给API以获取特定工作流的数据。
条件过滤
为了确保我们获取的数据符合业务需求,我们设置了条件过滤器:
"condition":[
[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"预付款"}],
[{"field":"workflowMainTableInfo.fklx","logic":"eqv2","value":"Prepayment"}]
]
这两个条件分别检查字段 workflowMainTableInfo.fklx
是否等于“预付款”或“Prepayment”。这种多条件设置确保了我们能够捕获不同语言环境下的相同业务逻辑。
数据请求与清洗
在发起请求后,系统会返回一组原始数据。由于我们启用了 autoFillResponse
参数,平台会自动填充响应中的相关字段。这一步骤极大简化了后续的数据清洗工作。
数据转换与写入
获取并清洗后的数据需要进行转换,以适应目标系统(如金蝶付款单)的格式要求。这通常涉及以下几个步骤:
- 字段映射:将源系统中的字段映射到目标系统所需的字段。例如,将
requestId
映射到金蝶系统中的唯一标识符。 - 格式转换:根据目标系统的要求,对日期、金额等字段进行格式转换。
- 数据验证:确保所有必填字段均已填充,并符合业务规则。
最后,通过轻易云平台的数据写入功能,将处理后的数据推送到目标系统,实现完整的数据集成流程。
实时监控与调试
轻易云平台提供了实时监控和调试工具,可以帮助我们跟踪每个请求的状态和处理过程。一旦出现问题,可以快速定位并解决,从而保证数据集成过程的顺畅运行。
通过以上步骤,我们成功实现了从泛微OA系统到金蝶付款单的数据集成。这不仅提高了业务效率,还确保了数据的一致性和准确性。
使用轻易云数据集成平台实现金蝶云星空API接口的数据转换与写入
在数据集成的生命周期中,数据转换与写入是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台,将已集成的源平台数据进行ETL转换,并转为金蝶云星空API接口所能接收的格式,最终写入目标平台。
元数据配置解析
元数据配置是实现数据转换与写入的核心。以下是我们需要关注的关键字段及其配置:
-
单据编号(FBillNo)
- 类型:string
- 描述:单据编号
- 示例值:由源系统提供
-
单据类型(FBillTypeID)
- 类型:string
- 描述:不同业务对应不同单据类型,如采购业务付款单、其他业务付款单等。
- 示例值:
FKDLX02_SYS
-
币别(FCURRENCYID)
- 类型:string
- 描述:币别代码,需要通过解析器
ConvertObjectParser
将源系统中的币别代码转换为金蝶系统中的对应值。 - 示例值:通过查询条件从数据库中获取
-
业务日期(FDATE)
- 类型:string
- 描述:业务发生日期
- 示例值:
{{workflowMainTableInfo.sqrq}}
-
结算组织(FSETTLEORGID)
- 类型:string
- 描述:结算组织代码,通过解析器将源系统中的结算组织名称转换为金蝶系统中的对应值。
- 示例值:通过查询条件从数据库中获取
-
付款组织(FPAYORGID)
- 类型:string
- 描述:付款组织代码,与结算组织类似,通过解析器转换。
- 示例值:通过查询条件从数据库中获取
-
往来单位类型和往来单位(FCONTACTUNITTYPE 和 FCONTACTUNIT)
- 类型:string
- 描述:根据不同的往来单位类型(如供应商、客户等),动态设置往来单位代码。
- 示例值:
"_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"
-
收款单位类型和收款单位(FRECTUNITTYPE 和 FRECTUNIT)
- 类型:string
- 描述:类似于往来单位,根据不同的收款单位类型动态设置收款单位代码。
-
业务类型(FBUSINESSTYPE)
- 类型: string
- 描述: 业务类型,例如其他业务、采购业务等。
- 示例值:
3
-
备注(FREMARK)
- 类型: string
- 描述: 备注信息
- 示例值:
{{workflowMainTableInfo.nrsm}}
-
应付金额和实付金额(FPAYTOTALAMOUNTFOR_H 和 FREALPAYAMOUNTFOR_H)
- 类型: string
- 描述: 应付金额和实际支付金额,分别对应源系统中的总金额和已支付金额。
- 示例值:
"{{workflowMainTableInfo.jehj}}" 和 "{{workflowMainTableInfo.ytbce}}"
-
付款单明细(FPAYBILLENTRY) 包含子字段,如结算方式、付款用途、费用承担部门等,这些字段同样需要通过解析器进行转换。
数据请求与清洗
在数据请求阶段,我们从源平台泛微系统获取原始数据。这些原始数据通常包含多种格式和结构,需要进行初步清洗,以确保后续ETL过程的顺利进行。
数据转换与写入
- 初始化API请求参数
根据元数据配置,构建API请求参数。以下是一个示例请求体:
{
"FormId": "AP_PAYBILL",
"Operation": "BatchSave",
"IsAutoSubmitAndAudit": false,
"IsVerifyBaseDataField": true,
"Model": {
"FBillNo": "123456",
"FBillTypeID": {
"FNUMBER": "FKDLX02_SYS"
},
"FCURRENCYID": {
"FNumber": "_findCollection find FNumber from ... where FCODE=..."
},
...
}
}
- 调用金蝶云星空API
使用POST方法,将构建好的JSON请求体发送到金蝶云星空的batchSave
接口。确保每个字段都符合金蝶API的要求,并处理返回结果。
- 错误处理与日志记录
在调用过程中,可能会遇到各种错误,如网络问题、数据格式不匹配等。需要对这些错误进行捕获并记录日志,以便后续排查和修复。
实际案例分析
假设我们有一笔非生产性付款申请,需要将其转化为金蝶付款单。首先,我们从泛微系统获取相关数据,然后根据上述元数据配置进行ETL转换,最后调用金蝶云星空API接口完成写入。
具体步骤如下:
- 从泛微系统获取原始申请数据,包括单据编号、申请日期、申请金额等。
- 根据元数据配置,对这些原始数据进行清洗和转换。例如,将申请日期格式化为YYYY-MM-DD,将申请金额转化为浮点数等。
- 构建JSON请求体,填充各个字段,并调用金蝶云星空的
batchSave
接口。 - 检查返回结果,如果成功,则记录成功日志;如果失败,则记录错误信息并通知相关人员处理。
通过以上步骤,我们可以高效地完成从泛微到金蝶的数据集成任务,实现不同系统间的数据无缝对接。