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

 

 

%%