JBPM数据库表说明

合集下载

jbpm详细教程

jbpm详细教程

JBPM开发指南BSTEK2007年7月目录一、概述 (4)二、第一个流程 (5)2.1、开始前的准备 (5)2.2 、Hello World 例子 (6)三、学习JPDL (11)3.1 、简介 (11)3.2 、流程版本(Version) (11)3.3 、流程定义 (12)3.3.1 process-definition(流程定义) (12)3.3.2 node(自动节点) (13)3.3.3 start-state(开始状态) (13)3.3.4 end-state(结束节点) (14)3.3.5 state(状态) (14)3.3.6 task-node (任务节点) (15)3.3.7 fork(分支) (16)3.3.8 join(联合) (17)3.3.9 decision(决策) (18)3.3.10 transition(转换) (19)3.3.11 event(事件) (20)3.3.12 action(动作) (20)3.3.13 script(脚本) (22)3.3.14 expression(表达式) (23)3.3.15 variable(变量) (23)3.3.16 handler(句柄) (23)3.3.17 timer(定时器) (24)3.3.18 create-timer(创建定时器) (25)3.3.19 cancel-timer(取消定时器) (26)3.3.20 task(任务) (26)3.3.21 swimlane(泳道) (27)3.3.22 assignment(委派) (28)3.3.23 controller(控制器) (29)3.3.24 process-state 子流程 (29)3.3.25 sub-process 子流程 (30)3.3.26 condition 条件 (30)3.3.27 exception-handler 异常处理 (31)小结 (33)四、流程中任务的分配 (37)4.1 assignment-handler方式的任务分配 (38)4.2 swimlane方式的任务分配 (39)五、JBPM持久化 (42)5.1 特殊数据库支持 (42)5.2 JBPM数据库的安装 (42)5.2 JBPM流程发布 (45)5.2.1 搭建JBPM的WEB应用 (46)5.2.2 发布第一个流程 (48)六、日历(Scheduler) (54)6.1 Scheduler在C/S程序上的应用 (54)6.2 Scheduler 在Web上的应用 (57)6.3 Scheduler时间的分类 (60)七、异步执行 (63)八、JBPM流程建模与应用 (64)8.1 JBPM的建模工具 (64)8.1.1 建模工具的安装 (64)8.2 公司报销流程示例 (67)8.2.1 流程建模 (67)8.2.2 流程数据库搭建 (76)8.2.3 构建业务表 (79)8.2.4 搭建工程 (82)8.2.5 报销流程的发布 (83)8.2.6 应用程序搭建 (84)九、写在最后 ........................................................................................ 错误!未定义书签。

jbpm44用户手册

jbpm44用户手册

第 1 章导言上一页下一页第 1 章导言最好使用firefox浏览这份教程。

在使用internet explorer的时候会有一些问题。

1.1. 许可证与最终用户许可协议jBPM是依据GNU Lesser General Public License(LGPL)和JBoss End User License Agreement(EULA)中的协议发布的,请参考完整的LGPL协议和完整的最终用户协议。

1.2. 下载可以从sourceforge上下载发布包。

/projects/jbpm/files/1.3. 源码可以从jBPM的SVN仓库里下载源代码。

https:///repos/jbpm/jbpm4/1.4. 什么是jBPMjBPM是一个可扩展、灵活的流程引擎,它可以运行在独立的服务器上或者嵌入任何Java应用中。

1.5. 文档内容在这个用户指南里,我们将介绍在持久执行模式下的jPDL流程语言。

持久执行模式是指流程定义、流程执行以及流程历史都保存在关系数据库中,这是jBPM实际通常使用的方式。

这个用户指南介绍了jBPM中支持的使用方式。

开发指南介绍了更多的、高级的、定制的、没有被支持的选项。

1.6. 从jBPM 3升级到jBPM 4没办法实现从jBPM 3到jBPM 4的升级。

可以参考开发指南来获得更多迁移的信息。

