第一部分:表结构说明
Jbpm4 共有18张表,如下,其中红色的表为经常使用的表
一:资源库与运行时表结构
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 常用表结构及其说明 JBPM4是JBPM(Java Business Process Model)的一个版本,主要用于提供业务流程管理的功能。它通过一组数据库表来支持工作流的执行与跟踪。本文将详细介绍JBPM4中的常用表结构及其...
该资料集合了API文档、安装配置指南、常见操作步骤、数据库表结构解析以及流程分支与合并等核心知识点,旨在帮助学习者深入理解和掌握JBPM4的使用。 1. **JBoss BPM系统介绍**:JBPM4是JBoss组织推出的一款开源BPM...
这些脚本主要用于创建和配置jbpm所需的数据库表结构和初始化数据,确保jbpm能够在一个特定的数据库环境中正常运行。 1. **MySQL脚本(jbpm.jpdl.mysql.sql)**:MySQL是一种广泛使用的开源关系型数据库管理系统。jbpm...
"Jbpm4.4 整合Spring Hibernate4" 指的是一个集成项目,其中JBPM(Job Business Process Management)版本4.4被整合到Spring框架和Hibernate ORM工具的环境中。JBPM是一个开源的工作流管理系统,用于处理业务流程的...
【jbpm-sql脚本】是一组专门为jbpm(Java Business Process Management)系统设计的数据库脚本,这些脚本主要用于初始化和管理jbpm在不同数据库环境下的数据结构。jbpm是一个开源的工作流管理系统,它提供了业务流程...
SSH(Spring、Struts2和Hibernate)是Java Web开发中常用的三大框架,它们分别负责不同的职责。Spring作为全能型框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能,使得代码更加模块化和松耦合。Struts2...
通过Hibernate,我们可以定义jbpm实体类,并配置Hibernate映射文件,以便将jbpm的数据模型与MySQL的表结构对应起来,实现数据的持久化。 4. **Tomcat部署**:Tomcat是一个轻量级的Java应用服务器,适合运行SSH+jbpm...
资料中还包括了一些关于JBPM开发的资源,如"JBPM表.txt"可能包含了JBPM常用的数据表结构,这对于理解JBPM如何存储和管理流程实例、任务和变量等信息很有帮助。其他HTML文件可能是关于工作流引擎的市场分析、技术比较...
- **创建表**: 指导如何创建或删除数据库表结构。 - **更新**: 说明如何更新现有数据库以适应新版本的需求。 **2.11 流程设计器(GPD)** - **Eclipse**: 推荐使用Eclipse作为开发环境。 - **安装**: 详细步骤说明...
jbpm的工作流实例可以在多个服务之间传递,同时支持并行和串行执行,以及复杂的条件和分支结构。 2. **SSH框架整合** Struts作为MVC框架,主要负责视图层和控制器层,通过Action类处理用户请求,并将结果返回到...
4. **Hibernate映射文件**:定义流程实体与数据库表的对应关系。 5. **业务服务类**:通过Spring注入JBPM的相关服务,实现流程的启动、查询和控制。 6. **前端页面**:通常由JSP或HTML组成,展示流程信息,提供任务...
Struts、Hibernate、Spring、JPA、Lucene、JBPM和Compass是Java开发中常用的一系列技术,它们各自在不同的领域发挥着重要作用。这里我们将深入探讨这些技术以及如何将它们整合在一起进行配置。 1. **Struts**:...
jbPM会自动创建相应的表结构,用于保存流程执行中的状态信息。例如,每个借款申请会对应一个流程实例,审批过程中产生的任务实例记录了当前处理人和状态,变量存储了与流程相关的数据,如借款金额、申请人信息等。 ...
- **Hibernate查询配置文件**:定义了常用的查询语句。 - **节点类型配置文件**:描述了流程图中各个节点的行为。 - **动作类型配置文件**:定义了可用的动作类型。 - **业务日历配置文件**:指定流程中的时间规则。...
项目的结构中,jbpm相关的配置、流程定义、服务接口等会与SSH框架的配置文件、实体类、DAO和Service层代码一起组织,形成一个完整的业务流程管理系统。 总的来说,"jbpm leave ssh"是一个使用jbpm实现的请假流程...
- 熟练掌握 JBPM 工作流技术,包括 JBPM 表结构和流程实例、任务、流程变量等概念及为任务执行人赋值、事件等技术。 10. 大数据处理技能: - 熟悉大数据处理等方面的知识,包括 - 熟悉 Hadoop 体系架构,能熟练...
11. **JBPM工作流**:熟悉JBPM,包括表结构、流程实例、任务和流程变量,以及任务分配和事件处理。 12. **全文搜索引擎**:了解Lucene和Compass,它们是用于实现高效全文搜索的工具。 13. **Web Service**:具备...
本课程从Activiti的基础架构、表结构、基础API开始介绍,逐渐讲解到Activiti的高级功能如:流程变量、网关,再到最后使用Activiti和Spring框架、SpringBoot整合,实现一个应用DEMO。 课程内容 章节一:Activiti...
- 熟练使用JBPM工作流技术,了解其表结构、流程实例、任务和流程变量等概念,以及任务分配和事件处理。 - 熟悉Lucene和Compass全文搜索引擎工具包,显示在搜索功能开发上的技能。 - 对Web Service技术的掌握,...
从源码结构来看,我们可以推断系统遵循了模块化和分层设计的原则,可能包括用户界面层、业务逻辑层和数据访问层等关键部分。用户界面层负责与用户交互,展示信息并收集用户输入;业务逻辑层处理业务规则和计算,是...