jBPM4.4开发(三)-----------task任务节点

一.定义

      任务节点task是jBPM最常用的节点,作用是为某人或某组人创建一个任务。task活动一般用来处理涉及人机交互的活动,流程引擎会停在这里等待人工操作。

二.属性介绍

   1. assignee 一个任务分配给指定用户 #{user}

task01.jpdl.xml

<?xml version="1.0" encoding="UTF-8"?>

<process name="task01" xmlns="http://jbpm.org/4.4/jpdl">
   <start name="start1" g="56,127,48,48">
      <transition name="to task" to="task" g="-19,-20"/>
   </start>
   <task name="task" g="166,128,92,52" assignee="#{user}">
      <transition name="to wait" to="wait" g="-13,-17"/>
   </task>
   <state name="wait" g="336,132,92,52"/>
</process>


测试代码:

package com.itstudio.jbpm.task.demo;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.HistoryService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.RepositoryService;
import org.jbpm.api.TaskService;
import org.jbpm.api.task.Task;

public class TaskTest01 {
	public static final Configuration configuration = new Configuration();
	public static final ProcessEngine processEngine=configuration.buildProcessEngine();
	public static final RepositoryService repositoryService= processEngine.getRepositoryService();
	public static final ExecutionService executionService=processEngine.getExecutionService();
	public static final TaskService taskService=processEngine.getTaskService();
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TaskTest01 demo = new TaskTest01();
		demo.deploy();
		demo.test();
	}
	public void deploy(){
		repositoryService.createDeployment()
			.addResourceFromClasspath("com/itstudio/jbpm/task/demo/task01.jpdl.xml")
				.deploy();
		System.out.println("发布成功!");
	}
	public void test(){
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("user", "master");
		ProcessInstance processInstance = executionService.startProcessInstanceByKey("task01", map);
		System.out.println("流程实例ID---->"+processInstance.getId());
		System.out.println("流程定义ID---->"+processInstance.getProcessDefinitionId());
		List<Task> list = taskService.findPersonalTasks("master");
		for(Task tasks : list){
			System.out.println("task name:"+tasks.getActivityName());
			System.out.println("task user:"+tasks.getAssignee());
			System.out.println("task id:"+tasks.getId());
			String taskid = tasks.getId();
			taskService.completeTask(taskid);
			System.out.println("任务完成情况------>"+tasks.STATE_COMPLETED);
			System.out.println("完成任务");
		}
		ProcessInstance instance = executionService.signalExecutionById(processInstance.getId());
		System.out.println("是否在wait节点------->"+instance.isActive("wait"));
	}
}

2.assignee这样指定给用户  #{user.owner}

   这说明程序首先调用user这个名字查找一个对象,并且调用getOwner()来获得用户变量

   将上一个例子中的assignee修改为#{user.owner}

<?xml version="1.0" encoding="UTF-8"?>

<process name="task02" xmlns="http://jbpm.org/4.4/jpdl">
   <start g="42,124,48,48" name="start1">
      <transition g="-10,-11" name&#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值