JBPM表结构

一,概述

JBPM全称——Java  Business PrcessManagerment(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开放的、灵活的、易扩展的可执行流程语言框架。

二,最大特色

(1)它的业务逻辑定义没有采用目前的一些规范,而是采用了它自己定义的Jboss Jbpm Process
Definition Language(jpdl)。jpdl任务一个业务流程可以被看作是一个UML状态图。jpdl认为一个业务流程可以被看作是一个UML状态图。jpdl就是详细定义了这个状态图的每个部分,如起始、结束状态,以及状态之间的转换,通过图形化的流程定义,直观地描述业务流程。

(2)使用Hibernate来管理Jbpm的数据库。

三,通过实例介绍Jbpm重要的几张表

(1)Jbpm共18张表

(2)涉及到的一些基本流程无非是:

——部署流程定义、启动流程实例、获取个人(组)任务、高亮显示(查看流程进展图)、完成任务。。。。

(3)例:以请假流程为例:

qingjia.jpdl.xml:

<?xmlversion="1.0" encoding="UTF-8"?>

<processname="qingjia1" xmlns="http://jbpm.org/4.4/jpdl"key="qingjia1">
   <start g="246,28,7,3"name="start1">
      <transition g="-71,-17"name="to 申请请假" to="申请请假"/>
   </start>
   <end g="226,320,48,48"name="end1"/>
   <task assignee="张三" g="88,99,92,52" name="申请请假">
      <transition g="-138,5"name="to 部门经理审批" to="部门经理审批"/>
   </task>
   <task assignee="李四" g="233,156,92,52" name="部门经理审批">
      <transition g="3,-26"name="to 总经理审批" to="总经理审批"/>
   </task>
   <task assignee="王二麻子" g="380,226,92,52" name="总经理审批">
      <transition g="-47,-17"name="to end1" to="end1"/>
   </task>
</process>

qingjia.png:

(1)部署流程定义——从classpath加载jpdl.xml文件

public staticProcessEngine processEngine;
processEngine =Configuration.getProcessEngine();

public voidtestDeployFromClasspath(){
processEngine.getRepositoryService()
.createDeployment()
.addResourceFromClasspath("qingjia.jpdl.xml")
.addResourceFromClasspath("qingjia.png")
.deploy();
}

涉及到的表:


表名(英)


表名(中)                   


说明


字段                              


字段说明


Jbpm4_Deployment


部署表


描述一次部署


DBID_


主键、部署ID


State


状态 active


Jbpm4_Lob


仓库表


存放了流程定义文档(xml、png)


Deployment_


部署ID、外键


Name_


Xml或png的文件路径


Jbpm4_Deployprop


部署属性表


DBID_


主键


Objname_


流程定义名称


Key_


每部署一次,生成4行记录


Langid


语言版本 jpdl-4.4


Pdid


{pdkey-version}


Pdkey


流程定义名称

一般情况下,pdkey和objname_的值是一样的


Pdversion


版本号

如果pdkey没有发生改变,每部署一次,版本号加1;如果pdkey发生改变,则是一个全新的名称,所以版本号应该从1开始计算

(2)启动流程实例——根据Id启动

public voidtestStartPIByPDID(){
ProcessInstancepi = processEngine.getExecutionService()
.startProcessInstanceById("qingjia1-1");
System.out.println(pi.getId());
System.out.println(pi.getState());
}

表名(英)


表名(中)


说明


字段


字段说明


Jbpm4_Execution


流程实例表


表示当前正在执行的流程实例


DBID_


主键


ID_


流程实例ID


ActivityName_


当前流程实例活跃的节点


Procdefid_


流程定义ID


Jbpm4_Hist_Procinst


历时流程实例表


表示历史的流程实例,但是当前正在运行的流程实例也在这里


DBID_


主键


ID_


流程实例ID


Start_


整个流程实例的开始时间


End_


流程实例的结束时间,如果该流程实例为当前正在运行的流程,则该值为空


State


表示流程实例的状态,如果是正在运行为active,如果流程实例结束为ended


Jbpm4_task


任务表


表示当前正在执行的任务(任务是jbpm流程图的一个节点)


DBID_


主键、任务ID


临时表,当前任务完成后,数据被删除;

当启动流程实例的时候,会自动离开开始节点,流向下一个节点


Name_


任务名称


Assignee_


任务执行人


Jbpm4_Hist_Task


历史任务表


表示历史的任务,但是当前正在执行的任务也在这里


State_


如果一个任务被完成以后,值为completed


End_


任务结束时间


Jbpm4_Hist_Actinst


历时节点表


表示历史的节点


Type


节点类型

四,表结构总结:

共18张表。红色为常用表

(1)资源库与运行时表结构

1. JBPM4_DEPLOYMENT 流程定义表

2. JBPM4_DEPLOYPROP 流程定义属性表

3. JBPM4_EXECUTION  流程实例表

4. JBPM4_PROPERTY  流程引擎表

5. JBPM4_TASK 任务表

6. JBPM4_VARIABLE 上下文表

7. JBPM4_JOB  定时表

8. JBPM4_LOB 存储表

9. JBPM4_SWIMLANE泳道表

10. JBPM4_PARTICIPATION 参与者表

(2) 历史数据表

11. JBPM4_HIST_ACTINST 流程活动(节点)实例表

12. JBPM4_HIST_DETAIL  流程历史详细表

13. JBPM4_HIST_PROCINST 流程实例历史表

14. JBPM4_HIST_TASK  流程任务实例历史表

15. JBPM4_HIST_VAR 流程变量(上下文)历史表

(3)身份认证表结构

16. JBPM4_ID_GROUP 组表

17. JBPM4_ID_MEMBERSHIP 用户角色表

18. JBPM4_ID_USER  用户表

时间: 2024-11-12 00:58:16

JBPM表结构的相关文章

Jbpm表结构说明

JBPM_ACTION action记录表JBPM_DECISIONCONDITIONS 结果条件表JBPM_DELEGATION 委托表JBPM_EVENT 事件表 处理进入或者离开事件JBPM_EXCEPTIONHANDLER 异常处理表JBPM_ID_GROUP 用户组表JBPM_ID_MEMBERSHIP 用户成员表 表现用户和组之间的多对多关系JBPM_ID_PERMISSIONS 用户权限表JBPM_ID_USER 用户表JBPM_MODULEDEFINITION 模块定义表JBPM

jbpm的表结构以及六大服务

对于jbpm的开发,你应该具备的基本知识是对于表结构的理解,以及对于API的熟悉,下面我就带大家总结一下这两方面的知识: 一.jbpm表结构介绍  1.资源库和运行时表结构(10张表)     JBPM4_DEPLOYMENT,JBPM4_DEPLOYPROP,JBPM4_LOB 存储流程定义相关的部署信息 .     JBPM4_EXECUTION主要是存放JBPM4的执行信息,Execution机制代替了JBPM3的Token机制 .     JBPM4_TASK存放需要人来完成的Activ

JBPM4 常用表结构及其说明

本文从表结构.操作时表的变化以及jbpm4.4各个包的作用来介绍jbpm的. 第一部分:表结构说明 Jbpm4 共有18张表,如下,其中红色的表为经常使用的表 一:资源库与运行时表结构 1.  JBPM4_DEPLOYMENT 流程定义表 2.  JBPM4_DEPLOYPROP 流程定义属性表 3.  JBPM4_EXECUTION  流程实例表 4.  JBPM4_PROPERTY  流程引擎表 5.  JBPM4_TASK 任务表 6.  JBPM4_VARIABLE 上下文表 7.  J

关于类型擦除\union表结构不一致问题的分析

本文提到的类型擦除与java中的重载有关.我们先看一下重载的定义:重载是Java多态性的表现,是用统一的处理方式处理不同数据的机制.Java方法的重载,即方法具有相同的命名,但参数列表(类型或个数)不同. 以下是我写的两个方法,用于将用户列表或不同类型用户列表的List加入包含收件人.主题.邮件正文的一个数据结构中.如下: private void addEmailRecipients(FlowRunTime startFlowRunTime, List<String> userIds, Pr

工作流 jBMP4.4表结构

(一)资源库和运行时表结构       JBPM4_DEPLOYMENT,      JBPM4_DEPLOYPROP,      JBPM4_LOB 存储流程定义相关的部署信息       JBPM4_EXECUTION 主要是存放JBPM4的执行信息,Execution机制代替了JBPM3的Token机制       JBPM4_TASK 存放需要人来完成的Activities(活动),需要人来参与完成的Activity 被称为Task      JBPM4_PARTICIPATION 参与

sqlite3命令备忘录之查看表结构

Android内置了sqlite数据库,程序开发中经常使用到,已安装的程序,如何通过adb查看以创建的表结构呢? 在android下通过adb shell命令可以进入sqlite3的命令行client,见:在android命令行下使用sqlite3. 如果想列出该数据库中的所有表,可:.table 如果想查看这些表的结构:select * from sqlite_master where type="table"; 认情况下,不会出现红框中的表头,需要之前设置,命令为:.header

JFinal里得到表结构的方法总结

JFinal里得到表结构的方法总结: 1.得到已经配置的Model类的表结构.(推荐用法).如下,定义一个User的Model类,这样就可以得到Model类的表结构了.具体实现不明白,请高手指导. public void tableMappingTest(){  Table table = TableMapping.me().getTable(User.me.getClass());    renderText(table.getColumnTypeMap().toString());   }

PowerDesigner生成数据库表和逆向生成表结构(MySQL数据库)

一.Download Connector/ODBC下载ODBC驱动,地址:https://dev.mysql.com/downloads/connector/odbc/, 需要注意:PowerDesigner安装的多少位就下载多少位的,一般是32位,建议下载.msi文件直接安装. 二.安装完成后点击powerdesigner的Database--->Configure Connections...--->添加数据源配置,如下图: 三.PDM模型生成数据库sql文件,点击powerdesigne

【SQL 代码】SQL复制数据表及表结构

select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) select fld1, 5 from 源表名 以上两句都是将'源表'的数据插入到'目标表',但两句又有区别的: 第一句(select into from)要求目标表不存在,因为在插入时会自动创建. 第二句(insert into select from)要求目标表存在,由于目标表已经存在,所以我们除了插入源表的字段外,还可以插入常量,如例中的:5. 示例 目前有数据如下: 现在要将