Activiti7工作流引擎之任务分配

目录

 

第一种:固定分配

第二种:UEL表达式分配

第三种:使用监听器分配(用的少)

代码中设置流程变量时机


第一种:固定分配

固定分配指 在进行业务流程建模时指定固定的任务负责人(再具体环节上指定具体的用户,一旦环节负责人员变更则需要重新编辑)
 

第二种:UEL表达式分配

Activiti 使用 UEL 表达式, UEL java EE6 规范的一部分, UEL Unified Expression Language )即 统一表达式语言,activiti 支持两个 UEL 表达式: UEL-value UEL-method
 

  • UEL-method 方式如下
 
userBean spring 容器中的一个 bean ,表示调用该 bean getUserId() 方法。
  •  UEL-method UEL-value 结合
再比如: ${ldapService.findManagerForEmployee(emp)}
ldapService spring 容器的一个 bean findManagerForEmployee 是该 bean 的一个方法, emp activiti 流程变量,emp 作为参数传到 ldapService.findManagerForEmployee 方法中。
  •  其它
表达式支持解析基础类型、 bean list array map,也可作为条件判断如下:
${order.price > 100 && order.price < 250}

第三种:使用监听器分配(用的少)

1)任务监听器是发生对应的任务相关事件时执行自定义 java 逻辑 或表达式。

任务相当事件包括:
  • Create:任务创建后触发
  • Assignment:任务分配后触发
  • Delete:任务完成后触发
  • All:所有事件发生都触发
2)定义任务监听类,且类必须实现 org.activiti.engine.delegate.TaskListener 接口。
 
public class MyTaskListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
//这里指定任务负责人
delegateTask.setAssignee("张三");
} }

 

代码中设置流程变量时机

在启动流程实例时设置流程变量,如下:

	//流程实例的启动
	@Test
	public  void testprocessstart(){
		//获取流程引擎
		ProcessEngine  processEngine = ProcessEngines.getDefaultProcessEngine();
		
		//创建流程启动对象
		RuntimeService runtimeService = processEngine.getRuntimeService();

		
		String  processDefinitionKey  = "myProcess";
		String  businessKey = "1";
		
		//设置流程变量
		//在启动流程实例时设置流程变量
		//定义流程变量为每个流程中的每个环节分配负责人
		Map<String, Object> variables = new HashMap<String, Object>();
		variables.put("dept_assign", "张三");
		variables.put("leader_assign", "李四");
		//设置流程变量assignee
		ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey,businessKey, variables);
		System.out.println("活动id"+	processInstance.getActivityId());
		System.out.println("实例id"+	processInstance.getProcessInstanceId());
    }
	

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值