如何通过服务流程调用BOTP下推触发工作流

服务流程是集成云推出的面向复杂集成场景的低代码服务编排工具,能够把已有的集成对象、集成方案、消息服务、API接口等集成资源,通过流程化设计编排成全新的应用服务,以支持更加复杂的业务场景。
例如基础数据分发到多个系统、数据消费需要从多源取数、基于某个数据参数处理不同的集成过程等等。
为了帮助大家快速掌握服务流程的使用方法,我们推出了系列文章,通过11个典型案例向大家介绍服务流程的高级技巧。
在上期集成服务流程典型案例系列文章中,我们为大家介绍了服务流程的第8个典型案例:如何通过服务流程进行接口幂等与重试。
本期,小编继续为大家介绍第9个案例:如何通过服务流调用BOTP下推触发工作流,包括以下4个要点:
需求场景介绍-费用申请单同步到EAS;
针对该场景如何配置流程属性与变量;
配置流程节点以调用BOTP触发工作流;
服务流程调用BOTP的应用。
1 需求场景介绍
以苍穹的费用申请单同步到EAS系统为例:
首先,在苍穹工作流节点“审批通过”费用申请单时进行事件监听,把该费用申请单同步到EAS的费用申请单;
然后,调用EAS费用申请单的审核通过操作,并在EAS调用费用申请单时,根据BOTP规则生成费用报销单;
最后,通过EAS费用报销单的“提交”操作,启动费用报销单的工作流。
本文以上述场景为例,简述服务流程在该场景下的应用示例,具体的流程原理如下图所示:

流程原理
2 配置流程属性与变量
2.1启动方式
由于需要监听实体上的事件,因此设置服务流程的【启动方式】为“事件触发”。

启动方式设置
2.2 流程变量
流程变量类别主要有集成对象和简单值两种,其中:
集成对象:
tar_otherBill (EAS端) 用于加载数据;
tar_bizAccountBill(EAS端) 用于加载数据;
src_dailyApplyBill(苍穹端) 用于取数。
简单值:
字符串tar_Otherbill_Id 为目标EAS的费用申请单ID;
任意值wf用于接收工作流启动的流程信息;
字符串tarIds为根据BOTP规则生成的费用报销单id列表等。

流程变量
2.3 依赖资源
在【依赖资源】处引入以下资源:
1. “EAS数据源”:如预置EAS850数据源;
2. “集成对象”:苍穹的费用申请单、EAS的费用申请单。

依赖资源
3 配置服务流程节点
该案例的服务流程如下:

服务流程概览
接下来,小编为大家详细讲解各流程节点的配置方法。
3.1 开始节点 - 事件触发
配置“事件触发(审批通过)苍穹_费用申请”节点时,设置【集成对象(事件源)】为“费用申请单(ierp_dailyapplybill)”,【赋值变量】为“src_费用申请单(src_dailyApplyBill) ”,【单据事件】为“审核通过(audit)”,【取值字段】则选择“自动填充”即可。


开始节点-事件触发配置
3.2 字段映射节点
配置“字段映射(苍穹费用申请单-EAS费用申请单)”时,设置【源对象变量】为“src_费用申请单(src_dailyApplyBill)”,【目标对象变量】为“tar_费用申请单(tar_otherBill)”。
注意事项:
使用字段映射、自动映射后,目标对象字段需要进行手动配置。
本实例服务流程配置部分,对F7字段直接进行赋值,仅供参考。真正运行此服务流程之前,需要选择对应的值转换规则。

字段映射节点配置
3.3 数据加载 - 同步EAS费用申请单
在配置“数据加载-同步EAS_费用申请单(审批通过)”节点的基本信息时,设置【目标集成对象】为“费用申请单(eas_otherBill)”,【目标数据(变量)】为“tar_费用申请单(tar_otherBill)”。
填写【操作列表】的【操作名称】时,选择“审核通过_集成云”,即可自动带出【操作编码】和【操作类型】,其中【操作编码】为“ngisc_audit”,【操作类型】为“update”。
然后,【目标单ID输出变量】设置为“tar_Otherbill_Id”,【候选键(组合候选键)】包括“number”和“entries.seq”。

数据加载-操作列表

数据加载-候选键
3.4 脚本节点 - 调用BOTP
在配置“(生成下游单据)BOTP生成EAS费用报销单”节点时,调用集成云的脚本“EAS_BOTP”,根据EAS的费用申请单BOTP规则“sq-002”生成下游单据费用报销单。相应的脚本如下:
//sq-002为费用申请单生成费用报销单的BOTP;
//由费用申请单生成的费用报销单集合
tarIds = EAS_BOTP(EAS_CN, "sq-002", tar_Otherbill_Id);

脚本节点
3.5 数据获取节点
在配置“数据获取--EAS费用报销单” 节点时,设置【集成对象】为“费用报销单(eas_bizAccountBill)”,【赋值变量】为“费用报销单(tar_bizAccountBill)” ,【取数字段】选择“自动填充”,【过滤条件】为“id在变量名tarIds中”。

数据获取-取数设置

数据获取-过滤条件
3.6 脚本节点 - 计算付现金额 | 收款金额
脚本类型的节点“计算付现金额 | 收款金额”,用于处理业务逻辑并将费用报销单的状态设置为“已提交”,相关脚本如下:
var amountEncashed;
//计算付现金额
for (var i =0;i<tar_bizAccountBill.entries.length;i++){
amountEncashed += tar_bizAccountBill.entries[i].amountOriWithoutTax;
}
//表头的付现金额赋值
tar_bizAccountBill.amountEncashed = amountEncashed;
tar_bizAccountBill.amount = amountEncashed;
//收款信息的付款金额赋值
for (var i =0;i<tar_bizAccountBill.collectionEntries.length;i++){
tar_bizAccountBill.collectionEntries[i].amount = amountEncashed;
tar_bizAccountBill.collectionEntries[i].amountOri = amountEncashed;
}
//设置费用报销单如何通过服务流程调用BOTP下推触发工作流
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



