JBPM表结构

标签: jbpm 结构 | 发表时间:2014-11-27 19:16 | 作者:hanxuemin12345
出处:http://blog.csdn.net

一,概述

      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  用户表

作者:hanxuemin12345 发表于2014-11-27 19:16:28 原文链接
阅读:129 评论:0 查看评论

相关 [jbpm 结构] 推荐:

JBPM表结构

- - CSDN博客综合推荐文章
      JBPM全称——Java  Business PrcessManagerment(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开放的、灵活的、易扩展的可执行流程语言框架.        (1)它的业务逻辑定义没有采用目前的一些规范,而是采用了它自己定义的Jboss Jbpm Process Definition Language(jpdl).

jbpm环境搭建

- - 编程语言 - ITeye博客
   使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现.    工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递.   jbpm 即java Business Process Management,是基于java的业务流程管理系统引擎底层基于Active Diagram模型.

JBPM之安装配置

- - Java - 编程语言 - ITeye博客
jbpm-4.X.zip) 下载下来,然后解压到你的硬盘上的什么地方. doc: 用户手册,javadoc和开发指南. examples: 用户手册中用到的示例流程. install: 用于不同环境的安装脚本. lib: 第三方库和一些特定的jBPM依赖库. jbpm.jar: jBPM主库归档. migration: 参考开发指南.

JBPM的表相关操作

- - 开源软件 - ITeye博客
--通过流程的编码获取该对应的流程定义. --通过单据号和ID获取任务实例(ID). --通过上条SQL的ID获取该实例下的所有任务. --通过上条SQL的ID获取该实例下的所有变量. --通过jbpm_processinstance 的 PROCESSDEFINITION_ 获取所有的节点. --通过jbpm_processinstance 的 PROCESSDEFINITION_ 获取所有的转向.

Jbpm工作流引擎学习日志

- - 行业应用 - ITeye博客
     jBPM是JBOSS下的一个开源java工作流项目,该项目提供eclipse插件,基于Hibernate实现数据持久化存储. 下载地址:http://pan.baidu.com/s/1ntr8t6L.     安装gpd、配置runtime环境、导入jbpm所需的jar包、创建配置文件jbpm.cfg.xml和jbpm.hibernate.cfg.xml.

JBPM具体应用之task节点的使用

- - CSDN博客综合推荐文章
task节点是最常用的节点之一,也因为执行任务的情况有很多种,所以他的用法也是多种多样的,本文主要讲解task的三种用法分别如下:. 1.candidate属性. 该熟属性在于task节点中,他的作用类似于组内工作分配,假如一个组内有两个人a1和a2,将该属性所在任务分配给两人中的一个后,则只有该任务被分配人才能看到任务,其他人都看不到.

JBPM学习(一):实现一个简单的工作流例子全过程

- - CSDN博客综合推荐文章
<transition g="-69,-22" name="to 员工提交申请" to="员工提交申请"/>. <task assignee="员工" g="223,84,92,52" name="员工提交申请">.

Linux 文件结构

- Lamo - LinuxTOY
想了解 Linux 文件系统树形结构,却又不愿翻阅 FHS 的朋友,可以参考 skill2die4 制作的这张简图. 此图算是 FHS 的图形化版本,简要的说明了 Linux 系统中各个目录的用途及层级关系,适合初学者使用参考. 不过其中较新的如 /run 目录并未在其中出现. 分类: Screenshots, Tips |.

TCP报文结构

- - 互联网 - ITeye博客
一、TCP报文结构如下:.  固定首部长度为20字节,可变部分0~40字节,各字段解释:. source port number:源端口,16bits,范围0~65525. target port number:目的端口,16bits,范围同上. sequence number:数据序号,32bits,TCP 连接中传送的数据流中的每一个字节都编上一个序号.