系统对接集成案例分享:泛微OA-Http数据集成到金蝶云星空
在企业的日常运营中,高效的数据传输和准确的业务处理是至关重要的。在本篇技术案例中,我们将探讨如何通过轻易云数据集成平台,将泛微OA系统中的非生产性付款申请数据高效、稳定地传输到金蝶云星空,具体方案名称为FD003-非生产性付款申请 泛微=>金蝶付款单-393。
本次对接主要思路如下:
一、高吞吐量的数据写入能力 为了满足高频率业务需求,本方案支持大量数据快速写入。通过调优数据库连接池、并发请求数和批量处理策略来实现,并有效监控每个写入操作,以确保其成功率。
二、实时监控与告警系统 利用平台提供的集中式监控和告警功能,对整个数据流动过程进行追踪,及时捕获异常状态。用户可自定义告警规则,当出现错误或性能瓶颈时,立即通知相关人员进行干预,从而保证关键任务顺利完成。
三、自定义转换逻辑与分页限流处理 针对泛微OA-Http接口(/api/workflow/paService/getWorkflowRequest)的获取数据需求,根据实际场景定制了特定转换逻辑,以兼容不同业务字段格式。同时,为解决接口返回结果过多带来的压力,通过分页和限流机制合理调配请求频率及数量,避免系统资源耗尽导致服务不稳定。
四、API资产管理与使用优化 在对接过程中,通过轻易云平台统一视图控制台全面掌握泛微OA-Http与金蝶云星空API调用情况,实现资源有效利用。例如,在调用金蝶云星空batchSave API时,根据最佳实践配置参数以提高效率,同时设置日志记录详细跟踪各步骤执行状况。
最终,通过以上技术手段,实现了从泛微OA向金蝶云星空的数据迁移不仅可靠且高效。本案例亦涵盖了故障恢复机制、API响应时间优化等高级主题,更深入解析请参见后续内容部分。
调用泛微OA-Http接口/api/workflow/paService/getWorkflowRequest获取并加工数据
在数据集成的生命周期中,第一步是从源系统获取数据。本文将深入探讨如何通过轻易云数据集成平台调用泛微OA-Http接口/api/workflow/paService/getWorkflowRequest
来获取并加工数据。
接口调用配置
首先,我们需要配置元数据,以便正确调用泛微OA的API接口。以下是元数据配置的详细信息:
{
"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": "393"
},
{
"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/workflow/paService/getWorkflowRequest
- 指定了我们要调用的泛微OA接口路径。
-
请求方式:
GET
- 使用HTTP GET方法来请求数据。
-
参数配置:
workflowId
: e9流程ID,固定值为393
。workflowIdList
: 中间方案ID,固定值为2356388e-8c49-35b3-bb7e-1eca1a8617d5
。
-
条件过滤:
condition_bk
和condition
字段用于指定过滤条件,这里我们设置了两个条件:workflowMainTableInfo.fklx = '预付款'
workflowMainTableInfo.fklx = 'Prepayment'
数据请求与清洗
在完成元数据配置后,我们可以开始进行实际的数据请求和清洗工作。以下是具体步骤:
-
发送请求: 根据配置好的元数据,通过HTTP GET方法向泛微OA接口发送请求,获取符合条件的数据。
-
响应处理: 接收到响应后,平台会自动填充响应内容(autoFillResponse: true),确保返回的数据格式化并可供后续处理使用。
-
数据清洗: 根据业务需求,对返回的数据进行清洗和转换。例如,可以对字段进行重命名、类型转换、去除无效数据等操作。
实际案例
假设我们从泛微OA接口获取到以下JSON响应:
{
“data”: [
{
“requestId”: “12345”,
“workflowMainTableInfo”: {
“fklx”: “预付款”,
“amount”: “1000”
}
},
{
“requestId”: “67890”,
“workflowMainTableInfo”: {
“fklx”: “Prepayment”,
“amount”: “2000”
}
}
]
}
根据我们的过滤条件,系统会自动筛选出符合条件的数据条目。在这个例子中,两条记录都符合条件,因此会被保留下来。
数据转换与写入
在完成数据清洗后,我们可以将处理后的数据转换为目标系统所需的格式,并写入目标系统。在本案例中,目标系统是金蝶付款单。具体的转换和写入过程包括:
-
字段映射: 将源系统中的字段映射到目标系统中的相应字段。例如,将
requestId
映射到金蝶付款单中的唯一标识字段。 -
格式转换: 根据目标系统的要求,对数据格式进行必要的转换。例如,将金额字段从字符串类型转换为数值类型。
-
写入操作: 使用轻易云平台提供的写入功能,将处理后的数据批量写入金蝶付款单系统中。
通过以上步骤,我们实现了从泛微OA到金蝶付款单的数据集成。这一过程不仅保证了数据的一致性和准确性,还极大地提升了业务处理效率。
使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口
在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL(提取、转换、加载)转换,使其符合目标平台金蝶云星空API接口所能接收的格式,并最终写入目标平台。本文将详细介绍如何使用轻易云数据集成平台配置元数据,实现这一过程。
配置元数据
首先,我们需要配置元数据,以便将源平台的数据转换为目标平台所需的格式。以下是关键的元数据配置:
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号"},
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型\n采购业务付款单-FKDLX01_SYS\n其他业务付款单-FKDLX02_SYS\n工资发放付款单-FKDLX03_SYS\n费用报销付款单-FKDLX04 SYS\n资金上划付款单-FKDLX05 SYS\n内部利息付款单-FKDLX06 SYS\n资金调拨付款单-FKDLX07_SYS\n保证金付款单-FKDLX08 SYS","parser":{"name":"ConvertObjectParser","params":"FNUMBER"},"value":"FKDLX02_SYS"},
{"field":"FCURRENCYID","label":"币别","type":"string","describe":"币别","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find FNumber from 5740d4e3-ebe8-3548-9635-f35e1fdc983b where FCODE={{workflowMainTableInfo.bberp}}"},
{"field":"FDATE","label":"业务日期","type":"string","describe":"业务日期","value":"{{workflowMainTableInfo.sqrq}}"},
{"field":"FSETTLEORGID","label":"结算组织","type":"string","describe":"结算组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find FNumber from 4d9cb35a-56f5-36c7-b34a-f64db755b1f1 where FName={{workflowMainTableInfo.sqgs}}"},
{"field":"FPAYORGID","label":"付款组织","type":"string","describe":"付款组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find FNumber from 4d9cb35a-56f5-36c7-b34a-f64db755b1f1 where FName={{workflowMainTableInfo.sqgs}}"},
{"field":"FCONTACTUNITTYPE","label":"往来单位类型","type":"string","describe":"","value":"'{{detail_0.0.wldwlx_FV}}'=='0'?'BD_Supplier':'{{detail_0.0.wldwlx_FV}}'=='1'?'BD_Customer':'{{detail_0.0.wldwlx_FV}}'=='3'?'ORG_Organizations':'FIN_OTHERS'"},
{"field":"FCONTACTUNIT", "label": "往来单位", "type": "string", "describe": "", "parser": {"name": "ConvertObjectParser", "params": "FNumber"},
"value":"'{{detail_0.0.wldwlx_FV}}'=='0'? '{{detail_0.0.gysbh}}':'{{detail_0.0.wldwlx_FV}}'=='1'? '{{detail_0.0.khbh}}':'{{detail_0.0.wldwlx_FV}}'=='3'? '{{detail_0.0.zzbh}}':'{{detail_0.0.qtwlbh}}'"
},
{"field": "FPAYBILLENTRY",
"label": "付款单明细",
"type": "array",
"describe": "",
"value": "{{ detail }}",
...
// 此处省略其他字段
...
}
],
...
}
数据提取与清洗
在这一阶段,我们从源系统中提取原始数据,并进行必要的清洗和预处理。通过上述元数据配置中的request
字段,我们可以定义每个字段的数据来源和转换规则。例如,FBillNo
表示从源系统中提取的单据编号,而FBillTypeID
则通过固定值FKDLX02_SYS
指定为“其他业务付款单”。
数据转换
在数据转换过程中,使用了多个解析器(如ConvertObjectParser
)和函数(如case
语句)来将源数据转换为目标系统所需的格式。例如:
{"field": "FCURRENCYID",
"label": "币别",
"type": "string",
"describe": "",
"parser":{"name": "ConvertObjectParser",
"params": ["FNumber"]},
"value":"'{{workflowMainTableInfo.bberp}}'"}
这里,使用了一个名为ConvertObjectParser
的解析器,将币别代码从源系统格式转换为金蝶云星空所需的格式。
数据加载
最后一步是将转换后的数据通过API接口写入到金蝶云星空。我们使用POST方法调用批量保存接口:
{
...
"method": "POST",
...
}
在这个过程中,确保所有字段都已正确映射并且符合目标系统的要求。特别要注意的是,某些字段可能需要进行额外的验证或处理,例如基础资料验证(IsVerifyBaseDataField)。
实际案例
假设我们有一条来自泛微系统的数据记录,需要将其转化并写入到金蝶云星空中。具体步骤如下:
- 提取原始数据:从泛微系统中获取申请信息,包括申请日期、申请公司等。
- 清洗与预处理:根据业务需求,对原始数据进行清洗,例如去除无效字符、标准化日期格式等。
- 字段映射与转换:使用配置好的元数据,将每个字段映射到金蝶云星空所需的格式。例如,将“申请公司”映射为“结算组织”。
- 调用API接口:通过HTTP POST请求,将处理好的数据发送到金蝶云星空。
通过以上步骤,我们可以实现从泛微系统到金蝶云星空的数据无缝对接,有效提升了业务流程的自动化程度和效率。
以上内容展示了如何利用轻易云数据集成平台进行ETL转换,并将处理后的数据写入到金蝶云星空API接口。这一过程不仅简化了复杂的数据处理任务,还确保了各个环节的数据准确性和一致性。