Jbpm31DataModel

    %%( font-size: 130%;)

     

    JBoss 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.

     

    JBoss jBPM Definition Data Model

     

     

    JBPM_PROCESSDEFINITION - Stores general information about the process definition.

     

    Foreign Keys

     

         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

     

     

    JBPM Execution Data Model

     

     

     

    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

     

    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

     

         Swim Lane 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

     

     

    %%