activiti工作流获取出线(outgoingTransitions)

来源:互联网 发布:数据库课程设计报告 编辑:程序博客网 时间:2024/06/06 00:16

首先上代码:

/**     * 根据processInstanceId获取出线     * (获取本节点后面的所有出线)     * @param taskId     * @return     */    public List<String> getFlows(String processInstanceId) {        Task task = engine.getTaskService().createTaskQuery().processInstanceId(processInstanceId).singleResult();        ExecutionEntity execution = (ExecutionEntity) engine.getRuntimeService().createExecutionQuery().executionId(task.getExecutionId()).singleResult();        String activitiId = execution.getActivityId();        logger.info("根据taskid获取activitiId:" + activitiId);        String processDefinitionId = engine.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult().getProcessDefinitionId();        ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) engine.getRepositoryService()).getDeployedProcessDefinition(processDefinitionId);        List<ActivityImpl> activities = processDefinitionEntity.getActivities();        logger.info("根据processInstanceId获取本流程图的所有节点");        List<PvmTransition> `outgoingTransitions` = new ArrayList<PvmTransition>();        List<String> messageList = new ArrayList<String>();        for (ActivityImpl activityImpl : activities) {            if (activityImpl.getId().equals(activitiId)) {                outgoingTransitions = activityImpl.getOutgoingTransitions();                for (PvmTransition pvmTransition : outgoingTransitions) {                    messageList.add(pvmTransition.getProperty("name").toString());                }                logger.info("获取本节点的所有出线");            }        }        return messageList;    }

上述代码就是获取一个节点后面的出线上的name(也就是图二线上的字)。

List<PvmTransition> `outgoingTransitions` = new ArrayList<PvmTransition>();

就是出线信息,读者可以查看这个PvmTransition对象,查看具体信息

这里写图片描述
图一
上述代码
图二

1 0
原创粉丝点击