项目实践工作流之Activiti学习(二十八)

2023-11-13 20:47:31 浏览数 (2)

2.1.2.2 使用流程变量分配任务

 定义任务分配流程变量

 设置流程变量

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

代码语言:javascript复制
//启动流程实例时设计流程变量
//定义流程变量
Map<String, Object> variables = new HashMap<String, Object>();
//设置流程变量assignee
variables.put("assignee", "张三");
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey(processDefinitionKey, variables);

2.1.2.3 注意事项

由于使用了表达式分配,必须保证在任务执行过程表达式执行成功,比如:

某个任务使用了表达式${order.price > 100 && order.price < 250},当执行该任务时必须保证 order 在流程变量中存在,否则 activiti 异常。

2.1.3 监听器分配

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

任务相当事件包括:

Create:任务创建后触发

Assignment:任务分配后触发

Delete:任务完成后触发

All:所有事件发生都触发

java 逻辑 或表达式:

表达式参考上边的介绍的 UEL 表达式,这里主要介绍监听类使用。

定义任务监听类,且类必须实现 org.activiti.engine.delegate.TaskListener 接口

代码语言:javascript复制
public class MyTaskListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
//这里指定任务负责人
delegateTask.setAssignee("张三");
}
}

0 人点赞