如何通过Spring Activiti为特定任务设置指定处理者?

2026-04-30 06:122阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计796个文字,预计阅读时间需要4分钟。

如何通过Spring Activiti为特定任务设置指定处理者?

指定委托那些管理者处理任务节点,也只有此管理者才拥有操作此节点的权限。直接指定+流程图配置实现:在流程图属性列设置Assignee属性值为任务的处理器+流程XML文件配置。

指定委托那些办理者处理任务节点,也就是只有此办理者才有操作此节点的操作权限

1、直接指定

流程图配置实现:在流程图属性栏设置Assignee属性值为任务的处理者

如何通过Spring Activiti为特定任务设置指定处理者?

流程图xml文件配置实现:在流程图对应的xml文件指定activiti:assignee属性值为任务的处理者

<userTask activiti:assignee="yl01" activiti:exclusive="true" id="_3" name="部长"/>
activiti插件不支持idea2020版本,所以2020版idea可能看不到流程图属性栏,可以采用第二种直接修改xml文件配置方式

示例

package com.yl; import org.activiti.engine.*; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Test; import java.util.HashMap; import java.util.Map; public class ActivitiTest { //创建工作流引擎 ProcessEngine processEngine= ProcessEngines.getDefaultProcessEngine(); //管理流程文件的对象 RepositoryService repositoryService=processEngine.getRepositoryService(); //管理流程实例的对象 RuntimeService runtimeService=processEngine.getRuntimeService(); //管理任务节点的对象 TaskService taskService=processEngine.getTaskService(); //流程实例id private String processInstanceId; /** * 部署流程文件 */ @Test public void deployment() { //部署bpmn文件到数据库表 Deployment deployment=repositoryService.createDeployment().addClasspathResource("hello.bpmn").deploy(); System.out.println("部署文件id="+deployment.getId()); } /** * 启动流程实例 */ @Test public void start(){ //启动流程实例 ProcessInstance processInstance=runtimeService.startProcessInstanceByKey("myProcess_1"); processInstanceId=processInstance.getId(); System.out.println("流程实例id="+processInstanceId); } /** * 获取当前任务节点对象及完成此任务节点 */ @Test public void complete(){ //获取任务节点对象 List<Task> taskList= taskService.createTaskQuery().processInstanceId(processInstanceId).taskAssignee("yl01").list(); for(Task task:taskList){ System.out.println("待办事务="+task.getName()); } //完成此任务节点 taskService.complete(task.getId()); } }

2、通过变量指定

流程图配置实现:在流程图属性栏设置Assignee属性值为任务的处理者,属性值设置为变量,eg:#{name}

流程图xml文件配置实现:在流程图对应的xml文件指定activiti:assignee属性值为任务的处理者

<userTask activiti:assignee="#{name1}" activiti:exclusive="true" id="_3" name="部长"/>

示例

package com.yl; import org.activiti.engine.*; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Test; import java.util.HashMap; import java.util.Map; public class ActivitiTest { //创建工作流引擎 ProcessEngine processEngine= ProcessEngines.getDefaultProcessEngine(); //管理流程文件的对象 RepositoryService repositoryService=processEngine.getRepositoryService(); //管理流程实例的对象 RuntimeService runtimeService=processEngine.getRuntimeService(); //管理任务节点的对象 TaskService taskService=processEngine.getTaskService(); //流程实例id private String processInstanceId; /** * 部署流程文件 */ @Test public void deployment() { //部署bpmn文件到数据库表 Deployment deployment=repositoryService.createDeployment().addClasspathResource("hello.bpmn").deploy(); System.out.println("部署文件id="+deployment.getId()); } /** * 启动流程实例 */ @Test public void start(){ //存储任务处理者 Map<String,Object> variables=new HashMap<>(); variables.put("name1","yl01"); //启动流程实例并指定任务处理对象 ProcessInstance processInstance=runtimeService.startProcessInstanceByKey("myProcess_1",variables); processInstanceId=processInstance.getId(); System.out.println("流程实例id="+processInstanceId); } /** * 获取当前任务节点对象及完成此任务节点 */ @Test public void complete(){ //获取任务节点对象 Task task= taskService.createTaskQuery().processInstanceId(processInstanceId).taskAssignee("yl01").singleResult(); System.out.println("待办事务="+task.getName()); //完成此任务节点 taskService.complete(task.getId()); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计796个文字,预计阅读时间需要4分钟。

如何通过Spring Activiti为特定任务设置指定处理者?

指定委托那些管理者处理任务节点,也只有此管理者才拥有操作此节点的权限。直接指定+流程图配置实现:在流程图属性列设置Assignee属性值为任务的处理器+流程XML文件配置。

指定委托那些办理者处理任务节点,也就是只有此办理者才有操作此节点的操作权限

1、直接指定

流程图配置实现:在流程图属性栏设置Assignee属性值为任务的处理者

如何通过Spring Activiti为特定任务设置指定处理者?

流程图xml文件配置实现:在流程图对应的xml文件指定activiti:assignee属性值为任务的处理者

<userTask activiti:assignee="yl01" activiti:exclusive="true" id="_3" name="部长"/>
activiti插件不支持idea2020版本,所以2020版idea可能看不到流程图属性栏,可以采用第二种直接修改xml文件配置方式

示例

package com.yl; import org.activiti.engine.*; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Test; import java.util.HashMap; import java.util.Map; public class ActivitiTest { //创建工作流引擎 ProcessEngine processEngine= ProcessEngines.getDefaultProcessEngine(); //管理流程文件的对象 RepositoryService repositoryService=processEngine.getRepositoryService(); //管理流程实例的对象 RuntimeService runtimeService=processEngine.getRuntimeService(); //管理任务节点的对象 TaskService taskService=processEngine.getTaskService(); //流程实例id private String processInstanceId; /** * 部署流程文件 */ @Test public void deployment() { //部署bpmn文件到数据库表 Deployment deployment=repositoryService.createDeployment().addClasspathResource("hello.bpmn").deploy(); System.out.println("部署文件id="+deployment.getId()); } /** * 启动流程实例 */ @Test public void start(){ //启动流程实例 ProcessInstance processInstance=runtimeService.startProcessInstanceByKey("myProcess_1"); processInstanceId=processInstance.getId(); System.out.println("流程实例id="+processInstanceId); } /** * 获取当前任务节点对象及完成此任务节点 */ @Test public void complete(){ //获取任务节点对象 List<Task> taskList= taskService.createTaskQuery().processInstanceId(processInstanceId).taskAssignee("yl01").list(); for(Task task:taskList){ System.out.println("待办事务="+task.getName()); } //完成此任务节点 taskService.complete(task.getId()); } }

2、通过变量指定

流程图配置实现:在流程图属性栏设置Assignee属性值为任务的处理者,属性值设置为变量,eg:#{name}

流程图xml文件配置实现:在流程图对应的xml文件指定activiti:assignee属性值为任务的处理者

<userTask activiti:assignee="#{name1}" activiti:exclusive="true" id="_3" name="部长"/>

示例

package com.yl; import org.activiti.engine.*; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Test; import java.util.HashMap; import java.util.Map; public class ActivitiTest { //创建工作流引擎 ProcessEngine processEngine= ProcessEngines.getDefaultProcessEngine(); //管理流程文件的对象 RepositoryService repositoryService=processEngine.getRepositoryService(); //管理流程实例的对象 RuntimeService runtimeService=processEngine.getRuntimeService(); //管理任务节点的对象 TaskService taskService=processEngine.getTaskService(); //流程实例id private String processInstanceId; /** * 部署流程文件 */ @Test public void deployment() { //部署bpmn文件到数据库表 Deployment deployment=repositoryService.createDeployment().addClasspathResource("hello.bpmn").deploy(); System.out.println("部署文件id="+deployment.getId()); } /** * 启动流程实例 */ @Test public void start(){ //存储任务处理者 Map<String,Object> variables=new HashMap<>(); variables.put("name1","yl01"); //启动流程实例并指定任务处理对象 ProcessInstance processInstance=runtimeService.startProcessInstanceByKey("myProcess_1",variables); processInstanceId=processInstance.getId(); System.out.println("流程实例id="+processInstanceId); } /** * 获取当前任务节点对象及完成此任务节点 */ @Test public void complete(){ //获取任务节点对象 Task task= taskService.createTaskQuery().processInstanceId(processInstanceId).taskAssignee("yl01").singleResult(); System.out.println("待办事务="+task.getName()); //完成此任务节点 taskService.complete(task.getId()); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。