activiti,根据任务id获取该节点配置的表单信息

具体的实现代码如下:

/**
     * @Title: getDefFormIdByTaskId
     * @Description: TODO(根据任务id获取该节点配置的表单id)
     * @param taskId 任务id
     * @return
     * @return String (当前任务节点配置的表单id)
     */ 
    public String getDefFormIdByTaskId(String taskId){
    	
    	Task task=processEngine.getTaskService().createTaskQuery() // 创建任务查询 
    			.taskId(taskId) // 根据任务id查询
    			.singleResult(); 
    	String processDefinitionId=task.getProcessDefinitionId(); // 获取流程定义id 
    	
    	ProcessDefinitionEntity processDefinitionEntity=(ProcessDefinitionEntity) processEngine.getRepositoryService()
    			.getProcessDefinition(processDefinitionId); 
    	
    	ActivityImpl activityImpl=processDefinitionEntity.findActivity(task.getTaskDefinitionKey()); // 根据活动id获取活动实例 
    	TaskDefinition taskDef = (TaskDefinition)activityImpl.getProperties().get("taskDefinition");
    	
    	DefaultTaskFormHandler fh = (DefaultTaskFormHandler)taskDef.getTaskFormHandler();
    	
    	List<FormPropertyHandler> flList = fh == null?null: (List<FormPropertyHandler>)fh.getFormPropertyHandlers();
    	
    	String formKey = "";
    	
    	if (flList != null && flList.size() > 0) {
    		formKey = ((FormPropertyHandler)flList.get(0)).getId();
		}
    	
    	return formKey;
    }

猜你喜欢

转载自blog.csdn.net/qq_25927437/article/details/87339217