1.7. 报告问题在用户论坛或者我们的支持门户报告问题的时候,请遵循如下模板:聪明的读者可能已经注意到这些问题已经指向了可能导致问题的几点原因:)特别是对依赖库和配置的调整都很容易导致问题。

这就是为什么我们在包括安装和使用导入实现建议配置机制时花费了大量的精力。

所以,在你开始在用户手册覆盖的知识范围之外修改配置之前,一定要三思而行。

同时在使用其他版本的依赖库替换默认的依赖库之前,也一定要三思而行。

第 2 章安装配置2.1. 发布只需要把jBPM (jbpm-4.X.zip) 下载下来,然后解压到你的硬盘上的什么地方。

jbpm4表结构

jbpm4表结构

JBPM4_EXECUTION-->org.jbpm.pvm.internal.model.ExecutionImpl 流程实例表Execution状态active-root表示流程主干正在运行。

active-concurrent说明这是一个fork出来的分支。

inactive-concurrent-root说明主干正在等待分支结束。

inactive-scope说明主干正在等待timer结束。

inactive-join说明分支已经进入join,等待其他分支到达join后一起继续执行ExecutionImpl parent = executionImpl.getParent();ExecutionImpl processInstance = executionImpl.getProcessInstance(); ExecutionImpl superProcessExecution = executionImpl.getSuperProcessExecution(); ExecutionImpl subProcessInstance = executionImpl.getSubProcessInstance();Map<String, Object> variables = executionImpl.getVariables();Object variable = executionImpl.getSystemVariable(key);Collection<ExecutionImpl> executions = executionImpl.getExecutions(); SwimlaneImpl swimlane = executionImpl.getSwimlane(swimlaneName);JBPM4_VARIABLE-->org.jbpm.pvm.internal.type.Variable 临时变量表DBID_ :主键,手动指定主键 dbidCLASS_ :类型,Variable类型,DBVERSION_ :版本 dbversionKEY_ :变量KEY key,如executor1、idkey、decisionKey1 CONVERTER_ :转换器 converter,HIST_ : isHistoryEnabledEXECUTION_ :活动实例 executionTASK_ :对应的任务 taskLOB_DATE_VALUE_ 当值为date类型时存值DOUBLE_VALUE_CLASSNAME_LONG_VALUE_STRING_VALUE_TEXT_VALUE_EXESYS_< subclass name="org.jbpm.pvm.internal.type.variable.DateVariable"extends="org.jbpm.pvm.internal.type.Variable" discriminator-value="date"><property name="date" column="DATE_VALUE_" type="timestamp" />< /subclass>JBPM4_LOB-->org.jbpm.pvm.internal.lob.LobDBID_ :主键,手动指定主键 dbidDBVERSION_ :版本 dbversionBLOB_VALUE_ :流程定义文件内容 blobDEPLOYMENT_ :流程模版标识IDJBPM4_HIST_PROCINST-->org.jbpm.pvm.internal.history.model.HistoryProcessInstanc eImpl 历史流程实例表DBID_ :主键,手动指定主键 dbidDBVERSION_ :版本 dbversionID_ :流程实例ID processInstanceIdPROCDEFID_ :流程定义ID PROCDEFID_KEY_ : keySTART_ :开始时间 startTimeEND_ :结束时间 endTimeDURATION_ :停留时间 durationSTATE_ :流程实例状态(活动,完成) stateENDACTIVITY_ :是否完成 endActivityNameNEXTIDX_ : nextDetailIndexSet<HistoryVariableImpl> HistoryVariables = hisPI.getHistoryVariables();historyActivityInstances 级联操作details 级联操作JBPM4_HIST_ACTINST-->org.jbpm.pvm.internal.history.model.HistoryActivityInstanceIm pl 历史流程活动实例表DBID_ :主键,手动指定主键 dbidCLASS_ :类型,ExecutionImpl类型,无字段对应,指明HistoryActivityInstanceImpl类型(act、excl)DBVERSION_ :步骤版本 dbversionTYPE_ :活动实例类型 typeEXECUTION_ : executionIdACTIVITY_NAME_ :活动实例名称 activityNameSTART_ :开始时间 startTimeEND_ :结束时间 endTimeDURATION_ :停留时间 durationTRANSITION_ :连接线 transitionNameNEXTIDX_ : nextDetailIndexHPROCI_ :历史流程实例HTASK_ :历史任务 historyTaskJBPM4_HIST_TASK-->org.jbpm.pvm.internal.history.model.HistoryTaskImplDBID_ :主键,手动指定主键 dbidDBVERSION_ :步骤版本 dbversionEXECUTION_ : executionIdOUTCOME_ : outcomeACTIVITY_NAME_ :活动实例名称 activityNamePRIORITY_ : priorityASSIGNEE_ : assigneeSTATE_ : stateCREATE_ : createTimeEND_ :结束时间 endTimeDURATION_ :任务节点停留时间 durationNEXTIDX_ : nextDetailIndexJBPM4_HIST_VAR-->org.jbpm.pvm.internal.history.model.HistoryVariableImplDBID_ :主键,手动指定主键 dbidDBVERSION_ :步骤版本 dbversionPROCINSTID_ :流程实例ID processInstanceIdEXECUTION_ : executionIdVARNAME_ : variableNameVALUE_ : valueHPROCI_ : historyProcessInstanceHTASK_ : historyTaskJBPM4_HIST_DETAIL-->org.jbpm.pvm.internal.history.model.HistoryDetailImplDBID_ :主键,手动指定主键 dbidCLASS_ :类型,HistoryDetailImpl类型, comment、instance-migration、priority-update、assignment、duedate-update、variable-updateDBVERSION_ :步骤版本 dbversionUSERID_ : userIdTIME_ : timeHPROCI_ : historyProcessInstanceHPROCIIDX_ : historyProcessInstanceIndexHACTI_ : historyActivityInstanceHACTIIDX_ : historyActivityInstanceIndexHTASK_ : historyTaskHTASKIDX_ : historyTaskIndexHVAR_ : historyVariableHVARIDX_ : historyVariableIndex。

