activiti 학습 자료 (다음 노드 가져오기)
activiti 다음 노드를 가져오는 방법
ACTIV ITI는 JB PM에 비해 젊고 사용하는 사람이 적으며 중국어 관련 자료가 적습니다. 저는 인터넷에서 찾아본 자료와 공식 문서를 보고 코드를 정리했는데 쉽지 않았습니다.잔말 말고 코드로 바로 올라가세요.
먼저 프로세스 ID를 기반으로 현재 작업을 가져옵니다.List<Task> tasks = taskService.createTaskQuery().processInstanceId(procInstanceId).list();
그런 다음 현재 작업에 따라 현재 프로세스의 프로세스 정의를 가져오고 프로세스 정의에 따라 모든 노드를 가져옵니다.ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl)rs).getDeployedProcessDefinition(task.getProcessDefinitionId());List<ActivityImpl> activitiList = def.getActivities(); //rs RepositoryService
작업에 따라 현재 프로세스 실행 ID, 실행 인스턴스 및 현재 프로세스 노드의 ID를 가져옵니다.String excId = task.getExecutionId();ExecutionEntity execution = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(excId).singleResult();String activitiId = execution.getActivityId();
그리고 activitiList를 순환하여 현재 프로세스가 있는 노드를 판단한 다음에 현재 노드의 실례를 얻고 노드의 실례에 따라 현재 노드에서 출발하는 모든 경로를 얻은 다음에 경로에 따라 다음 노드의 실례를 얻는다.for(ActivityImpl activityImpl:activitiList){String id = activityImpl.getId();if(activitiId.equals(id)){System.out.println(" :"+activityImpl.getProperty("name")); // List<PvmTransition> outTransitions = activityImpl.getOutgoingTransitions();// for(PvmTransition tr:outTransitions){PvmActivity ac = tr.getDestination(); // System.out.println(" :"+ac.getProperty("name"));}break;}}
이것은 현재 노드와 다음 경로나 노드를 가져오는 전체 과정이다
activiti-explorer 소스 다운로드 주소:https://github.com/HSSC/activiti-explorer
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Access Request, Session and Application in Struts2
If we want to use request, Session and application in JSP, what should we do?
We can obtain Map type objects such as Req...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
List<Task> tasks = taskService.createTaskQuery().processInstanceId(procInstanceId).list();
ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl)rs).getDeployedProcessDefinition(task.getProcessDefinitionId());List<ActivityImpl> activitiList = def.getActivities(); //rs RepositoryService
String excId = task.getExecutionId();ExecutionEntity execution = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(excId).singleResult();String activitiId = execution.getActivityId();
for(ActivityImpl activityImpl:activitiList){String id = activityImpl.getId();if(activitiId.equals(id)){System.out.println(" :"+activityImpl.getProperty("name")); // List<PvmTransition> outTransitions = activityImpl.getOutgoingTransitions();// for(PvmTransition tr:outTransitions){PvmActivity ac = tr.getDestination(); // System.out.println(" :"+ac.getProperty("name"));}break;}}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Access Request, Session and Application in Struts2If we want to use request, Session and application in JSP, what should we do? We can obtain Map type objects such as Req...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.