activiti 给流程定义(ProcessDefinition)指定用户具有启动流程的权限

        ProcessEngine engine = config.buildProcessEngine();
    	
    	IdentityService is = engine.getIdentityService();
    	org.flowable.idm.api.User user = is.newUser(UUID.randomUUID().toString());
    	user.setFirstName("kebi");
    	is.saveUser(user);
    	
    	
    	RepositoryService rs = engine.getRepositoryService();
    	 
    	Deployment deploy = rs.createDeployment().
    			addClasspathResource("process/helloworld.bpmp2.0.xml").deploy();
    	
    	ProcessDefinition def = rs.createProcessDefinitionQuery().deploymentId(deploy.getId()).singleResult();
		rs.addCandidateStarterUser(def.getId(), user.getId()); //指定流程被哪个用户操作+
    	
    	List<ProcessDefinition> list = rs.createProcessDefinitionQuery()
    			.startableByUser(user.getId()).list(); //查询这个用户可以操作的流程
    	for(ProcessDefinition de:list) {
    		System.out.println(de.getId());
    	}


        // 给任务设置用户组
    	TaskService taskService = engine.getTaskService();
    	Task task = taskService.createTaskQuery().singleResult();
    	String groupId=UUID.randomUUID().toString();
    	Group group = is.newGroup(groupId);
    	group.setName("测试用户组");
    	is.saveGroup(group);
    	
    	taskService.addCandidateGroup(task.getId(), groupId);


        //设置这个用户的持有人
    	taskService.setOwner(task.getId(), user.getId());    	
    	
    	//查询用户要处理的任务
    	List<Task> tasks = taskService.createTaskQuery().taskOwner(user.getId()).list();

    	for(Task t:tasks) {
    		System.out.println(task.getName());
            //完成当前任务
            taskService.complete(t.getId());
    	}

猜你喜欢

转载自blog.csdn.net/ldqchat/article/details/81810834