Interface ProcessInstance

All Superinterfaces:
EventListener
All Known Subinterfaces:
WorkflowProcessInstance

public interface ProcessInstance extends EventListener
A process instance represents one specific instance of a process that is currently executing. Whenever a process is started, a process instance is created that represents that specific instance that was started. It contains all runtime information related to that instance. Multiple process instances of the same process can be executed simultaneously. For example, consider a process definition that describes how to process a purchase order. Whenever a new purchase order comes in, a new process instance will be created for that purchase order. Multiple process instances (one for each purchase order) can coexist. A process instance is uniquely identified by an id. This class can be extended to represent one specific type of process, e.g. WorkflowProcessInstance when using a WorkflowProcess where the process logic is expressed as a flow chart.
See Also:
  • Field Details

  • Method Details

    • getProcessId

      String getProcessId()
      The id of the process definition that is related to this process instance.
      Returns:
      the id of the process definition that is related to this process instance
    • getProcess

      Process getProcess()
    • getId

      String getId()
      The unique id of this process instance.
      Returns:
      the unique id of this process instance
    • getProcessName

      String getProcessName()
      The name of the process definition that is related to this process instance.
      Returns:
      the name of the process definition that is related to this process instance
    • getState

      int getState()
      The state of the process instance.
      Returns:
      the state of the process instance
    • getParentProcessInstanceId

      String getParentProcessInstanceId()
      Returns parent process instance id if this process instance has a parent
      Returns:
      the unique id of parent process instance, null if this process instance doesn't have a parent
    • getRootProcessInstanceId

      String getRootProcessInstanceId()
      Returns root process instance id if this process instance has a root process instance
      Returns:
      the unique id of root process instance, null if this process instance doesn't have a root or is a root itself
    • getRootProcessId

      String getRootProcessId()
      The id of the root process definition that is related to this process instance.
      Returns:
      the id of the root process definition that is related to this process instance
    • getVariables

      Map<String,Object> getVariables()
      Returns current snapshot of process instance variables
      Returns:
      non empty map of process instance variables
    • getPublicVariables

      Map<String,Object> getPublicVariables()
      Returns current snapshot of process instance variables that are publicly accessible
      Returns:
      non empty map of process instance variables
    • getVariable

      Object getVariable(String name)
      Returns current snapshot of process instance variable identified by name
      Returns:
      current value of given process variable or null if not found
    • setVariable

      void setVariable(String name, Object value)
      Sets value for given variable overriding previous value if it was present
      Parameters:
      name - name of the variable
      value - value of the variable
    • getReferenceId

      String getReferenceId()
      Returns optional reference id this process instance was triggered by
      Returns:
      reference id or null if not set
    • getCorrelationKey

      String getCorrelationKey()
      Returns optional correlation key (aka business key)
      Returns:
      correlation key if exists otherwise null