jbpm设置流程变量

流程变量持久化在variable表中


1:通过ExecutionService设置变量

save:

		String name = "price";
		Double price = 100d;

		String executionId = "financeApprove.150001";  //每个task对应一个;每次流程启动时的执行id,存放于execution表中的id字段
		pe.getExecutionService().setVariable(executionId, name, price);

		Map<String, String> map = new HashMap<String, String>();

		map.put("name", "lily");
		map.put("sex", "male");
		pe.getExecutionService().setVariables(executionId, map);

read:

		String name = "price";

		Set<String> names = pe.getExecutionService().getVariableNames("financeApprove.150001");
		for (String item : names) {
			//System.out.println(item);
			Object obj = pe.getExecutionService().getVariable("financeApprove.150001", item);

			System.out.println(obj);
		}
                //通过taskid获取//
                String taskId="500003";
                 names =pe.getTaskService().getVariableNames(taskId)
               Map<String, Object> map=pe.getTaskService().getVariable(taskId, names);
               //遍历map


2:通过TaskService设置变量
save
		//使用TaskService设置主要是针对某一task进行设置,作用域和ExecutionService的作用域是一样的,可以相同的方式获取数据
		String taskId="";
		
		Map<String, String> map = new HashMap<String, String>();

		map.put("taskname", "taskTOM");
		map.put("taskdes", "taskFAT");
		
		pe.getTaskService().setVariables("150002", map);

read和ExecutionService读取方式一样


3:启动流程实例时设置变量(因为是启动时设置所以会生成一个新的executionid)

save

	
		String executionId = "financeApprove-1";
		
		Map<String, String> map = new HashMap<String, String>();

		map.put("startname", "startTOM");
		map.put("startdes", "startFAT");
		
		ProcessInstance processInstance = pe.getExecutionService().startProcessInstanceById(executionId, map);

4:执行task时设置变量
		Map<String, String> map = new HashMap<String, String>();

		map.put("dotaskname", "dotaskTOM");
		map.put("dotaskdes", "dotaskFAT");

		String taskId = "200004";

		pe.getTaskService().completeTask(taskId, "to manager", map); //需要指定路线



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值