zoukankan      html  css  js  c++  java
  • JBPM4 常用表结构

    JBPM4 常用表结构
    第一部分:表结构说明
    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泳道。暂时没有 发现三者之间与任务的联系

  • 相关阅读:
    LeetCode Count of Range Sum
    LeetCode 158. Read N Characters Given Read4 II
    LeetCode 157. Read N Characters Given Read4
    LeetCode 317. Shortest Distance from All Buildings
    LeetCode Smallest Rectangle Enclosing Black Pixels
    LeetCode 315. Count of Smaller Numbers After Self
    LeetCode 332. Reconstruct Itinerary
    LeetCode 310. Minimum Height Trees
    LeetCode 163. Missing Ranges
    LeetCode Verify Preorder Serialization of a Binary Tree
  • 原文地址:https://www.cnblogs.com/peter-peng/p/3618780.html
Copyright © 2011-2022 走看看