流程状态通知方案

2021-01-16 17:28:18
邱喜达
原创
296
摘要:通过设置脚本,调用外部接口,将流程数据传到外部接口中

1.1  场景描述

每个任务审批完成后,需要调用外部系统的接口,把本系统的参数传递到外部系统进行存储。

1.2  场景流程图

1.3 引用功能

流程管理:流程后置脚本、流程变量、常用脚本

1.4  操作步骤

1.4.1 新增后置脚本

bpmRunTime模块中找到ScriptImpl类,在类中新增流程状态通知的方法,在方法中可以通过ActionCmd cmd = ContextThreadUtil.getActionCmd();获取到cmd对象,cmd中有流程相关的变量,如流程实例ID、流程变量、动作,详细可查看附录1.5或代码。

把获取到的流程相关变量,通过RestTemplete发送到对应外部系统的接口。部分代码如下。


1.4.2 添加脚本到系统

在【流程中心】>【辅助功能】>【常用脚本】中,点击添加,在弹框中填写名称,然后在脚本输入框中填写响应脚本,如return scriptImpl.noticeByUrl(http://192.168.1.174:8088/bpm/complete),点击测试,测试通过后选择脚本分类为系统脚本,点击保存,把新写的脚本添加到系统中去。

1.4.3 流程中选择后置事件

点击选择需要进行状态通知的节点,点击更多设置>事件脚本设置>设置事件脚本>后置事件>常用脚本>选择刚才添加的脚本,最后点击保存。在任务在该节点审批完成后即可调用此脚本,然后脚本把参数传递到外部系统。


1.4.4 添加流程变量

除了直接在脚本中添加参数进行传参,也可以通过在流程设置流程变量进行配置。

在流程编辑页面,选择变量管理,添加全局变量,设置相应的Key、类型和默认值后保存。如果使用接口启动流程,可以修改变量的值。

在脚本中就可以通过cmd.getVariables()获取配置的流程变量。

1.5  附录

ActionCmd方法描述

方法

描述

getVariables()

流程变量

getGateways()

当前线程记录已添加的网关堆栈

getFormKey()

表单Key

getTransitVars()

临时变量

getBpmIndentities()

下一步节点执行人

getDestination()

目标节点

getInstId()

流程实例ID

getNotifyType()

通知类型

getDataNode()

业务数据模式

getBusData()

bojson数据

getBusinessKey()

业务主键

getActionName()

动作名称

getDataPair()

业务数据对

流程状态通知方案
发表评论
评论通过审核后显示。