Class ExecutionEntity
- All Implemented Interfaces:
Serializable
,BaseDelegateExecution
,BpmnModelExecutionContext
,DelegateExecution
,ProcessEngineServicesAware
,VariableScope
,VariableEventDispatcher
,VariableStore.VariablesProvider<VariableInstanceEntity>
,DbEntity
,HasDbReferences
,HasDbRevision
,ActivityExecution
,PvmExecution
,PvmProcessInstance
,Execution
,ProcessInstance
- Author:
- Tom Baeyens, Daniel Meyer, Falko Menge
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected String
persisted reference to the current position in the diagram within thePvmExecutionImpl.processDefinition
.protected String
The name of the current activity positionprotected int
static final int
protected List<EventSubscriptionEntity>
protected List<ExecutionObserver>
Contains observers which are observe the execution.protected List<ExecutionEntity>
nested executions representing scopes or concurrent pathsstatic final int
protected List<ExternalTaskEntity>
static final int
protected List<IncidentEntity>
static final int
protected static final EnginePersistenceLogger
protected ExecutionEntity
the parent executionprotected String
persisted reference to the parent of this execution.protected String
persisted reference to the processDefinition.protected ExecutionEntity
the process instance.protected String
persisted reference to the process instance.protected String
Completed HPI that is being restarted through this ExecutionEntityprotected int
protected String
persisted reference to the root process instance.protected boolean
protected boolean
static final int
static final int
protected CaseExecutionEntity
reference to a subcaseinstance, not-null if currently subcase is started from this executionprotected ExecutionEntity
reference to a subprocessinstance, not-null if currently subprocess is started from this executionprotected CaseExecutionEntity
super case execution, not-null if this execution is part of a case executionprotected String
persisted reference to the super case execution of this executionprotected ExecutionEntity
super execution, not-null if this execution is part of a subprocessprotected String
persisted reference to the super execution of this executionprotected int
protected List<TaskEntity>
static final int
static final int
protected VariableStore<VariableInstanceEntity>
Fields inherited from class org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl
activity, activityInstanceEndListenersFailed, activityInstanceId, activityInstanceState, caseInstanceId, delayedEvents, deleteReason, deleteRoot, externallyTerminated, ignoreAsync, isActive, isConcurrent, isEnded, isEventScope, isRemoved, isScope, isStarting, nextActivity, payloadForTriggeredScope, preserveScope, processDefinition, replacedBy, scopeInstantiationContext, sequenceCounter, transition, transitionsToTake
Fields inherited from class org.camunda.bpm.engine.impl.core.instance.CoreExecution
businessKey, businessKeyWithoutCascade, eventName, eventSource, id, listenerIndex, skipCustomListeners, skipIoMapping, skipSubprocesses, tenantId
Fields inherited from class org.camunda.bpm.engine.impl.core.variable.scope.AbstractVariableScope
cachedElContext
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addEventSubscription
(EventSubscriptionEntity eventSubscriptionEntity) void
addExecutionObserver
(ExecutionObserver observer) void
addExternalTask
(ExternalTaskEntity externalTask) void
addIncident
(IncidentEntity incident) void
void
addTask
(TaskEntity taskEntity) void
addVariableInternal
(VariableInstanceEntity variable) void
protected void
creates a new execution.protected static ExecutionEntity
createSubCaseInstance
(CmmnCaseDefinition caseDefinition) Creates a new sub case instance.createSubCaseInstance
(CmmnCaseDefinition caseDefinition, String businessKey) Creates a new sub case instance.createSubProcessInstance
(PvmProcessDefinition processDefinition, String businessKey, String caseInstanceId) protected void
createTimerInstances
(Collection<TimerDeclarationImpl> timerDeclarations) void
destroy
(boolean alwaysSkipIoMappings) Method used for destroying a scope in a way that the execution can be removed afterwards.void
dispatchEvent
(VariableEvent variableEvent) protected void
must be called before the activity member field or getActivity() is calledprotected void
protected void
protected void
Fetch all the executions inside the same process instance as list and then reconstruct the complete execution tree.protected void
protected void
protected void
protected void
protected void
protected void
for setting the process definition, this setter must be used as subclasses can overrideprotected void
protected void
protected void
protected void
protected void
protected void
void
void
void
protected String
generateActivityInstanceId
(String activityId) generates an activity instance idensures initialization and returns the activityReturns the currently executed Element in the BPMN Model.Returns theBpmnModelInstance
for the currently executed Bpmn Modelint
int
getCompensateEventSubscriptions
(String activityId) Gets the id of the current activity.Gets the name of the current activity.returns the list of execution of which this execution the parent of.protected List<ExternalTaskEntity>
getIncidentByCauseIncidentId
(String causeIncidentId) protected List<IncidentEntity>
getJobs()
ensures initialization and returns the parentGets the id of the parent of this execution.Returns a representation of the object, as would be stored in the database.The business key for the process instance this execution is associated with.ensures initialization and returns the process definition.The id of the process definition of the process instance.Returns theProcessEngine
providing access to the public API of the process engine.Returns theProcessEngineServices
providing access to the public API of the process engine.ensures initialization and returns the process instance.Id of the root of the execution tree representing the process instance.Scope: IN-MEMORY referencesScope: IN-MEMORY referencesReturns an execution that has replaced this execution for executing activities in their shared scope.int
int
The id of the root process instance associated with this process instance.In case this delegate execution is the process instance execution and this process instance was started by a call activity, this method returns the execution which executed the call activity in the super process instance.int
getTasks()
protected List<TaskEntity>
protected String
protected VariableInstanceFactory<CoreVariableInstance>
protected VariableStore<CoreVariableInstance>
void
handleConditionalEventOnVariableChange
(VariableEvent variableEvent) void
Inactivates this execution.void
protected static void
initializeAssociations
(ExecutionEntity execution) void
void
insert()
void
interrupt
(String reason, boolean skipCustomListeners, boolean skipIoMappings, boolean externallyTerminated) boolean
protected boolean
boolean
returns whether this execution is a process instance or not.boolean
boolean
Indicates if the execution is suspended.protected void
protected void
protected void
protected void
moveTasksTo
(ExecutionEntity other) protected void
moveVariablesTo
(ExecutionEntity other) protected void
moveVariableTo
(VariableInstanceEntity variable, ExecutionEntity other) protected PvmExecutionImpl
void
onConcurrentExpand
(PvmExecutionImpl scopeExecution) Callback on tree expansion when this execution is used as the concurrent execution where the argument's children become a subordinate to.<T extends CoreExecution>
voidperformOperation
(CoreAtomicOperation<T> operation) void
performOperation
(AtomicOperation executionOperation) <T extends CoreExecution>
voidperformOperationSync
(CoreAtomicOperation<T> operation) void
performOperationSync
(AtomicOperation executionOperation) protected void
provideTenantId
(Map<String, Object> variables, VariableMap properties) provideVariables
(Collection<String> variableNames) void
remove()
protected void
removeActivityJobs
(String reason) void
void
removeEventSubscription
(EventSubscriptionEntity eventSubscriptionEntity) void
protected void
void
removeExecutionObserver
(ExecutionObserver observer) void
removeExternalTask
(ExternalTaskEntity externalTask) protected void
void
removeIncident
(IncidentEntity incident) void
void
removeTask
(TaskEntity task) protected void
protected void
removeTasks
(String reason, boolean skipCustomListeners) void
removeVariableInternal
(VariableInstanceEntity variable) void
void
void
replace
(PvmExecutionImpl execution) Replace an execution by this execution.protected boolean
requiresUnsuspendedExecution
(AtomicOperation executionOperation) Instead ofPvmExecutionImpl.getReplacedBy()
, which returns the execution that this execution was directly replaced with, this resolves the chain of replacements (i.e.void
restoreProcessInstance
(Collection<ExecutionEntity> executions, Collection<EventSubscriptionEntity> eventSubscriptions, Collection<VariableInstanceEntity> variables, Collection<TaskEntity> tasks, Collection<JobEntity> jobs, Collection<IncidentEntity> incidents, Collection<ExternalTaskEntity> externalTasks) Restores a complete process instance tree including referenced entities.void
scheduleAtomicOperationAsync
(AtomicOperationInvocation executionOperationInvocation) void
setActivity
(PvmActivity activity) void
setActivityId
(String activityId) void
setCachedEntityState
(int cachedEntityState) void
setExecutions
(List<ExecutionEntity> executions) void
setParentExecution
(PvmExecutionImpl parent) Use #setParent to also update the child execution setsvoid
setParentId
(String parentId) void
setProcessDefinition
(ProcessDefinitionImpl processDefinition) void
setProcessDefinitionId
(String processDefinitionId) void
setProcessInstance
(PvmExecutionImpl processInstance) void
setProcessInstanceId
(String processInstanceId) void
setRestartedProcessInstanceId
(String restartedProcessInstanceId) void
setRevision
(int revision) void
setRootProcessInstanceId
(String rootProcessInstanceId) void
setSubCaseInstance
(CmmnExecution subCaseInstance) void
setSubProcessInstance
(PvmExecutionImpl subProcessInstance) void
setSuperCaseExecution
(CmmnExecution superCaseExecution) void
setSuperCaseExecutionId
(String superCaseExecutionId) void
setSuperExecution
(PvmExecutionImpl superExecution) void
setSuperExecutionId
(String superExecutionId) void
setSuspensionState
(int suspensionState) void
start
(Map<String, Object> variables, VariableMap formProperties) void
startWithoutExecuting
(Map<String, Object> variables) perform starting behavior but don't execute the initial activitytoString()
Methods inherited from class org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl
activityInstanceDone, activityInstanceEndListenerFailure, activityInstanceStarted, activityInstanceStarting, clearDelayedEvents, clearScope, collectActiveActivityIds, collectExecutions, continueExecutionIfNotCanceled, continueIfExecutionDoesNotAffectNextOperation, createActivityExecutionMapping, createActivityExecutionMapping, createActivityExecutionMapping, createConcurrentExecution, createIncident, createIncident, createIncidentContext, createSubProcessInstance, createSubProcessInstance, delayEvent, delayEvent, deleteCascade, deleteCascade, deleteCascade, destroy, dispatchDelayedEventsAndPerformOperation, dispatchDelayedEventsAndPerformOperation, dispatchScopeEvents, disposeScopeInstantiationContext, end, endCompensation, enterActivityInstance, executeActivities, executeActivitiesConcurrent, executeActivity, executeEventHandlerActivity, executeIoMapping, findActiveActivityIds, findExecution, findExecutionForFlowScope, findExecutionForFlowScope, findExecutionForScope, findExecutions, findInactiveChildExecutions, findInactiveConcurrentExecutions, findIncidentHandler, getActivityInstanceId, getActivityInstanceState, getAllChildExecutions, getBusinessKey, getCaseInstanceId, getCurrentTransitionId, getDelayedEvents, getDeleteReason, getEventScopeExecutions, getFlowScope, getFlowScopeExecution, getNextActivity, getNonEventScopeExecutions, getParentActivityInstanceId, getParentScopeExecution, getParentVariableScope, getPayloadForTriggeredScope, getScopeActivity, getScopeInstantiationContext, getSequenceCounter, getTransition, getTransitionsToTake, getVariableScopeKey, hasChildren, hasFailedOnEndListeners, hasReplacedParent, incrementSequenceCounter, initActivityIds, instantiateScopes, interrupt, isActive, isAsyncAfterScopeWithoutTransition, isCanceled, isCompleteScope, isConcurrent, isDeleteRoot, isEnded, isEventScope, isExecutingScopeLeafActivity, isExternallyTerminated, isIgnoreAsync, isInState, isPreserveScope, isRemoved, isReplacedByParent, isScope, isStarting, leaveActivityInstance, leaveActivityViaTransition, leaveActivityViaTransitions, propagateEnd, removeEventScopes, resolveIncident, setActive, setActivityInstanceId, setCanceled, setCaseInstanceId, setCompleteScope, setConcurrent, setDelayedPayloadToNewScope, setDeleteReason, setDeleteRoot, setEnded, setEventScope, setExternallyTerminated, setIgnoreAsync, setNextActivity, setParent, setPayloadForTriggeredScope, setPreserveScope, setProcessBusinessKey, setProcessInstanceStarting, setScope, setSequenceCounter, setStartContext, setStarting, setTransition, setTransitionsToTake, setVariable, signal, start, start, startWithFormProperties, take, tryPruneLastConcurrentChild
Methods inherited from class org.camunda.bpm.engine.impl.core.instance.CoreExecution
getBusinessKeyWithoutCascade, getEventName, getEventSource, getId, getListenerIndex, getTenantId, invokeListener, isSkipCustomListeners, isSkipIoMappings, isSkipSubprocesses, setBusinessKey, setEventName, setEventSource, setId, setListenerIndex, setSkipCustomListeners, setSkipIoMappings, setSkipSubprocesseses, setTenantId
Methods inherited from class org.camunda.bpm.engine.impl.core.variable.scope.AbstractVariableScope
collectVariableNames, collectVariables, getCachedElContext, getSourceActivityVariableScope, getValueFromVariableInstance, getVariable, getVariable, getVariableInstance, getVariableInstanceLocal, getVariableInstancesLocal, getVariableInstancesLocal, getVariableLocal, getVariableLocal, getVariableLocalTyped, getVariableLocalTyped, getVariableNames, getVariableNamesLocal, getVariables, getVariablesLocal, getVariablesLocalTyped, getVariablesLocalTyped, getVariablesTyped, getVariablesTyped, getVariableTyped, getVariableTyped, hasVariable, hasVariableLocal, hasVariables, hasVariablesLocal, initializeVariableStore, invokeVariableLifecycleListenersCreate, invokeVariableLifecycleListenersCreate, invokeVariableLifecycleListenersDelete, invokeVariableLifecycleListenersDelete, invokeVariableLifecycleListenersUpdate, invokeVariableLifecycleListenersUpdate, removeVariable, removeVariable, removeVariableLocal, removeVariableLocal, removeVariables, removeVariables, removeVariablesLocal, removeVariablesLocal, setCachedElContext, setVariable, setVariable, setVariable, setVariable, setVariableLocal, setVariableLocal, setVariableLocal, setVariables, setVariables, setVariablesLocal, setVariablesLocal
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.camunda.bpm.engine.delegate.BaseDelegateExecution
getEventName, getId
Methods inherited from interface org.camunda.bpm.engine.delegate.DelegateExecution
getTenantId
Methods inherited from interface org.camunda.bpm.engine.runtime.Execution
getId, getTenantId, isEnded
Methods inherited from interface org.camunda.bpm.engine.impl.db.HasDbReferences
getDependentEntities
Methods inherited from interface org.camunda.bpm.engine.runtime.ProcessInstance
getBusinessKey, getCaseInstanceId
Methods inherited from interface org.camunda.bpm.engine.impl.pvm.PvmExecution
getVariable, getVariables, hasVariable, setVariable
Methods inherited from interface org.camunda.bpm.engine.delegate.VariableScope
getVariable, getVariableLocal, getVariableLocalTyped, getVariableLocalTyped, getVariableNames, getVariableNamesLocal, getVariables, getVariablesLocal, getVariablesLocalTyped, getVariablesLocalTyped, getVariablesTyped, getVariablesTyped, getVariableTyped, getVariableTyped, hasVariable, hasVariableLocal, hasVariables, hasVariablesLocal, removeVariable, removeVariableLocal, removeVariables, removeVariables, removeVariablesLocal, removeVariablesLocal, setVariable, setVariableLocal, setVariables, setVariablesLocal
-
Field Details
-
LOG
-
EVENT_SUBSCRIPTIONS_STATE_BIT
public static final int EVENT_SUBSCRIPTIONS_STATE_BIT- See Also:
-
TASKS_STATE_BIT
public static final int TASKS_STATE_BIT- See Also:
-
JOBS_STATE_BIT
public static final int JOBS_STATE_BIT- See Also:
-
INCIDENT_STATE_BIT
public static final int INCIDENT_STATE_BIT- See Also:
-
VARIABLES_STATE_BIT
public static final int VARIABLES_STATE_BIT- See Also:
-
SUB_PROCESS_INSTANCE_STATE_BIT
public static final int SUB_PROCESS_INSTANCE_STATE_BIT- See Also:
-
SUB_CASE_INSTANCE_STATE_BIT
public static final int SUB_CASE_INSTANCE_STATE_BIT- See Also:
-
EXTERNAL_TASKS_BIT
public static final int EXTERNAL_TASKS_BIT- See Also:
-
processInstance
the process instance. this is the root of the execution tree. the processInstance of a process instance is a self reference. -
parent
the parent execution -
executions
nested executions representing scopes or concurrent paths -
superExecution
super execution, not-null if this execution is part of a subprocess -
superCaseExecution
super case execution, not-null if this execution is part of a case execution -
subProcessInstance
reference to a subprocessinstance, not-null if currently subprocess is started from this execution -
subCaseInstance
reference to a subcaseinstance, not-null if currently subcase is started from this execution -
shouldQueryForSubprocessInstance
protected boolean shouldQueryForSubprocessInstance -
shouldQueryForSubCaseInstance
protected boolean shouldQueryForSubCaseInstance -
eventSubscriptions
-
jobs
-
tasks
-
externalTasks
-
incidents
-
cachedEntityState
protected int cachedEntityState -
variableStore
-
suspensionState
protected int suspensionState -
revision
protected int revision -
processDefinitionId
persisted reference to the processDefinition. -
activityId
persisted reference to the current position in the diagram within thePvmExecutionImpl.processDefinition
.- See Also:
-
activityName
The name of the current activity position -
processInstanceId
persisted reference to the process instance.- See Also:
-
parentId
persisted reference to the parent of this execution.- See Also:
-
superExecutionId
persisted reference to the super execution of this execution- See Also:
-
setSuperExecution(ExecutionEntity)
-
rootProcessInstanceId
persisted reference to the root process instance.- See Also:
-
superCaseExecutionId
persisted reference to the super case execution of this execution- See Also:
-
setSuperCaseExecution(ExecutionEntity)
-
restartedProcessInstanceId
Completed HPI that is being restarted through this ExecutionEntity -
executionObservers
Contains observers which are observe the execution.- Since:
- 7.6
-
registeredVariableListeners
protected transient List<VariableInstanceLifecycleListener<VariableInstanceEntity>> registeredVariableListeners
-
-
Constructor Details
-
ExecutionEntity
public ExecutionEntity()
-
-
Method Details
-
createExecution
creates a new execution. properties processDefinition, processInstance and activity will be initialized.- Specified by:
createExecution
in interfaceActivityExecution
- Specified by:
createExecution
in classPvmExecutionImpl
-
createSubProcessInstance
public ExecutionEntity createSubProcessInstance(PvmProcessDefinition processDefinition, String businessKey, String caseInstanceId) - Specified by:
createSubProcessInstance
in interfaceActivityExecution
- Overrides:
createSubProcessInstance
in classPvmExecutionImpl
- Parameters:
processDefinition
- ThePvmProcessDefinition
of the subprocess.businessKey
- the business key of the process instancecaseInstanceId
- the case instance id of the process instance- See Also:
-
createNewExecution
-
newExecution
- Specified by:
newExecution
in classPvmExecutionImpl
-
createSubCaseInstance
Description copied from interface:ActivityExecution
Creates a new sub case instance.
This
execution will be the super execution of the created sub case instance.- Specified by:
createSubCaseInstance
in interfaceActivityExecution
- Specified by:
createSubCaseInstance
in classPvmExecutionImpl
- Parameters:
caseDefinition
- TheCmmnCaseDefinition
of the sub case instance.
-
createSubCaseInstance
public CaseExecutionEntity createSubCaseInstance(CmmnCaseDefinition caseDefinition, String businessKey) Description copied from interface:ActivityExecution
Creates a new sub case instance.
This
execution will be the super execution of the created sub case instance.- Specified by:
createSubCaseInstance
in interfaceActivityExecution
- Specified by:
createSubCaseInstance
in classPvmExecutionImpl
- Parameters:
caseDefinition
- TheCmmnCaseDefinition
of the sub case instance.businessKey
- The businessKey to be set on sub case instance.
-
fireHistoricActivityInstanceUpdate
public void fireHistoricActivityInstanceUpdate() -
initialize
public void initialize()- Specified by:
initialize
in classPvmExecutionImpl
-
initializeTimerDeclarations
public void initializeTimerDeclarations()- Specified by:
initializeTimerDeclarations
in classPvmExecutionImpl
-
createTimerInstances
-
initializeAssociations
-
start
- Overrides:
start
in classPvmExecutionImpl
-
startWithoutExecuting
Description copied from class:PvmExecutionImpl
perform starting behavior but don't execute the initial activity- Overrides:
startWithoutExecuting
in classPvmExecutionImpl
- Parameters:
variables
- the variables which are used for the start
-
provideTenantId
-
fireHistoricProcessStartEvent
public void fireHistoricProcessStartEvent()- Specified by:
fireHistoricProcessStartEvent
in classPvmExecutionImpl
-
destroy
public void destroy(boolean alwaysSkipIoMappings) Method used for destroying a scope in a way that the execution can be removed afterwards.- Overrides:
destroy
in classPvmExecutionImpl
- Parameters:
alwaysSkipIoMappings
- set to true to always skip IO mappings, regardless of internal state of execution (=>CoreExecution.isSkipIoMappings()
)
-
removeAllTasks
public void removeAllTasks()- Overrides:
removeAllTasks
in classPvmExecutionImpl
-
clearExecution
protected void clearExecution() -
removeVariablesLocalInternal
public void removeVariablesLocalInternal()- Specified by:
removeVariablesLocalInternal
in classPvmExecutionImpl
-
interrupt
public void interrupt(String reason, boolean skipCustomListeners, boolean skipIoMappings, boolean externallyTerminated) - Overrides:
interrupt
in classPvmExecutionImpl
-
removeActivityJobs
-
performOperation
- Overrides:
performOperation
in classCoreExecution
-
performOperationSync
- Overrides:
performOperationSync
in classCoreExecution
-
performOperation
-
performOperationSync
-
ensureNotSuspended
protected void ensureNotSuspended() -
requiresUnsuspendedExecution
-
scheduleAtomicOperationAsync
-
isActive
- Overrides:
isActive
in classPvmExecutionImpl
-
inactivate
public void inactivate()Description copied from interface:ActivityExecution
Inactivates this execution. This is useful for example in a join: the execution still exists, but it is not longer active.- Specified by:
inactivate
in interfaceActivityExecution
- Overrides:
inactivate
in classPvmExecutionImpl
-
addExecutionObserver
-
removeExecutionObserver
-
getExecutions
Description copied from interface:ActivityExecution
returns the list of execution of which this execution the parent of. This is a copy of the actual list, so a modification has no direct effect.- Specified by:
getExecutions
in interfaceActivityExecution
- Specified by:
getExecutions
in classPvmExecutionImpl
-
getExecutionsAsCopy
- Specified by:
getExecutionsAsCopy
in classPvmExecutionImpl
-
ensureExecutionsInitialized
protected void ensureExecutionsInitialized() -
isExecutionTreePrefetchEnabled
protected boolean isExecutionTreePrefetchEnabled()- Returns:
- true if execution tree prefetching is enabled
-
setExecutions
-
getProcessBusinessKey
Description copied from interface:DelegateExecution
The business key for the process instance this execution is associated with.- Specified by:
getProcessBusinessKey
in interfaceDelegateExecution
- Overrides:
getProcessBusinessKey
in classPvmExecutionImpl
-
getProcessDefinition
ensures initialization and returns the process definition.- Overrides:
getProcessDefinition
in classPvmExecutionImpl
-
setProcessDefinitionId
-
getProcessDefinitionId
Description copied from interface:ProcessInstance
The id of the process definition of the process instance.- Specified by:
getProcessDefinitionId
in interfaceDelegateExecution
- Specified by:
getProcessDefinitionId
in interfaceProcessInstance
-
ensureProcessDefinitionInitialized
protected void ensureProcessDefinitionInitialized()for setting the process definition, this setter must be used as subclasses can override -
setProcessDefinition
- Overrides:
setProcessDefinition
in classPvmExecutionImpl
-
getProcessInstance
ensures initialization and returns the process instance.- Specified by:
getProcessInstance
in interfaceDelegateExecution
- Specified by:
getProcessInstance
in classPvmExecutionImpl
-
ensureProcessInstanceInitialized
protected void ensureProcessInstanceInitialized() -
setProcessInstance
- Specified by:
setProcessInstance
in classPvmExecutionImpl
-
isProcessInstanceExecution
public boolean isProcessInstanceExecution()Description copied from interface:ActivityExecution
returns whether this execution is a process instance or not.- Specified by:
isProcessInstanceExecution
in interfaceActivityExecution
- Overrides:
isProcessInstanceExecution
in classPvmExecutionImpl
-
isProcessInstanceStarting
public boolean isProcessInstanceStarting()- Overrides:
isProcessInstanceStarting
in classPvmExecutionImpl
-
getActivity
ensures initialization and returns the activity- Specified by:
getActivity
in interfaceActivityExecution
- Specified by:
getActivity
in interfacePvmExecution
- Overrides:
getActivity
in classPvmExecutionImpl
-
getActivityId
- Overrides:
getActivityId
in classPvmExecutionImpl
-
ensureActivityInitialized
protected void ensureActivityInitialized()must be called before the activity member field or getActivity() is called -
setActivity
- Specified by:
setActivity
in interfaceActivityExecution
- Overrides:
setActivity
in classPvmExecutionImpl
-
generateActivityInstanceId
generates an activity instance id- Specified by:
generateActivityInstanceId
in classPvmExecutionImpl
-
getParent
ensures initialization and returns the parent- Specified by:
getParent
in interfaceActivityExecution
- Specified by:
getParent
in classPvmExecutionImpl
-
ensureParentInitialized
protected void ensureParentInitialized() -
setParentExecution
Description copied from class:PvmExecutionImpl
Use #setParent to also update the child execution sets- Specified by:
setParentExecution
in classPvmExecutionImpl
-
getSuperExecutionId
-
getSuperExecution
Description copied from interface:DelegateExecution
In case this delegate execution is the process instance execution and this process instance was started by a call activity, this method returns the execution which executed the call activity in the super process instance.- Specified by:
getSuperExecution
in interfaceDelegateExecution
- Specified by:
getSuperExecution
in classPvmExecutionImpl
- Returns:
- the super execution or null.
-
setSuperExecution
- Specified by:
setSuperExecution
in classPvmExecutionImpl
-
ensureSuperExecutionInitialized
protected void ensureSuperExecutionInitialized() -
getSubProcessInstance
- Specified by:
getSubProcessInstance
in classPvmExecutionImpl
-
setSubProcessInstance
- Specified by:
setSubProcessInstance
in classPvmExecutionImpl
-
ensureSubProcessInstanceInitialized
protected void ensureSubProcessInstanceInitialized() -
getSuperCaseExecutionId
-
setSuperCaseExecutionId
-
getRestartedProcessInstanceId
-
setRestartedProcessInstanceId
-
getSuperCaseExecution
- Specified by:
getSuperCaseExecution
in classPvmExecutionImpl
-
setSuperCaseExecution
- Specified by:
setSuperCaseExecution
in classPvmExecutionImpl
-
ensureSuperCaseExecutionInitialized
protected void ensureSuperCaseExecutionInitialized() -
getSubCaseInstance
- Specified by:
getSubCaseInstance
in classPvmExecutionImpl
-
setSubCaseInstance
- Specified by:
setSubCaseInstance
in classPvmExecutionImpl
-
ensureSubCaseInstanceInitialized
protected void ensureSubCaseInstanceInitialized() -
remove
public void remove()- Specified by:
remove
in interfaceActivityExecution
- Overrides:
remove
in classPvmExecutionImpl
-
removeEventSubscriptionsExceptCompensation
protected void removeEventSubscriptionsExceptCompensation() -
removeEventSubscriptions
public void removeEventSubscriptions() -
removeTasks
-
removeTasks
protected void removeTasks() -
removeExternalTasks
protected void removeExternalTasks() -
getReplacedBy
Description copied from class:PvmExecutionImpl
Returns an execution that has replaced this execution for executing activities in their shared scope.
Invariant: this execution and getReplacedBy() execute in the same scope.
- Specified by:
getReplacedBy
in classPvmExecutionImpl
-
resolveReplacedBy
Description copied from class:PvmExecutionImpl
Instead ofPvmExecutionImpl.getReplacedBy()
, which returns the execution that this execution was directly replaced with, this resolves the chain of replacements (i.e. in the case the replacedBy execution itself was replaced again)- Overrides:
resolveReplacedBy
in classPvmExecutionImpl
-
replace
Description copied from class:PvmExecutionImpl
Replace an execution by this execution. The replaced execution has a pointer (
PvmExecutionImpl.getReplacedBy()
) to this execution. This pointer is maintained until the replaced execution is removed or this execution is removed/ended.This is used for two cases: Execution tree expansion and execution tree compaction
- expansion: Before:
------- | e1 | scope -------
After:------- | e1 | scope ------- | ------- | e2 | cc (no scope) -------
e2 replaces e1: it should receive all entities associated with the activity currently executed by e1; these are tasks, (local) variables, jobs (specific for the activity, not the scope) - compaction: Before:
------- | e1 | scope ------- | ------- | e2 | cc (no scope) -------
After:------- | e1 | scope -------
e1 replaces e2: it should receive all entities associated with the activity currently executed by e2; these are tasks, (all) variables, all jobs
- Overrides:
replace
in classPvmExecutionImpl
- See Also:
- expansion: Before:
-
onConcurrentExpand
Description copied from class:PvmExecutionImpl
Callback on tree expansion when this execution is used as the concurrent execution where the argument's children become a subordinate to. Note that this case is not the inverse of replace because replace has the semantics that the replacing execution can be used to continue execution of this execution's activity instance.- Overrides:
onConcurrentExpand
in classPvmExecutionImpl
-
moveTasksTo
-
moveExternalTasksTo
-
moveActivityLocalJobsTo
-
moveVariablesTo
-
moveVariableTo
-
moveConcurrentLocalVariablesTo
-
addVariableListener
-
removeVariableListener
public void removeVariableListener(VariableInstanceLifecycleListener<VariableInstanceEntity> listener) -
provideVariables
- Specified by:
provideVariables
in interfaceVariableStore.VariablesProvider<VariableInstanceEntity>
-
provideVariables
- Specified by:
provideVariables
in interfaceVariableStore.VariablesProvider<VariableInstanceEntity>
-
ensureExecutionTreeInitialized
protected void ensureExecutionTreeInitialized()Fetch all the executions inside the same process instance as list and then reconstruct the complete execution tree. In many cases this is an optimization over fetching the execution tree lazily. Usually we need all executions anyway and it is preferable to fetch more data in a single query (maybe even too much data) then to run multiple queries, each returning a fraction of the data. The most important consideration here is network roundtrip: If the process engine and database run on separate hosts, network roundtrip has to be added to each query. Economizing on the number of queries economizes on network roundtrip. The tradeoff here is network roundtrip vs. throughput: multiple roundtrips carrying small chucks of data vs. a single roundtrip carrying more data. -
restoreProcessInstance
public void restoreProcessInstance(Collection<ExecutionEntity> executions, Collection<EventSubscriptionEntity> eventSubscriptions, Collection<VariableInstanceEntity> variables, Collection<TaskEntity> tasks, Collection<JobEntity> jobs, Collection<IncidentEntity> incidents, Collection<ExternalTaskEntity> externalTasks) Restores a complete process instance tree including referenced entities.- Parameters:
executions
- the list of all executions that are part of this process instance. Cannot be null, must include the process instance execution itself.eventSubscriptions
- the list of all event subscriptions that are linked to executions which is part of this process instance If null, event subscriptions are not initialized and lazy loaded on demandvariables
- the list of all variables that are linked to executions which are part of this process instance If null, variables are not initialized and are lazy loaded on demandjobs
-tasks
-incidents
-
-
getPersistentState
Description copied from interface:DbEntity
Returns a representation of the object, as would be stored in the database. Used when deciding if updates have occurred to the object or not since it was last loaded.- Specified by:
getPersistentState
in interfaceDbEntity
-
insert
public void insert() -
getRevisionNext
public int getRevisionNext()- Specified by:
getRevisionNext
in interfaceHasDbRevision
-
forceUpdate
public void forceUpdate()- Specified by:
forceUpdate
in interfaceActivityExecution
-
toString
- Overrides:
toString
in classPvmExecutionImpl
-
getToStringIdentity
- Overrides:
getToStringIdentity
in classPvmExecutionImpl
-
getEventSubscriptionsInternal
-
getEventSubscriptions
-
getCompensateEventSubscriptions
-
getCompensateEventSubscriptions
-
ensureEventSubscriptionsInitialized
protected void ensureEventSubscriptionsInitialized() -
addEventSubscription
-
removeEventSubscription
-
ensureJobsInitialized
protected void ensureJobsInitialized() -
getJobsInternal
-
getJobs
-
addJob
-
removeJob
-
ensureIncidentsInitialized
protected void ensureIncidentsInitialized() -
getIncidentsInternal
-
getIncidents
-
addIncident
-
removeIncident
-
getIncidentByCauseIncidentId
-
ensureTasksInitialized
protected void ensureTasksInitialized() -
getTasksInternal
-
getTasks
-
addTask
-
removeTask
-
ensureExternalTasksInitialized
protected void ensureExternalTasksInitialized() -
getExternalTasksInternal
-
addExternalTask
-
removeExternalTask
-
getExternalTasks
-
getVariableStore
- Specified by:
getVariableStore
in classAbstractVariableScope
-
getVariableInstanceFactory
- Specified by:
getVariableInstanceFactory
in classAbstractVariableScope
-
getVariableInstanceLifecycleListeners
protected List<VariableInstanceLifecycleListener<CoreVariableInstance>> getVariableInstanceLifecycleListeners()- Specified by:
getVariableInstanceLifecycleListeners
in classAbstractVariableScope
-
getVariablePersistenceListener
-
getVariablesInternal
-
removeVariableInternal
-
addVariableInternal
-
handleConditionalEventOnVariableChange
-
dispatchEvent
- Specified by:
dispatchEvent
in interfaceVariableEventDispatcher
- Overrides:
dispatchEvent
in classAbstractVariableScope
-
setCachedEntityState
public void setCachedEntityState(int cachedEntityState) -
getCachedEntityState
public int getCachedEntityState() -
getCachedEntityStateRaw
public int getCachedEntityStateRaw() -
getRootProcessInstanceId
Description copied from interface:ProcessInstance
The id of the root process instance associated with this process instance.- Specified by:
getRootProcessInstanceId
in interfaceProcessInstance
-
getRootProcessInstanceIdRaw
-
setRootProcessInstanceId
-
getProcessInstanceId
Description copied from interface:Execution
Id of the root of the execution tree representing the process instance. It is the same asExecution.getId()
if this execution is the process instance.- Specified by:
getProcessInstanceId
in interfaceDelegateExecution
- Specified by:
getProcessInstanceId
in interfaceExecution
-
setProcessInstanceId
-
getParentId
Description copied from interface:DelegateExecution
Gets the id of the parent of this execution. If null, the execution represents a process-instance.- Specified by:
getParentId
in interfaceDelegateExecution
- Overrides:
getParentId
in classPvmExecutionImpl
-
setParentId
-
getRevision
public int getRevision()- Specified by:
getRevision
in interfaceHasDbRevision
-
setRevision
public void setRevision(int revision) - Specified by:
setRevision
in interfaceHasDbRevision
-
setActivityId
-
setSuperExecutionId
-
getReferencedEntityIds
Description copied from interface:HasDbReferences
Scope: IN-MEMORY references
- Specified by:
getReferencedEntityIds
in interfaceHasDbReferences
- Returns:
- the ids of the entities that this entity references. Should only return ids for entities of the same type
-
getReferencedEntitiesIdAndClass
Description copied from interface:HasDbReferences
Scope: IN-MEMORY references
- Specified by:
getReferencedEntitiesIdAndClass
in interfaceHasDbReferences
- Returns:
- a map of the ids and the entities' classes that this entity references. It's used when trying to determine if there was an Optimistic Locking occurrence on an INSERT or UPDATE of an object of this type.
-
getSuspensionState
public int getSuspensionState() -
setSuspensionState
public void setSuspensionState(int suspensionState) -
isSuspended
public boolean isSuspended()Description copied from interface:Execution
Indicates if the execution is suspended.- Specified by:
isSuspended
in interfaceExecution
- Specified by:
isSuspended
in interfaceProcessInstance
-
getCurrentActivityId
Description copied from interface:DelegateExecution
Gets the id of the current activity.- Specified by:
getCurrentActivityId
in interfaceDelegateExecution
- Overrides:
getCurrentActivityId
in classPvmExecutionImpl
-
getCurrentActivityName
Description copied from interface:DelegateExecution
Gets the name of the current activity.- Specified by:
getCurrentActivityName
in interfaceDelegateExecution
- Overrides:
getCurrentActivityName
in classPvmExecutionImpl
-
getBpmnModelElementInstance
Description copied from interface:BpmnModelExecutionContext
Returns the currently executed Element in the BPMN Model. This method returns a
FlowElement
which may be casted to the concrete type of the Bpmn Model Element currently executed.If called from a Service
ExecutionListener
, the method will return the correspondingFlowNode
forExecutionListener.EVENTNAME_START
andExecutionListener.EVENTNAME_END
and the correspondingSequenceFlow
forExecutionListener.EVENTNAME_TAKE
.- Specified by:
getBpmnModelElementInstance
in interfaceBpmnModelExecutionContext
- Returns:
- the
FlowElement
corresponding to the current Bpmn Model Element
-
getBpmnModelInstance
Description copied from interface:BpmnModelExecutionContext
Returns theBpmnModelInstance
for the currently executed Bpmn Model- Specified by:
getBpmnModelInstance
in interfaceBpmnModelExecutionContext
- Returns:
- the current
BpmnModelInstance
-
getProcessEngineServices
Description copied from interface:ProcessEngineServicesAware
Returns theProcessEngineServices
providing access to the public API of the process engine.- Specified by:
getProcessEngineServices
in interfaceProcessEngineServicesAware
- Returns:
- the
ProcessEngineServices
.
-
getProcessEngine
Description copied from interface:ProcessEngineServicesAware
Returns theProcessEngine
providing access to the public API of the process engine.- Specified by:
getProcessEngine
in interfaceProcessEngineServicesAware
- Returns:
- the
ProcessEngine
.
-
getProcessDefinitionTenantId
-