activiti 快速入门--3种assignee任务分配方式(2)
2016-11-01 15:41
387 查看
1. 第一篇文章写过,直接写死在流程图assignee里面,这种不灵活
2. 通过表达式来写${user}
3. 通过监听器
下面说说后面两种方式
1)通过表达式${user},当然这里可以随便起名,记得用的时候对应上就好了,具体操作如下,和前一篇一样
注意:一定要重新部署,就前面一篇文章写的delployFlow()跑一遍,具体我就不赘述了;
那么我们修改下上一篇的flowStart()方法(拿个来做例子,其他都一样):
对应的completeTask()方法中complete这么用:
public void completeTask(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("user", "cwh");
String taskId = "17504";
processEngine.getTaskService().complete(taskId,map);//完成任务
System.out.println("完成任务,任务ID"+taskId);
}
Ok,注意就实现我们第二中方式了,下面说下地三种方式监听器
2)通过监听器实现:具体操作如下
①首先建一个监听器类:
②在Listeners中new一个
Select class 选择我们刚刚创建的监听器
这样就可以了,前面的${user}就不需要了,注意:如果${user}留着的话又不传值给他会报错
③修改flowStart()方法:和最初的样子一样
这样跑后就把任务分配给了前面监听器里面写的delegateTask.setAssignee("menco") menco手上了
2. 通过表达式来写${user}
3. 通过监听器
下面说说后面两种方式
1)通过表达式${user},当然这里可以随便起名,记得用的时候对应上就好了,具体操作如下,和前一篇一样
注意:一定要重新部署,就前面一篇文章写的delployFlow()跑一遍,具体我就不赘述了;
那么我们修改下上一篇的flowStart()方法(拿个来做例子,其他都一样):
@Test public void flowStart(){ RuntimeService runtimeService= processEngine.getRuntimeService(); Map<String,Object> map = newHashMap<String,Object>(); map.put("user", "cwh");//注意这里,对应我们上面的${user} ProcessInstance processInstance =runtimeService.startProcessInstanceByKey("HelloWorldKey",map); System.out.println(processInstance.getId());//流程图id }
对应的completeTask()方法中complete这么用:
public void completeTask(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("user", "cwh");
String taskId = "17504";
processEngine.getTaskService().complete(taskId,map);//完成任务
System.out.println("完成任务,任务ID"+taskId);
}
Ok,注意就实现我们第二中方式了,下面说下地三种方式监听器
2)通过监听器实现:具体操作如下
①首先建一个监听器类:
publicclassTaskListenerImpl1 implements TaskListener{ privatestaticfinallongserialVersionUID= 6633288366888360749L; privatestaticProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @Override public void notify(DelegateTask delegateTask) { // TODO Auto-generated method stub TaskServicetaskService = processEngine.getTaskService(); delegateTask.setAssignee("menco"); } }
②在Listeners中new一个
Select class 选择我们刚刚创建的监听器
这样就可以了,前面的${user}就不需要了,注意:如果${user}留着的话又不传值给他会报错
③修改flowStart()方法:和最初的样子一样
@Test public void flowStart(){ RuntimeServiceruntimeService = processEngine.getRuntimeService(); //用key启动时按照最新的流程图版本定义启动 ProcessInstanceprocessInstance = runtimeService.startProcessInstanceByKey("HelloWorldKey"); System.out.println(processInstance.getId());//流程图id }
这样跑后就把任务分配给了前面监听器里面写的delegateTask.setAssignee("menco") menco手上了
相关文章推荐
- activiti 快速入门--组任务(candidate users)分配(6)
- activiti 快速入门--组任务(candidate users)分配(6)
- Elasticsearch v2.2 快速入门(含curl,Sense,python 3种客户端方式)
- Activiti进阶(十一)——分配组任务的三种方式
- Activiti 分配组任务(三种方式)
- Activiti 分配组任务(三种方式)
- activiti学习--13:组任务分配方式2--使用流程变量
- Activiti进阶(十)——分配个人任务的三种方式
- Activiti进阶(十)——分配个人任务的三种方式
- 分配个人任务的三种方式(引用地址有较全面的入门教程)
- activiti学习--12 个人任务及三种分配方式:直接设置代理人+流程变量设置代理人+实现类的方式设置代理人+将任务代理人设置为别人
- activiti学习--13:组任务分配方式1直接方式+查询正在执行的任务办理人表+查询历史任务的办理人表+拾取任务+将个人任务回退到组任务+向组任务中添加/删除成员
- Activiti进阶(十一)——分配组任务的三种方式
- activiti个人任务及三种分配方式
- Activiti进阶(十一)——分配组任务的三种方式
- InnoSetup快速入门(四):创建桌面快捷方式并作为可选的附加任务
- activiti学习--13:组任务分配方式3--使用类
- API hook原理和实例快速入门(inline hook),以dll线程注入方式使用(win7-64bit)
- webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
- Quartz任务调度快速入门