`
java先生h
  • 浏览: 5293 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

jbpm4.4 18张表解析

    博客分类:
  • jbpm
阅读更多
一:资源库与运行时表结构
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 参与者表

二: 历史数据表
11.  JBPM4_HIST_ACTINST 流程活动(节点)实例表
12.  JBPM4_HIST_DETAIL  流程历史详细表
13.  JBPM4_HIST_PROCINST 流程实例历史表
14.  JBPM4_HIST_TASK  流程任务实例历史表
15.  JBPM4_HIST_VAR 流程变量(上下文)历史表


三:身份认证表结构
16.  JBPM4_ID_GROUP 组表
17.  JBPM4_ID_MEMBERSHIP 用户角色表
18.  JBPM4_ID_USER  用户表
这三张表很常见,基本的权限控制,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足

第二部分:表结构描述
1.  JBPM4_DEPLOYMENT 流程定义表
2.  JBPM4_DEPLOYPROP 流程定义属性表
3.  JBPM4_EXECUTION  流程实例表
主要是存放JBPM4的执行信息,Execution机制代替了JBPM3的Token机制。
4.  JBPM4_PROPERTY  流程引擎表

5.  JBPM4_TASK 任务表
存放需要人来完成的Activities,需要人来参与完成的Activity 被称为Task
6.  JBPM4_VARIABLE 上下文表 存的是进行时的临时变量
7.  JBPM4_JOB  定时表  存放的是Timer的定义
8. JBPM4_LOB  存储表
9.  JBPM4_SWIMLANE泳道表
Swim Lane是一种Runtime Process Role。通过Swim Lane,多个Task可以一次分配到同一Actor身上。
10.  JBPM4_PARTICIPATION 参与者表  
存放 Participation的信息,Participation的种类有Candidate、Client、Owner、 Replaced Assignee和Viewer。而具体的Participation既可以是单一用户,也可以是用户组。

二: 历史数据表
11.  JBPM4_HIST_ACTINST 流程活动(节点)实例表 存放Activity Instance的历史记录
12.  JBPM4_HIST_DETAIL  流程历史详细表    保存Variable的变更记录
13.  JBPM4_HIST_PROCINST 流程实例历史表 存放Process Instance的历史信息
14.  JBPM4_HIST_TASK  流程任务实例历史表 Task的历史信息。
15.  JBPM4_HIST_VAR 流程变量(上下文)历史表 保存历史的变量

第三部分:操作信息变化

注意:以下操作步骤向表中增加记录的顺序(经过测试)

发布一个流程deploy后
Ø jbpm4_deployment(流程定义):新增一条记录
Ø jbpm4_lob(存储表): 新增一条记录
Ø jbpm4_deployprop(流程定义属性表):新增四条记录

上传一个zip包(包含png和jpdl.xml)后
Ø JBPM4_DEPLOYMENT多一条记录
Ø JBPM4_DEPLOYPROP 多三条
Ø JBPM4_LOB多两条。


开始一个流程startProcessInstanceByKey后
Ø jbpm4_execution(流程实例表):新增一条记录
Ø jbpm4_hist_procinst(流程实例历史表):新增一条记录
Ø jbpm4_variable (上下表):新增一条记录
Ø jbpm4_task (任务表):新增一条记录
Ø jbpm4_hist_task(任务历史表):新增一条记录
Ø jbpm4_hist_actinst (活动节点实例表):新增一条记录



填写申请信息
Ø jbpm4_variable(上下表) : 新增N条记录,根据表单信息决定
Ø jbpm4_task (任务表):新增一条记录
Ø jbpm4_hist_task(任务历史表):新增一条记录
Ø jbpm4_hist_actinst (活动节点实例表):新增一条记录

审批申请信息
1.同意:
Ø jbpm4_hist_actinst (活动节点实例表):新增一条记录
2.驳回:
Ø jbpm4_task (任务表):新增一条记录
Ø jbpm4_hist_task(任务历史表):新增一条记录
Ø jbpm4_hist_actinst (活动节点实例表):新增一条记录
审批结束

Ø jbpm4_hist_actinst (活动节点实例表):新增一条记录

jbpm4.4最核心的包


1.antlr.jar

2.commons-collections.jar

3.commons-logging.jar

4.dom4j.jar

5.hibernate-core.jar

6.javassist.jar

7.jbpm.jar

8.jta.jar

9.mail.jar

10.slf4j-api.jar

11.slf4j-jdk14.jar

12.slf4j-log4j12.jar

配置文件

jbpm.execution.hbm.xml, jbpm.history.hbm.xml, jbpm.identity.hbm.xml, jbpm.repository.hbm.xml, jbpm.task.hbm.xml五个hibernate映射文件

jbpm.default.cfg.xml     ---->   流程引擎的默认配置文件

jbpm.identity.cfg.xml    ---->   身份验证配置文件

jbpm.jbossremote.cfg.xml ---->   远程调用jboss实现命令模式

jbpm.jobexecutor.cfg.xml ---->   任务执行器的配置

jbpm.task.lifecycle.xml  ---->   任务生命周期,包括启动,暂停,继续,完成,取消之类

jbpm.tx.hibernate.cfg.xml---->   默认的hibernate事务配置

jbpm.tx.jta.cfg.xml      ---->   jta的事务配置

jbpm.variable.types.xml  ---->   配置变量类型映射

jbpm.wire.bindings.xml   ---->   依赖绑定映射

jbpm4.4包作用

org.jbpm.pvm.internal.ant

提供使用ant发布流程,辅助启动jboss的任务。

org.jbpm.pvm.internal.builder

用来构造各种模型,包括活动,活动行为,事件,事件处理器,流程定义,变量,任务,等等。

org.jbpm.pvm.internal.cal

提供日历,包括日期,时间段,持续时间,节假日。

org.jbpm.pvm.internal.cfg

JbpmConfiguration和SpringConfiguration实现了org.jbpm.api.Configuration,用来从配置文件构造ProcessEngine

org.jbpm.pvm.internal.xml

主要用于解析xml的,主要解析jbpm.cfg.xml和流程定义文件

org.jbpm.pvm.internal.util

包含常用工具

org.jbpm.pvm.internal.wire

用来在ioc里进行依赖绑定。子包包含binding, descriptor, operation和xml,而且默认的绑定方式是使用field,而不是常见的setter绑定方式。

org.jbpm.pvm.internal.type

用来进行类型转换,主要是加载jbpm.cfg.xml对流程引擎进行初始化时,还有就是发布流程的时候进行类型转换。子包包括converter,matcher和variable,类型转换器,类型匹配器和变量。

org.jbpm.pvm.internal.tx

其中负责处理事务,JtaTransaction啦,SpringTransationInterceptor 啦,StandardTransaction啦,这些需要根据实际环境具体选择。jta的实现部分已经单独放到子包jta中了。希望spring中的事务也能这样处理就好了。

org.jbpm.pvm.internal.test

包下放了一个JobTestHelper,显然是可以帮助在测试环境下运行job的,。

org.jbpm.api.client

这部分包含ClientExecution, ClientProcessDefinition, ClientProcessInstance。ClientExecution继承了OpenExecution,声明了end(), signal(), suspend(), resume()之类的方法。ClientProcessDefintion继承了OpenProcessDefintion,其中的功能主要是 createProcessInstance和startProcessInstance。

org.jbpm.pvm.internal.cmd

包含Command和CommandService,这是命令设计模式的基础。其中放着所有的命令,所有的流程操作都可以在这里找到。

org.jbpm.pvm.internal.email

下面有两个子包impl和spi,只要注意spi下的AddressResolver, MailProducer和MailSession就可以实现自定义的实现了。

org.jbpm.pvm.internal.env

包含Context, Environment, EnvironmentFactory, Transaction, WireObject。其中Context, Environment和EnvironmentFactory组成了jBPM4里的IoC系统。Transaction定义了通用事务。 WireObject用来做依赖绑定。下面保存着环境有关的实现类。包括Authentication权限认证,Environment与context 相关的各个类。

org.jbpm.pvm.internal.hibernate

下面的类是专门与hibernate进行交互的类,包含类型转换,命名策略和最主要的DbSessionImpl,所有与数据库的操作都来源于此。

org.jbpm.pvm.internal.history

下面是历史操作所需要的部分,其下还包含events和model包。

org.jbpm.pvm.internal.identity

包主要负责身份认证的操作。包含三个子包cmd, impl和spi,cmd下定义所用到的命令,impl下是实现类,spi下放着IdentitySession。

org.jbpm.pvm.internal.jms

包括JmsMessageSession和JmsMessageUtil,应该是用来处理jms的,JmsMessageSession与 org.jbpm.api.job.Message相关联。说明job下的Message是依靠jms发送异步消息的。

org.jbpm.pvm.internal.job

提供了对job, message和timer的实现

org.jbpm.pvm.internal.jobexecutor

提供了任务执行器,包括JobExecutorServlet和对应的线程池,以及一系列的命令和处理器。无论是job, message或是timer,最终都会被这里执行。

org.jbpm.pvm.internal.lob

主要用来处理流程发布时的文件内容,需要把jpdl.xml文件和图片,甚至是以后可能把class文件都以附件形式保存到数据库中,以备后用

org.jbpm.pvm.internal.model

这个模型包中包含了很多很多类,包括Activity, CompositeElement, Condition, ObservableElement, OpenProcessDefinitionTransition。简单分类一下。最底层的是ObservableElement,它是可以被事件监听的元素,并且可以继承,CompositeElement继承了 ObservableElement,它里面可以装填多个活动。再加上Event中定义了多个事件,这些就构成了最基本的事件模型。Activity和 ActivityCoordinates分别定义了活动类和活动位置。以这些为基础,OpenProcessDefinition继承了 ProcessDefinition和CompositeElement。最终,我们还有一个Condition类,它只有一个evaluate方法,接受OpenExecution作为参数返回boolean值,Condition和Activity组合成了Transition,这个转移包含了起点,终点,以及条件判断。最庞大的模型部分,活动,转移,流程定义,流程实例的实现类都放在这里。在它的op子包中包含的是流程进行中的各项操作。

org.jbpm.pvm.internal.query

History, Job, ProcessDefintion, ProcessInstance这四个query类的实现,还提供了一个Page类,但是其中只有firstResult和maxResults,所以没啥大用

org.jbpm.pvm.internal.repository

负责的是流程的发布,主要有Deployment和Repository对应的service, session和cache,这里使用的缓存,所以每次使用流程定义的时候可以利用缓存提高效率。

org.jbpm.pvm.internal.script

包含对脚本的支持,默认支持了JuelScriptEngine。

org.jbpm.pvm.internal.session

支持各种会话,DbSession, MessageSession, RepositorySession和TimerSession。

org.jbpm.pvm.internal.spring

只有一个CommandTransactionCallback用来实现从spring中获得事务,并用其执行jbpm中定义的各种命令

org.jbpm.pvm.internal.stream

用于从各种途径读取资源,无论是jbpm配置文件和流程资源都要通过这些来转换成流的形式,以供给jbpm处理。

org.jbpm.pvm.internal.svc

其中svc或许是service的缩写。这个包中除了包括org.jbpm.api包下定义的所有service接口的实现,还包括commandService的实现和认证拦截器。

org.jbpm.pvm.internal.task

代表了所有与任务,任务参与者相关的信息,包括Assignable, AssignmentHandler, OpenTask, Participation, Swimlane, Task, TaskDefinition。简单划分后,主要有任务,任务定义任务处理。剩下的都是与任务分配有关了。TaskDefinition从字面上来看是指任务定义,里边只有一个getName()。Task中保存了任务相关的一些内容,OpenTask主要用来处理历史事件。参与者部分基本分成三个部分,以Assignable和AssignmentHandler组成的自定义分配部分,Participation参与者和swimlane泳道。暂时没有发现三者之间与任务的联系
分享到:
评论

相关推荐

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    3. **流程执行**:jBPM4.4提供了一个流程引擎,用于解析流程定义并执行流程实例。引擎支持流程的启动、挂起、恢复、终止等操作,并能处理并发和分支逻辑。 4. **任务管理**:jBPM中的任务服务允许用户交互地处理...

    jbpm4.4下载地址

    在深入探讨jBPM 4.4的相关知识点之前,我们首先需要理解jBPM是什么以及它在企业级应用中的重要性。jBPM是“Java Business Process Model”的缩写,是一个开源的工作流引擎,用于执行业务流程管理(BPM)。它提供了...

    jBPM4.4开发指南

    - jBPM4.4 共有 18 张表,这些表用于存储流程定义、实例状态等数据。 **3. jBPM4.4环境准备** - **所需环境**:jBPM 需要 JDK (Java Development Kit) 5 或更高版本;Apache Ant 1.7.0 或更高版本。 - **下载资源*...

    jbpm4.4文档+学习资料

    本文将深入解析jbpm4.4的相关知识点,帮助那些寻找优质学习资源的朋友更好地理解和应用这一技术。 一、jbpm概述 jbpm是一个开源的BPM(Business Process Management)框架,它允许开发者设计、执行、监控和优化业务...

    jBPM4.4开发实例

    **jBPM4.4开发实例** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。jBPM4.4是该框架的一个版本,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务...

    jbpm4.4中文开发指南

    **jbpm4.4中文开发指南** JBPM(Java Business Process Management)是一个开源的工作流管理系统,专注于业务流程的建模、执行和管理。jbpm4.4是该系统的某一版本,它提供了丰富的功能,包括流程定义、流程实例的...

    jBPM 4.4用户手册 中文PDF

    jBPM 4.4 包含一个强大的工作流引擎,负责解析和执行流程实例。这个引擎是事务安全的,确保在出现异常时能够正确回滚。它还提供了灵活的事务配置,以适应不同的业务场景。 **五、持久化与数据管理** jBPM 4.4 使用...

    JBPM4.4资料的其他补充

    JBPM4.4是JBPM的其中一个稳定版本,发布于2009年,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务管理和监控等功能。在JBPM4.4版本中,开发者可以利用其提供的API和工具来设计、部署和执行复杂的业务...

    jbpm4.4 schema.xsd

    jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd

    JBPM4.4流程管理Demo(附学习资料)

    - 项目启动前运行SQL文件,用于在数据库中创建18张表,这些表是JBPM4.4引擎运行所必需的,包括流程实例表、任务表、变量表等,它们记录了流程执行过程中的各种状态和数据。 6. **学习资料** - 随附的学习资料可能...

    jBPM4.4 详解 API 中文

    ### jBPM4.4 API 详解:工作流自动化的核心技术 ...以上步骤不仅为jBPM4.4的开发环境搭建提供了详实的指南,同时也深入解析了工作流自动化的基本原理与jBPM4.4的工作机制,为IT从业者及开发者提供了宝贵的参考资料。

    JBPM4.4与SSH2之整合(附可运行源码和jar包列表)(my_jbpm4.4_ssh2.rar)

    JBPM4.4与SSH2之整合(附完整源码) 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了...

    jbpm4.4 shh2 项目示例

    jbpm4.4 shh2 项目示例是基于jbpm4.4版本与SSH2(Struts2、Spring和Hibernate)集成的一个实战项目。jbPM(Business Process Management)是一款开源的工作流管理系统,用于实现业务流程自动化。SSH2是Java开发中的...

    jBPM4.4.rar_jbpm4_jbpm4.4

    **jbPM 4.4 知识点详解** jbPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案来管理和执行业务流程。jbPM 4.4 版本是该系统的一个重要里程碑,包含了丰富的特性和...

    jbpm4.4spring.rar_jbpm4_jbpm4.4

    【标题】"jbpm4.4spring.rar_jbpm4_jbpm4.4" 提供的是一个关于JBPM4.4与Spring框架整合的实际应用案例。JBPM(Java Business Process Management)是一款开源的工作流管理系统,它允许开发者设计、执行、管理和监控...

    jbpm4.4 流程运转+驳回+分配组任务+ssh2

    jbpm4.4是JBoss Business Process Management Suite的第4.4版本,它是一个开源的工作流和业务流程管理系统,用于构建、部署和管理业务流程。本教程将深入探讨jbpm4.4中的核心功能,包括流程运转、驳回、分配组任务...

    jbpm4.4开发用户指南

    jBPM 4.4是Java Business Process Management(业务流程管理)的一个版本,它是一个开源的工作流管理系统,用于实现业务流程自动化。这个压缩包包含了两个关键文档:《jBPM 4.4 开发指南》和《jBPM 4.4 用户指南》,...

    jbpm4.4+tomcat6+eclipse jee

    【jbpm4.4+Tomcat6+Eclipse JEE】是一个经典的组合,用于构建基于流程管理的Java企业级应用。JBPM(Business Process Management)是一个开源的工作流管理系统,它允许开发者设计、部署和执行业务流程。Tomcat6则是...

    jbpm4.4表字段说明

    JBPM4.4是JBoss Business Process Management (BPM)平台的一个特定版本,它提供了用于设计、执行和管理业务流程的工具和框架。在JBPM4.4中,数据库是存储流程实例、流程定义以及相关元数据的关键部分。以下是关于...

Global site tag (gtag.js) - Google Analytics