Class EndExecutionOperation

java.lang.Object
org.flowable.engine.impl.agenda.AbstractOperation
org.flowable.engine.impl.agenda.EndExecutionOperation
All Implemented Interfaces:
Runnable

public class EndExecutionOperation extends AbstractOperation
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 Details

    • forceSynchronous

      protected boolean forceSynchronous
  • Constructor Details

  • Method Details

    • run

      public void run()
    • handleProcessInstanceExecution

      protected void handleProcessInstanceExecution(ExecutionEntity processInstanceExecution)
    • isAsyncCompleteCallActivity

      protected boolean isAsyncCompleteCallActivity(ExecutionEntity superExecution)
    • scheduleAsyncCompleteCallActivity

      protected void scheduleAsyncCompleteCallActivity(ExecutionEntity superExecutionEntity, ExecutionEntity childProcessInstanceExecutionEntity)
    • handleRegularExecution

      protected void handleRegularExecution()
    • handleSubProcessEnd

      protected ExecutionEntity handleSubProcessEnd(ExecutionEntityManager executionEntityManager, ExecutionEntity parentExecution, org.flowable.bpmn.model.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

      protected boolean isFlowNodeWithoutOutgoingSequenceFlow(org.flowable.bpmn.model.FlowElement flowElement)
    • 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

      protected boolean isInEventSubProcess(ExecutionEntity executionEntity)