activiti 快速入门--3种assignee任务分配方式(2)

1.      第一篇文章写过,直接写死在流程图assignee里面,这种不灵活

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手上了

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值