Jbpm31DataModel

    jBPM 3.1 Data Model

    This wiki shows the reverse-engineered data models for the definition and execution sides of JBoss jBPM.  They are separated into two parts in this wiki to simplify the explanation.

    Definition Data Model

    definition_data_model.png

     

    JBPM_PROCESSDEFINITION - Stores general information about the process definition.

     

    Foreign Key

     

    • Node table - Start-state node in the process

     

    JBPM_NODE - Stores definition information about a node in a process definition.

     

    Foreign Keys

     

    • Process Definition table - The process definition that the node belongs to
    • Process Definition table - Specify that this node calls a sub process. The sub process would complete execution before the parent process leaves this node
    • Action table - Specify an action class to be executed for the node
    • Node table -  Specify that this node belongs to a superstate.  Multiple nodes can belong to a superstate
    • Delegation table - Specify that a decision has been delegated to a class

     

    JBPM_TRANSITION - Stores definition information about a transition in a process definition.

     

    Foreign Keys

     

    • Process Definition table - Specify the definition that the transition belongs to
    • Node table - Specify the node that starts the transition
    • Node table - Specify the node that the transition ends on

     

    JBPM_ACTION - Stores definition information about an action in a process definition.

     

    Foreign Keys

     

    • Process Definition table - Specify the definition that the action belongs to
    • Event table - Specify the event that triggers the action
    • Delegation table - Specify the action is delegated to
    • ExceptionHandler table -  Specify the exception handler class for this action
    • Action table - Specify the action is referenced by another action and
    • Action table - Specify if there is a timer action

     

    JBPM_DELEGATION - Stores definition information about Java business classes that are specified in the process definition.

     

    Foreign key

     

    • Process Definition table - Specify the process definition that the delegation belongs to.

     

    JBPM_EVENT - Stores definition information about an event that triggers an action in the process definition.

     

    Foreign Keys

     

    • Process Definition table - Specify the process definition that the event belongs to
    • Node table - Specify the event belongs to a node
    • Transition table - Specify the event belongs to a transition
    • Task table - Specify the event belongs to a task

     

    JBPM_EXCEPTIONHANDLER - Stores definition information about an exception handler for an action.

     

    JBPM_DECISIONCONDITIONS - Stores definition information about conditions specified in the process definition.

     

    JBPM_TASK - Stores definition information about tasks defined in the process definition.

     

    Foreign Keys

     

    • Process Definition table - Specify the process definition the task belongs to
    • Module Definition table - Specify the TaskMgmtDefintion to be used for this task.
    • Node table - Specify the node the task belongs to
    • Node table - Specify that this task belongs to the start-state of a process
    • Delegation table - Specify the delegation of the task to a class
    • Swimlane table - Specify the swimlane that the task uses for assignment
    • Task Controller table - Specify the task assignment is delegated to a class

     

    JBPM_TASKCONTROLLER - Stores information that refers a task to a delegation class.

     

    Foreign key

     

    • Delegation table - Specify the class that is the controller for the task.

     

    JBPM_VARIABLEACCESS - Stores information about the access levels for each variable associated to a particular node or task

     

    Foreign keys

     

    • Node table - Specify the node that the variables belong to
    • Task Controller table - Specify the task that the variables belong to
    • Action table - Specify the action that the variables belong to

     

    JBPM_SWIMLANE - Stores information about the swimlanes defined in the process definition.

     

    Foreign Keys

     

    • Delegation table - Specify the class that determines assignment for this swimlane
    • Module Definition table - All of the swimlanes for a process definition belong to a TaskMgmtDefintion.  This is specified in the Module Definition table.

     

    JBPM_MODULEDEFINITION - Stores information about modules used in the process definition

     

    Foreign Keys

     

    • Process Definition table - Specify the process definition this module is used in
    • Task table - Specify the task this module is used in

     

    JBPM_ID_USER - Stores information about users in jBPM

     

    JBPM_ID_GROUP - Stores information about groups that users can belong to.

     

    Foreign Key

     

    • ID Group - Parent/Child relationship between groups.

     

    JBPM_ID_MEMBERSHIP - Cross reference table storing information about role and which groups a user belongs to.

     

    Foreign Keys

     

    • ID Users table - Specify the user that belongs to the membership.
    • ID Group table - Specify the group the membership belongs to.

     

    JBPM_ID_PERMISSIONS - Defines permissions for a user

     

    Execution Data Model

    JBossjBPMExecutionDataModel.pngexecution_data_model.png

     

    JBPM_PROCESSINSTANCE - Stores runtime information about an instance of a process.

     

    Foreign keys

     

    • Process Definition table - the process definition to be followed for this process instance execution
    • Token table - the root token that follows where the process execution is currently
    • Token table - the super process token (if this process instance was called from another process instance)

     

    JBPM_TOKEN - Stores information about the token representing execution location in the process instance

     

    Foreign keys

     

    • Process Instance table - the process instance this token belongs to.
    • Process Instance table - the sub process instance that the token belongs to.
    • Node table - the node that the token points to as the current location of execution.
    • Token table - parent/child relationship between tokens for a fork or sub process.

     

    JBPM_MESSAGE - Stores messages to create asynchronous processing of nodes.

     

    Foreign keys

     

    • Token table - token the message belongs to
    • Action table - action the message belongs to
    • Node table - node the message belongs to
    • Task Instance table - task instance the message belongs to

     

    JBPM_TASKINSTANCE - Stores runtime information about an instance of a task

     

    Foreign keys

     

    • Task table - the task that defines the instance
    • Token table - the token the task belongs to
    • Swimlane Instance table - the swimlane instance used to determine who works this task instance
    • Module Instance table - the instance of the module to manage the task

     

    JBPM_SWIMLANEINSTANCE - Stores runtime information about an instance of a swimlane

     

    Foreign keys

     

    • Swimlane table - the swimlane that defines the instance
    • Module Instance table - the instance of the module to manage the task

     

    JBPM_POOLEDACTOR - Stores a list of actors for a swimlane instance

     

    Foreign Key

     

    • Swimlane Instance table - the swimlane instance the actor belongs to

     

    JBPM_TASKACTORPOOL - Cross reference table between Pooled Actor and Task Instance

     

    Foreign Keys

     

    • Pooled Actor - Actors for a swimlane instance
    • Task Instance - Task the pooled actor belongs to

     

    JBPM_COMMENT - Stores a comment message related to a token or task instance

     

    Foreign Keys

     

    • Token table - the token the comment belongs to.
    • Task Instance table - the task instance the comment belongs to.

     

    JBPM_TOKENVARIABLEMAP - Cross reference table between token and module instances for context

     

    Foreign Keys

     

    • Token table - the token representing the process execution
    • Module Instance table - the context module instance for the token

     

    JBPM_MODULEINSTANCE - Stores runtime information about an instance of a module

     

    Foreign Keys

     

    • Process Instance table - the process instance the module instance belongs to
    • Module Definition table - the module definition that defines the module instance

     

    JBPM_RUNTIMEACTION - Stores information about actions that are created at runtime

     

    Foreign Keys

     

    • Process Instance table - the process instance the action belongs to
    • Action table - the action definition that defines the action instance

     

    JBPM_TIMER - Stores information about instances of timers that are running

     

    Foreign Keys

     

    • Action table - The action that the timer belongs to
    • Token table - the token that the timer belongs to
    • Process Instance table - the process instance the timer belongs to
    • Task Instance table - the task instance the timer belongs to

     

    JBPM_VARIABLEINSTANCE - Stores information about process variable instances

     

    Foreign Keys

     

    • Token table - the token that the variables belong to
    • Token Variable Map table - mapping to the module instance for the token
    • Process Instance table - the process instance the variables belong to
    • Byte Array table - the byte array stored for a serialized object process variable instance
    • Task Instance table - the task instance the variables belong to

     

    JBPM_LOG - Stores process logs created by jBPM or application code during process execution. Unlike shown in the image, column CLASS_ is not a Boolean but a character that refers to the class that created the log (see ProcessLog.hbm.xml and discriminator-value in descendant Hibernate files such as TaskAssignLog.hbm.xml)

     

    Foreign Keys

     

    • Token table - the token that the logs belong to
    • Token table - the child token that the logs belong to
    • Log table   - parent/child relationship between logs
    • Transition table - the transition the logs belong to
    • Node table - the source node the logs belong to
    • Node table - the destination node the logs belong to
    • Variable Instance table - the variable instance that is referred to in the log
    • Byte Array table - the old value of the byte array
    • Byte Array table - the new value of the byte array
    • Task Instance table - The task instance that is referred to in the log
    • Swimlane Instance table - the swimlane instance that is referred to in the log

     

    JBPM_BYTEARRAY - Specifies the file definition module for a serialized process instance variable

     

    Foreign Key

     

    • Module Definition table - Specify the file definition module

     

    JBPM_BYTEBLOCK - Stores the serialized process instance variable

     

    Foreign Key

     

    • Byte Array table - The byte array that the byte block belongs to