监听器是Activiti在BPMN2.0规范基础上扩展的宫嗯那个,是业务与流程的“非侵入性粘合剂”。
监听器可以分未两类:执行监听器和任务监听器,和其他的Activiti扩展模型一样,监听器包含在BPMN2.0规范的 标签中。
执行监听器允许在执行流程过程中执行java代码(实现了监听器接口)或表达式。
执行监听器可以捕获的事件如下:
1、流程实例启动、结束;
2、输出流捕获;
3、活动启动、结束;
4、路由开始、结束;
5、中间事件开始、结束;
6、触发开始事件、触发结束事件
执行监听器的三种监听器执行类型(只能使用其中一种)
相对于执行监听器的使用范围来说,任务监听器的使用范围要小很多,因为它只能应用于用户任务,用来监听3种事件:
在查询流程实例时,通过 businessKey(业务标识 )关联查询业务系统的请假单表,查询出请假天
数等信息。
*** 作流程定义为挂起状态,该流程定义下边所有的流程实例全部暂停:
流程定义为挂起状态该流程定义将不允许启动新的流程实例,同时该流程定义下所有的流程实例将
全部挂起暂停执行。
*** 作流程实例对象,针对单个流程执行挂起 *** 作,某个流程实例挂起则此流程不再继续执行,完成
该流程实例的当前任务将报异常。
讲bpmn流程文件中节点的assignee 使用UEL表达式赋值( ${assignee0} )
任务监听器是发生对应的任务相关事件时执行自定义 java 逻辑 或表达式。
Create:任务创建后触发
Assignment:任务分配后触发
Delete:任务完成后触发
All:所有事件发生都触发
定义任务监听类,且类必须实现 org.activiti.engine.delegate.TaskListener 接口
在部门经理审核前设置流程变量,变量值为请假单信息(包括请假天数),部门经理审核后可以根据
流程变量的值决定流程走向。
通过流程实例 id 设置全局变量,该流程实例必须未执行完成。
任务办理时设置 local 流程变量,当前运行的流程实例只能在该任务结束前使用,任务结束该变量无
法在当前流程实例使用,可以通过查询历史任务查询。
注意:
任务 id 必须是当前待办任务 id,act_ru_task 中存在。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)