JBPM_API文档

JBPM_API文档

JBPM API文档整理:王龙于2011-9-1TaskInstance(任务实例)Cancel():结束当前任务实例,如果任务实例对应的任务节点只有一个任务实例,则结束这个任务实例会触发位于该节点的Token向下流转;Cancel(String transitionName):结束任务实例,并且流程按指定Transition流转到下一节点;end():end(String transitionName):与cancel一样,如果任务实例对应的任务节点只有一个任务实例,则结束这个任务实例会触发位于该节点的Token向下流转;setActorId(String actorId):为当前任务实例分配一个任务参与者,这样新的任务参与者的任务池中就会多一个任务实例,而原参与者就失去这个任务实例;setPooledActors(String[] actorIds):为当前任务实例分配一批参与者,这些参与者都可以看见这个任务实例,这个任务实例的原有参与者就失去了这个任务实例;start():开始一个任务实例;JbpmConfiguraionPublic static JbpmConfiguraion getInstance():静态方法返回一个JbpmConfiguraion对象;Public JbpmContext createJbpmContext():创建一个新的JbpmContext对象;Public JbpmContext getCurrentJbpmContext():从当前局部变量(ThreadLocal)中获取一个JbpmContext对象;CreateSchema():创建Jbpm数据库表;DropSchema():删除JBPM数据表;Public JobExecutor getJobExecutor():得到系统中的任务调度服务对象Public void startJobExecutor():开始系统中的任务调度服务;JbpmContextdeployProcessDefinition(ProcessDefinition processDefinition):定的流程模板对象发布到数据库中;public Connection getConnection():返回一个JDBC Connection对象;public TaskInstance get/loadTaskInstance(long taskInstanceId):根据任务实例的ID得到对应的任务实例对象;public ProcessionInstance newProcessInstance(String processDefinitionName):根据流程名称创建一个流程实例public Session getSession():返回一个Hibernate Session对象;public ProcessInstance loadProcessInstance(processInstanceId):根据流程实例ID得到一个流程实例对象;public List getTaskList(“stringname”):根据任务参与者的ID得到该参与者任务的任务实例列表;ProcessDefinitionpublic ProcessInstance createProcessInstance():创建一个新的流程实例;public ProcessInstance createProcessInstance(java.util.Map variables):创建一个新的流程实例,同时将给出的Map里的值作为新的流程实例的流程变量插入到流程上下文中;public static ProcessDefinition parseXmlInputStream(java.io.InputStream inputStream):静态方法,通过给出的流程定义的XML文件,生成一个流程模板对象;public static ProcessDefinition parseXmlResource(ng.String xmlResource):将指定位置的xml文件解析成一个流程模板对象;public static ProcessDefinition parseXmlString(ng.String xml):将给出的流程定义的字符串内容解析成一个流程模板对象;ProcessInstancepublic ContextInstance getContextInstance():得到当前流程实例的流程上下文对象;public ProcessDefinition getProcessDefinition():得到当前流程实例对应的流程模板对象;public Token getRootToken():得到当前流程的根令牌;public void signal():对该流程实例对应的Token发出向下流转的信号;public void signal(String transitionName):对流程实例的Token发出沿着指定名称的Transition 向下流转的信号public void suspend():暂停该流程。

