一。简单介绍

任务监听器类需要实现:

org.flowable.engine.delegate.TaskListener

流程监听器需要实现:

org.flowable.engine.delegate.ExecutionListener;

为了方便,两个都实现了。

ExecutionListener有三个事件:start、take、end。start是流程开始节点的事件一般用在开始节点;end是流程结束时触发的事件,take是流程图中流转线条的事件。

TaskListener的事件:create、assigeneed、complete和delete事件。

create事件是流程流转到该节点触发的事件。

assigeneed事件是该任务节点设置了"assigenee"后才会触发的事件,若没有设置assigenee则不会触发此事件

complete事件是完成时触发

delete是删除任务时触发。

二。网上介绍是在任务节点通过实现TaskListener动态,然后调用delegate.setAssigenee("assigenee")动态设置审批人:

public class UserTaskListner implements TaskListener {@Overridepublic void notify(DelegateTask delegateTask) {String eventName=delegateTask.getEventName();delegateTask.setAssignee("user1");}

此时通过以下方法可以查询出来:

        List<Task> list=taskService.createTaskQuery().taskAssignee("user1").list();

数据在ACT_RU_TASK表中也正常,但是在ACT_HI_TASKINS表中的ASSIGENEE_审批人字段是空的,所以查询历史时查不出来,

具体原因不清楚,一直没搞明白为什么。。。

最后,选择了实现ExecutionListener监听器,在流程创建时直接通过设置流程变量的方式直接设置各个节点的审批人.

也可选择如下监听器,在到达该节点任务时再设置审批人:

@Component
public class UserTaskListner implements TaskListener, ExecutionListener {@Autowireprivat TaskService taskService;@Overridepublic void notify(DelegateTask delegateTask) {String eventName=delegateTask.getEventName();//监听器分配任务处理人
//这种无论流程图的处理人Assignee填不填都能正常分配taskService.setAssignee(delegateTask.getId(),"用户处理人");
}

三、若使用了Spring框架则可以不用如上面那样使用监听器,直接用自己的bean

1.

定义bean:

@Component
public class TestServiceListener{public String getUser(String name) {return name;}
}

在流程的assignee或者candidateUser或者candidateGroup处使用bean获取审批人:

格式 ${bean名.方法名(...)}

方法的参数必须是流程变量。

2.上面是通过@Compoment设定的bean,下面通过@Service设置

public interface TestBeanService {String getUser(String name);
}
@Service
public class TestBeanServiceImpl implements TestBeanService {@Overridepublic String getUser(String name) {return name;}
}

此时流程设置如下:

上面不能使用testBeanService必须使用testBeanServiceImpl

因为@Autowired是按类型注入的所以controller中使用testBeanService没问题,此处是按照bean名称寻找bean的所以只能使用testBeanServiceImpl

activiti监听器设置审批人相关推荐

  1. activiti设置审批人通俗易懂

    通俗易懂的Activiti设置审批人的几种方式 方式一 通过界面的方式写死配置(不值得推荐) 方式二 通过el表达式形式设置值 方式三 通过监听的形式去赋值 方式一 通过界面的方式写死配置(不值得推荐 ...

  2. activiti工作流动态绑定审批人、候选人与候选组

    引言 activiti原生的编辑器不能实现A8一样的可视化设置UserTask节点的受理人,但是业务需求是想要让用户可以动态的设置每个流程图的受理人,所以开发了节点设置审批人的功能,其中后台有职位表, ...

  3. 【Flutter】Animation 动画 ( Flutter 动画基本流程 | 创建动画控制器 | 创建动画 | 设置值监听器 | 设置状态监听器 | 布局中使用动画值 | 动画运行 )

    文章目录 一.创建动画控制器 二.创建动画 三.设置值监听器 四.设置状态监听器 五.布局中使用动画值 六.动画运行 七.完整代码示例 八.相关资源 Flutter 动画基本流程 : ① 创建动画控制 ...

  4. activiti监听器使用

    分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519) activiti使用的时候,通常需要跟业务紧密的结合在一起,有些业 ...

  5. springboot+flowable第三节(动态设置审批人)

    目录 1. 创建流程 2. 启动流程 1. 创建流程 创建一个3个节点的流程: 开始->审核->结束. xml文件: <?xml version="1.0" en ...

  6. activiti——监听器

    监听器是Activiti在BPMN2.0规范基础上扩展的宫嗯那个,是业务与流程的"非侵入性粘合剂". 监听器可以分未两类:执行监听器和任务监听器,和其他的Activiti扩展模型一 ...

  7. Acticti工作流(二):设置审批人的三种方式

    1,写死审批人,见上篇文章,Activiti工作流的使用(一) 2,通过el表达式设置,${user} 启动流程实例,并设置第一个节点审批人 @Testpublic void ActivitiStar ...

  8. Activiti 监听器的配置使用

    (BC内部开发文档资料) 一)流程监听器的配置 此监听器的作用是记录流程的启动和结束事件日志,详细参考类 cn.bc.workflow.activiti.delegate.ProcessLogList ...

  9. activiti 工作流设置并行审批_activity、jbpm5、snakerflow常用工作流审批流对比

    # 审批流调研 背景 由于目前产品研发组支持的产品项目越来越多, 同时几乎每个项目都会有导出审批,流程流转等需求,本着提高开发效率和组件化的目的,调研和开发通用的工作流组件,为后面的项目和新的需求提供 ...

最新文章

  1. 深入理解JavaScript系列(23):JavaScript与DOM(上)——也适用于新手
  2. 酸了!会这个技能的 AI 工程师年薪至少35W起!
  3. qt qtableview 刷新列表_qt qtablewidget 刷新
  4. MySQL索引背后的数据结构及算法原理--转
  5. 非线性回归(Non-linear Regression)
  6. 2014年西安区域赛的几道水题(A. F. K)
  7. 解决webpack4版本在打包时候出现Cannot read property ‘bindings‘ of null 或 Cannot find module ‘@babel/core‘问题
  8. 如何隐藏scroll-Y纵向滚动条,并不影响内容滚动的方法
  9. [原创]jQuery Validation范例
  10. 【逆向】Android逆向破解某APP
  11. Python 提示‘Unindent amount does not match previous indent‘解决方法
  12. VMware Tanzu Application Service——Config Client (TAS)
  13. Linux apache 默认目录结构
  14. 最新微信红包封面+抽奖小程序/小程序开源源码
  15. 【笔记】玩转CSS3新特性_from_JSPang
  16. Docker/Podman使用入门---从容器构建镜像 提交镜像到服务器UCloud dockerhub
  17. Linux e1000e网卡驱动
  18. TaskView简述
  19. Mysql莫名其妙的错误,语法没错却报语法错误
  20. 动力电池系统介绍(一)——锂离子电池材料组成及其充放电过程

热门文章

  1. 【XCP学习笔记】1 XCP协议初步
  2. python连连看_太好玩了,我用Python写了个火影忍者版的连连看 !
  3. 基于Spring Cloud的微服务架构分析
  4. 泰语字库,泰文字库,泰文组合算法,泰语组合算法
  5. [转]AT指令返回错误代码: CMS errors CME errors
  6. 第二章、URL与资源
  7. 什么是3D AOI检测设备?
  8. 华为路由器NAT表项维护
  9. UWB技术的使用场景
  10. JSP中使用<c:forEach>标签循环遍历元素