SD001-生产订单审批 泛微=>金蝶采购订单--432 案例分享
在此次项目中,我们面临的挑战是将泛微OA系统中的生产订单审批数据高效集成到金蝶云星空的采购订单模块。为实现这一目标,选择使用轻易云数据集成平台,并通过其支持的数据处理能力和丰富的API接口管理功能,来确保对接过程顺利进行。
为了获取泛微OA系统中的生产订单审批数据,我们调用了/api/workflow/paService/getWorkflowRequest
API接口,该接口能够提供精准的数据捕获。而在数据写入方面,则利用了金蝶云星空的batchSave
API,以实现批量数据写入,从而满足高吞吐量需求。
首先,需要解决的是如何确保从泛微OA抓取的数据不漏单。通过定时任务可靠地调用上述API,结合分页和限流策略,可以持续稳定地获取最新审批结果。同时,为适应两套系统之间的数据格式差异,我们设计并实施了一整套自定义转换逻辑,将泛微OA返回的数据字段映射为金蝶云星空所需格式。
在监控与告警环节上,通过集中化控制台实时跟踪每一次数据传输状态,一旦出现异常状况即刻触发告警,并记录详细日志以便后续分析与重试。这些措施有效提高了整个流程的可视性和可靠性,也使得潜在问题得以及早发现并处理。
此外,通过轻易云提供的可视化设计工具,对于整个集成过程进行了明确规划,使各步骤直观明了、易于管理。在实际运行过程中,这一方案表现出了极高效率,不但显著提升了业务操作便利度,同时也保证了数据准确且无遗漏传递到目标系统。
调用泛微OA-Http接口获取并加工数据的技术案例
在数据集成生命周期的第一步,调用源系统接口获取数据是至关重要的。本文将详细探讨如何通过轻易云数据集成平台调用泛微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": "432"},
{"field": "workflowIdList", "label": "workflowIdList中间方案ID", "type": "string", "value": "8183a586-bdfb-3e93-8573-d5e81803c5ff"}
],
"autoFillResponse": true,
"condition_bk": [
[{"field": "currentNodeName", "logic": "like", "value": "归档"}, {"field":"detail_0.xm","logic":"like","value":"1.wafer"}]
],
"condition":[
[{"field":"detail_0.xm","logic":"like","value":"wafer"}]
]
}
配置解析
-
API路径和请求方法:
api
:/api/workflow/paService/getWorkflowRequest
method
:GET
我们使用GET方法来请求泛微OA系统中的工作流信息。
-
请求参数:
workflowId
: 固定值为432
,表示特定的工作流ID。workflowIdList
: 固定值为8183a586-bdfb-3e93-8573-d5e81803c5ff
,表示中间方案ID。
-
条件过滤:
condition_bk
: 用于备选条件过滤,例如当前节点名称包含“归档”且细节字段xm
包含“1.wafer”。condition
: 主条件过滤,例如细节字段xm
包含“wafer”。
-
自动填充响应:
autoFillResponse
: 设置为true
,表示自动填充响应数据。
实际调用与处理
在实际操作中,我们通过轻易云平台配置上述元数据后,可以进行如下步骤:
-
发送请求: 平台根据配置自动生成并发送HTTP GET请求到指定API路径,并附带必要的查询参数。
-
接收响应: 平台接收到泛微OA系统返回的数据后,会根据配置进行初步处理。例如,自动填充响应内容到相应的数据结构中。
-
数据清洗与转换: 根据条件过滤器(如
condition_bk
和condition
),对接收到的数据进行清洗和筛选。确保仅保留符合业务逻辑的数据记录。 -
后续处理: 清洗后的数据可以进一步转换或直接写入目标系统,如金蝶采购订单系统。这一步通常涉及到映射字段、格式转换等操作。
技术要点
- 异步处理:轻易云平台支持全异步处理,确保在高并发情况下依然能够高效地完成数据集成任务。
- 多系统兼容性:平台能够无缝对接不同类型的异构系统,实现跨平台的数据集成。
- 实时监控与透明化操作:整个过程具有实时监控功能,每个环节都可视化展示,提升了业务透明度和效率。
通过上述步骤和技术要点,我们可以高效地实现从泛微OA系统获取工作流数据,并进行必要的清洗和加工,为后续的数据转换与写入奠定基础。
使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口的技术案例
在数据集成的生命周期中,将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,是至关重要的一步。本文将详细探讨这一过程,重点关注API接口的技术实现。
1. 数据请求与清洗
首先,我们需要从源平台(如泛微)获取数据。这些数据通常包含生产订单审批的信息。通过轻易云的数据请求功能,我们可以获取到这些信息,并进行初步清洗,以确保数据的准确性和一致性。
2. 数据转换与写入
在完成数据请求与清洗后,接下来就是将这些数据转换为金蝶云星空API能够接受的格式,并最终写入目标平台。以下是具体步骤和技术细节:
配置元数据
根据提供的元数据配置,我们需要将各字段映射到金蝶云星空API所需的格式。以下是一些关键字段及其配置方式:
-
单据类型(FBillTypeID):
{ "field": "FBillTypeID", "label": "单据类型", "type": "string", "value": "CGDD01_SYS" }
此字段表示标准采购订单,值为
CGDD01_SYS
。 -
单据编号(FBillNo):
{ "field": "FBillNo", "label": "单据编号", "type": "string", "value": "{{workflowMainTableInfo.lcbh}}" }
此字段从源平台的数据中提取,使用
{{workflowMainTableInfo.lcbh}}
作为动态变量。 -
采购日期(FDate):
{ "field": "FDate", "label": "采购日期", "type": "string", "value": "{{workflowMainTableInfo.sqrq}}" }
此字段同样从源平台的数据中提取,使用
{{workflowMainTableInfo.sqrq}}
作为动态变量。 -
采购组织(FPurchaseOrgId):
{ "field": "FPurchaseOrgId", "label": "采购组织", "type": "string", "parser": {"name":"ConvertObjectParser","params":"FNumber"}, "value":"{{workflowMainTableInfo.wszt}}" }
此字段需要通过
ConvertObjectParser
解析器,将采购组织编码转换为目标平台所需的格式。 -
供应商(FSupplierId):
{ "field": "FSupplierId", "label": "供应商", "type": "string", "parser":{"name":"ConvertObjectParser","params":"FNumber"}, "value":"{{workflowMainTableInfo.gysbh}}" }
同样,通过解析器将供应商编码转换为目标平台所需格式。
明细信息配置
对于明细信息(FPOOrderEntry),我们需要处理多个子字段,如物料编码、采购数量、单价等:
{
"field":"FPOOrderEntry",
...
}
每个子字段都需要从源平台的数据中提取并进行相应的转换。例如:
-
物料编码(FMaterialId):
{ "field":"FMaterialId", ... "value":"{{detail_0.wlbh}}" }
-
采购数量(FQty):
{ ... "value":"{{detail_0.sl}}" }
财务信息配置
财务信息(FPOOrderFinance)的配置同样重要,需要处理结算币别、定价时点、汇率类型等字段:
{
"field":"FPOOrderFinance",
...
}
例如:
- 结算币别(FSettleCurrId):
{ ... "value":"_findCollection find FNumber from ... where FCODE={{detail_0.0.bzerp}}" ... }
批量保存操作
最后,我们通过批量保存操作将所有配置好的数据写入金蝶云星空:
{
"api":"batchSave",
"method":"POST",
...
}
其中,关键参数包括业务对象表单ID(FormId)、执行操作(Operation)、是否提交并审核(IsAutoSubmitAndAudit)等:
{
"field":"FormId",
"value":"PUR_PurchaseOrder"
},
{
"field":"Operation",
"value":"BatchSave"
},
{
"field":"IsAutoSubmitAndAudit",
"value":"true"
}
总结
通过上述步骤,我们成功地将源平台的数据经过ETL转换,转化为金蝶云星空API能够接受的格式,并最终写入目标平台。这一过程不仅提高了数据处理效率,还保证了数据的一致性和准确性。在实际应用中,根据具体需求调整元数据配置,可以灵活应对各种复杂的数据集成场景。