jbpm数据库

jbpm数据库

Jbpm数据库流程定义和流程执行都会持久化到数据库中,所以我们需要在数据库中创建所需的数据库表.共有18张表,分五个部分。

流程部署名称详情JBPM4_DEPLOYMENT流程定义表流程定义的部署记录。

发布一次流程后会添加一条记录,流程的具体属性存放在JBPM4_DEPLOYPROP中JBPM4_DEPLOYPROP流程定义属性表已部署的流程定义的具体属性。

发布一次流程后会添加多条记录,一条jbpm4_deployment记录需要对应4条jbpm4_deployprop记录,他们的key字段分别为langid(标识解析流程定义使用的jpdl的版本),pdid(流程定义的id),pdkey(流程的key,标识同一类流程),pdversion(流程的版本)JBPM4_LOB 存储表流程定义的相关资源。

部署一个流程时,此表中会添加多条记录,分别对应JPDL_XML ,图片, 用户代码JAVA 类等,它们以二进制的格式统一存储在此表中。

发布demo流程之后jbpm4_deployment新增一条记录jbpm4_deployprop新增三条记录jbpm4_LOB新增两条记录用户认证表JBPM实现的用户库比较简单,可以实现并扩展其相关接口,并进行认证库独立。

名称详情JBPM4_ID_GROUP组表用户组相关信息JBPM4_ID_MEMBERSHIP用户角色表用户组和用户的关系表JBPM4_ID_USER 用户表用户相关信息表流程实例运行相关表名称详情JBPM4_EXECUTION流程实例表记录流程实例运行必须的信息。

JBPM4_TASK任务表流程实例的任务信息。

存放需要人来完成的Activities,需要人来参与完成的Activity被称为Task。

JBPM4_PARTICIPATION 参与者表流程实例的任务参与人信息。

而具体的Participation既可以是单一用户,也可以是用户组JBPM4_V ARIABLE 上下文表传给流程实例的变量的相关信息。

数据库表描述-概述说明以及解释

数据库表描述-概述说明以及解释

数据库表描述-概述说明以及解释1.引言1.1 概述在数据库管理系统中,表是一种结构化的数据存储单元,它由行和列组成,用于存储具有相似特性的数据。

数据库表描述着整个数据库的结构和关系,是数据存储和管理的基本单位之一。

通过对数据库表的描述,我们可以清晰地了解数据的组织结构,实现数据的高效存储和管理。

在本文中,我们将介绍数据库表的定义、作用以及相关的设计原则,以帮助读者深入了解数据库表的重要性和设计要点。

通过本文的学习,读者将能够更好地理解和应用数据库表,提高数据库系统的性能和可维护性。

1.2文章结构文章结构部分主要包括本文的组织结构和内容安排。

在本文中,我们将分为引言、正文和结论三个部分来介绍数据库表的描述。

