Package org.flowable.engine.impl.agenda
Class EndExecutionOperation
java.lang.Object
org.flowable.engine.impl.agenda.AbstractOperation
org.flowable.engine.impl.agenda.EndExecutionOperation
- All Implemented Interfaces:
Runnable
This operations ends an execution and follows the typical BPMN rules to continue the process (if possible).
This operations is typically not scheduled from an
ActivityBehavior, but rather from another operation.
This happens when the conditions are so that the process can't continue via the
regular ways and an execution cleanup needs to happen, potentially opening up new ways of continuing the process instance.- Author:
- Joram Barrez
-
Field Summary
FieldsFields inherited from class org.flowable.engine.impl.agenda.AbstractOperation
agenda, commandContext, execution -
Constructor Summary
ConstructorsConstructorDescriptionEndExecutionOperation(CommandContext commandContext, ExecutionEntity execution) EndExecutionOperation(CommandContext commandContext, ExecutionEntity execution, boolean forceSynchronous) -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanallChildExecutionsEnded(ExecutionEntity parentExecutionEntity, ExecutionEntity executionEntityToIgnore) protected List<ExecutionEntity>getActiveChildExecutionsForExecution(ExecutionEntityManager executionEntityManager, String executionId) protected List<ExecutionEntity>getEventScopeExecutions(ExecutionEntityManager executionEntityManager, ExecutionEntity parentExecution) protected intgetNumberOfActiveChildExecutionsForExecution(ExecutionEntityManager executionEntityManager, String executionId) protected intgetNumberOfActiveChildExecutionsForProcessInstance(ExecutionEntityManager executionEntityManager, String processInstanceId) protected voidhandleMultiInstanceSubProcess(ProcessEngineConfigurationImpl processEngineConfiguration, ExecutionEntityManager executionEntityManager, ExecutionEntity parentExecution, ExecutionEntity currentExecution) protected voidhandleProcessInstanceExecution(ExecutionEntity processInstanceExecution) protected voidprotected ExecutionEntityhandleRegularExecutionEnd(ExecutionEntityManager executionEntityManager, ExecutionEntity parentExecution) protected ExecutionEntityhandleSubProcessEnd(ExecutionEntityManager executionEntityManager, ExecutionEntity parentExecution, SubProcess subProcess) protected booleanisAsyncCompleteCallActivity(ExecutionEntity superExecution) protected booleanisEndEventOrImpliedEndEventInMultiInstanceSubprocess(ExecutionEntity executionEntity) protected booleanisFlowNodeWithoutOutgoingSequenceFlow(FlowElement flowElement) protected booleanisInEventSubProcess(ExecutionEntity executionEntity) voidrun()protected voidscheduleAsyncCompleteCallActivity(ExecutionEntity superExecutionEntity, ExecutionEntity childProcessInstanceExecutionEntity) Methods inherited from class org.flowable.engine.impl.agenda.AbstractOperation
executeExecutionListeners, executeExecutionListeners, findFirstParentScopeExecution, getAgenda, getCommandContext, getCurrentFlowElement, getExecution, setAgenda, setCommandContext, setExecution
-
Field Details
-
forceSynchronous
protected boolean forceSynchronous
-
-
Constructor Details
-
EndExecutionOperation
-
EndExecutionOperation
public EndExecutionOperation(CommandContext commandContext, ExecutionEntity execution, boolean forceSynchronous)
-
-
Method Details
-
run
public void run() -
handleProcessInstanceExecution
-
isAsyncCompleteCallActivity
-
scheduleAsyncCompleteCallActivity
protected void scheduleAsyncCompleteCallActivity(ExecutionEntity superExecutionEntity, ExecutionEntity childProcessInstanceExecutionEntity) -
handleRegularExecution
protected void handleRegularExecution() -
handleSubProcessEnd
protected ExecutionEntity handleSubProcessEnd(ExecutionEntityManager executionEntityManager, ExecutionEntity parentExecution, SubProcess subProcess) -
handleRegularExecutionEnd
protected ExecutionEntity handleRegularExecutionEnd(ExecutionEntityManager executionEntityManager, ExecutionEntity parentExecution) -
handleMultiInstanceSubProcess
protected void handleMultiInstanceSubProcess(ProcessEngineConfigurationImpl processEngineConfiguration, ExecutionEntityManager executionEntityManager, ExecutionEntity parentExecution, ExecutionEntity currentExecution) -
isEndEventOrImpliedEndEventInMultiInstanceSubprocess
protected boolean isEndEventOrImpliedEndEventInMultiInstanceSubprocess(ExecutionEntity executionEntity) -
isFlowNodeWithoutOutgoingSequenceFlow
-
getNumberOfActiveChildExecutionsForProcessInstance
protected int getNumberOfActiveChildExecutionsForProcessInstance(ExecutionEntityManager executionEntityManager, String processInstanceId) -
getNumberOfActiveChildExecutionsForExecution
protected int getNumberOfActiveChildExecutionsForExecution(ExecutionEntityManager executionEntityManager, String executionId) -
getActiveChildExecutionsForExecution
protected List<ExecutionEntity> getActiveChildExecutionsForExecution(ExecutionEntityManager executionEntityManager, String executionId) -
getEventScopeExecutions
protected List<ExecutionEntity> getEventScopeExecutions(ExecutionEntityManager executionEntityManager, ExecutionEntity parentExecution) -
allChildExecutionsEnded
protected boolean allChildExecutionsEnded(ExecutionEntity parentExecutionEntity, ExecutionEntity executionEntityToIgnore) -
isInEventSubProcess
-