在引言部分,我们会概述本文的主题,介绍数据库表描述的重要性和背景,以及本文的目的和结构。

在正文部分,我们将详细讨论数据库表的定义、作用、组成要素和设计原则,从而帮助读者深入了解数据库表的概念和特点。

在结论部分,我们会总结数据库表描述的重要性,强调数据库表设计的关键因素,并对数据库表描述的未来发展进行展望。

通过全面地介绍数据库表的描述和设计原则,我们希望读者可以更好地理解和应用数据库表,提高数据管理和存储的效率和质量。

1.3 目的在数据库系统中,数据库表描述是非常重要的。

它可以帮助开发人员更好地了解数据库表的结构和功能,帮助维护人员更好地管理和维护数据库表,帮助用户更好地理解数据库表中存储的数据。

因此,本文的目的是通过对数据库表描述的介绍,帮助读者了解数据库表的重要性和作用,掌握数据库表的基本概念和设计原则,以提高数据库表设计的质量和效率。

同时,希望通过本文的讨论,引发对数据库表描述的思考和讨论,推动数据库表描述在未来的进一步发展和应用。

2.正文2.1 数据库表的定义和作用数据库表是数据库中的一个重要组成部分,它是用来存储数据的结构化方式。

每个数据库表都包含了一定数量的行和列,行代表记录,列代表属性。

jpdl3.1规范手册

jpdl3.1规范手册

JPDL3.1规范手册jBPM业务程序定义语言(jBPM Process Definition Language(JPDL))沈东良[良少]shendl_s@Blog:/shendl/2006­10­13前言:这是jBPM3.1指南第16章的翻译。

但不仅仅是简单的翻译而已。

其中加入了我对jBPM的JPDL规范和技术的理解。

我已经对其进行了全面的扩充讲解!应该说,本文是一份非常有用的jBPM的技术参考,其内容已经完全涵盖了jBPM指南的所有要点!它既可以作为你的jBPM和JPDL的参考速查手册,也可以用作学习jBPM 和JPDL规范的教材。

它完全浓缩了jBPM官方指南的精华。

另外,我还保留了英文原文。

这对于您的理解应该是有好处的。

如果有的地方我理解错了,您可以看到原文的表达。

另外,对于过于简单的英文,我就不翻译了。

这是我的风格,希望您能够喜欢。

希望它对您能够有所助益。

希望能够对国内jBPM的普及起到一定的推动作用,谢谢!这两天,心情不好,却又要强颜欢笑,一个买醉的机会都没有,唉……坏心情到今晚为止!明天开始,忘了过去,重踏征程!男人就是要我行我素!让别人去说吧!我就是酷,我就是帅,我就是花,我就是坏!怎么样!注意:一、节点的命名规则1,State等待状态,使用被管理的对象的状态作为名字。

2,TaskNode任务节点,使用该阶段处理的任务的名字作为名字。

而不使用被管理的对象的状态。

该阶段/业务程序、步骤的任务,最适合作为节点的名字!因为,不能够回到start­state。

所以,使用被管理对象的状态,在遇到start­state是会出现问题!二、jBPM的所有事件1<xs:enumeration value="node­enter"/>节点进入(Start­state没有)2<xs:enumeration value="node­leave"/>节点离开3<xs:enumeration value="process­start"/>业务程序实例开始4<xs:enumeration value="process­end"/>业务程序实例结束5<xs:enumeration value="task­create"/>任务创建6<xs:enumeration value="task­assign"/>任务分配(AssignmentHandler)7<xs:enumeration value="task­start"/>任务开始8<xs:enumeration value="task­end"/>任务结束9<xs:enumeration value="before­signal"/>执行转向前10<xs:enumeration value="after­signal"/>执行转向后11<xs:enumeration value="superstate­enter"/>进入父状态12<xs:enumeration value="superstate­leave"/>离开父状态13<xs:enumeration value="timer­create"/>创建定时器(创建和首次执行期间可以设duedate延时)14<xs:enumeration value="subprocess­created"/>子业务程序实例创建15<xs:enumeration value="subprocess­end"/>子业务程序实例结束三、jBPM的WebApp管理程序使用的是:MyFaces-----ApacheMyFaces是JavaServer(tm)Faces(JSF)Web框架(JSR127)的一个实现。

JBPM指南(培训机构专用)

JBPM指南(培训机构专用)

第1介绍JBOSS jBPM是一个灵活的、可扩展的工作流管理系统。

JBOSS jBPM拥有直观的流程语言,用任务、异步的等待状态、定时器、自动化动作…等来表示业务流程图,把这些操作绑定在一起,JBOSS jBPM就拥有了非常强大和可扩展的控制流机制。

JBOSS jBPM只有最小的依赖,可以象使用java库一样非常容易的使用它。

另外,也可以通过把它部署在J2EE集群应用服务器中,用在吞吐量极为关键的环境中。

JBOSS jBPM可被配置为任何数据库,并且可以部署到任何应用服务器。

1.1 概述核心工作流和BPM功能被打包为一个简单的java库,这个库包括一个存储到数据库、从数据库更新和获取流程信息的服务。

图1.1 JBOSS jBPM组件概观1.2 JBOSS jBPM入门套件入门套件是一个包含了所有jBPM组件的下载包,包括:l Jbpm-server,一个预配置好的jboss应用服务器。

l Jbpm-designer,图形化设计jBPM流程的eclipse插件。

l Jbpm-db,jBPM数据库兼容包(见下文)。

l Jbpm,核心jbpm组件,包括库和本指南。

l Jbpm-bpel,JBOSS jBPM BPEL扩展参考。

预配置好的JBOSS应用服务器安装了下列组件:l核心的jBPM组件,被打包为了一个服务档案。

l一个包括jBPM库表的集成数据库:默认的hypersonic数据库包含了jBPM表,另外还包含一个流程。

l jBPM控制台web应用程序,可以由流程参与者使用,也可以由jBPM管理员使用。

l jBPM调度程序,用于定时器执行。

调度程序在入门套件中被配置为一个servlet,这个servlet 将产生一个线程来监视和执行定时器。

l jBPM命令执行器,用于命令的异步执行。

命令执行器也被配置为一个servlet,这个servlet 将产生一个线程来监视和执行命令。

l一个流程实例,已经被部署到了jBPM数据库中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JBPM数据库表说明
1 流程配置类数据库表:
1.1 JBPM_PROCESSDEFINITION:流程模版表
1.2 JBPM_NODE:流程节点表
1.3 JBPM_TRANSITION:流程迁移表
1.4 JBPM_ACTION:流程动作表
1.5 JBPM_EVENT:流程事件表(字段全)
1.6 JBPM_DELEGATION:流程代理类表(用于实例化jbpm中的action类)
1.7 JBPM_TASK:流程任务表
1.8 JBPM_TASKCONTROLLER:流程任务控制器
1.9 JBPM_VARIABLEACCESS:流程变量表
1.10 JBPM_MODULEDEFINITION:流程模块定义表
1.11JBPM_EXCEPTIONHANDLER:流程异常处理器表
1.12 JBPM_DECISIONCONDITION:DECISION节点判断条件表
1.13 JBPM_ SWINLANE:DECISION节点判断条件表
2 流程运行类数据库表:
2.1 JBPM_PROCESSINSTANCE:流程实例表
2.2 JBPM_TOKEN:流程TOKEN表
2.3 JBPM_LOG:流程日志表
2.4 JBPM_RUNTIMEACTION:流程实时ACTION表
2.5 JBPM_VARIABLEINSTANCE:流程变量实例表
2.6 JBPM_COMMENT:流程备注信息表
2.7 JBPM_MESSAGE:流程异步消息表
2.8 JBPM_TIMER:流程定时器表
2.9 JBPM_TOKENVARIABLEMAP:流程TOKEN变量MAP表
2.10 JBPM_MODULEINSTANCE:流程模块实例表
2.11 JBPM_BYTEARRAY:文件模块形式的流程变量实例表
2.12 JBPM_BYTEBLOCK:。

相关文档
最新文档