BPM4的一些相关概念(转)
首先,在jBPM4中,流程定义相关的布署信息就存储在JBPM4_DEPLOYMENT、JBPM4_DEPLOYPROP及
JBPM4_LOB中。
其次,虽然jBPM也说一个流程定义是关于某个过程(Procedure)中的各个步骤(Step)的描述,但在流程定义中并未出现Step字样,
而是代之于Activity。顾名思义,在JBPM4_HIST_PROCINST与JBPM4_HIST_ACTINST两张表中,分别存放的是
Process Instance、Activity
Instance的历史记录(实际上对于流程实例而言,一经建立,就会被存放在JBPM4_HIST_PROCINST中了)。而这两张History
表,也是jBPM升级至V4才有的,算是V4的亮点之一!
存放Process Instance、Activity
Instance历史记录的表有了,那他们的当前记录存在什么地方呢?这就需要弄清楚jBPM的另外几个概念。一般而言,在jBPM中,“a
process instance is the root of a tree of
executions”。因此,当一个流程实例Split出两个并行步骤的时候(这里的描述语言用的是OSWorkflow的,见谅),在
JBPM4_EXECUTION表中将有三笔相关记录,一笔是代表流程实例的Root Execution,另外两笔是关于上述两个并行步骤的Child
Execution。
此外,我们还必须搞清楚,在jBPM中,Activity的种类是很丰富的,可以是Control Flow
Activities,如sub-process、decision等,也可以是Automatic
Activities,如java、script、sql等(有关activity的完整描述请参见jPDL文档)。其中需要人来参与完成的
Activity被称为Task,相关记录被存放于JBPM4_TASK表中。
对一个Task而言,它可能会有多个Participation(Swim
Lane同样会有多个Participation)。Participation的种类有Candidate、Client、Owner、
Replaced
Assignee和Viewer。而具体的Participation既可以是单一用户,也可以是用户组。Participation的信息存放在
JBPM4_PARTICIPATION表中。
Swim Lane是一种Runtime Process Role。通过Swim
Lane,多个Task可以一次分配到同一Actor身上。存放这些信息是表JBPM4_SWIMLANE。
除此以外,JBPM4_JOB存放的是Timer的定义,JBPM4_VARIABLE存的是临时变量,JBPM4_COMMENT中的是用户在
Task上的加注信息。
jBPM4中的任务分配
在前一篇笔记中,我们提到过,jBPM到V4后增加了两张新表——
JBPM4_HIST_PROCINST、JBPM4_HIST_ACTINST,用来存放Process、Activity实例的历史记录。
与OSWorkflow相比,jBPM还有一个特别——有一张表专门用来存放需要人参与完成的Activity,在V4中,这张表名为
JBPM4_TASK。显而易见,在一个流程中,只有需要人参与完成的Activity才有Assignment之说,而且因为他们只是全部
Activity的一个子集,所以在构建有关的个人、用户组任务项列表时,数据库查询所涉及的记录数要少于OSWorkflow。
至于jBPM中的Swimlane——
它是随流程一起被定义的,所以也随流程一道被实例化。同一流程定义下的各个流程实例(Process
Instance),分别拥有自己的Swimlane实例,在JBPM4_SWIMLANE表中也是有各自的记录与其对应;对一个Swimlane
Instance的操作不会影响到另一个,即使它们来自同一个流程定义。
Swimlane的Candidate属性会传播到与之相关联的
Task实例上。即,与Swimlane相关联的Task实例会自动获得Swimlane的Candidate属性;并且,在数据库表
JBPM4_PARTICIPATION中,会有生各自的记录,分别保存Swimlane Instance与Task
Instance的Candidate。
对Task Instance的assignment操作,将会传播到与之关联的Task
Instance之上。换言之,假如我们将一个Task Instance分配给用户A,而这个Task Instance又属于某个Swinlane
Instance B,则从此Swinlane Instance B就被指派给用户A了;进而,Swimlane Instance中的其他Task
Instance也顺势被指派给了用户A。
不知通过上面的描述,是不是能让我们进一步理解“A swimlane is a process
role.”这句话呢?好象它的作用就在于将一个Process Instance中的多个Task一次分配给同一个Actor吧。
分享到:
相关推荐
webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录质
设计模式文章摘录设计模式文章摘录设计模式文设计模式文章摘录章摘录
缠论课后回复摘录 课后回复摘录
个人的C++学习摘录,包括易学C++ 18、19、20章的ppt
UML小结,是网上摘录的学习小结,出处忘了,但是的却是上家精品,仅供大家学习!
摘录之星的特点包括: 摘录,一步到位:按下一个热键(Ctrl+S,可重新定义)就自动完成内容的命名、保存、归并目录等诸多事项,并且自动记忆其它重要参考信息,如页面网址、摘录时间、应用程序名等。 摘录,一键通:...
这是从Linux官网摘录的一些Linux基础知识,解释非常清楚、到位,不过要有一定的英语基础,呵呵!
PMBOK重点内容摘录PMBOK重点内容摘录PMBOK重点内容摘录PMBOK重点内容摘录PMBOK重点内容摘录PMBOK重点内容摘录PMBOK重点内容摘录PMBOK重点内容摘录
从各类电脑报刊摘录的一些经典文摘;qq,msn传送文件的原理比较;u盘启动系统;(不断更新中。。。。)
C语言一些很迷惑人的问题的详细解释,值得一看 希望大家喜欢
AICPA审计复习要点摘录.pdfAICPA审计复习要点摘录.pdfAICPA审计复习要点摘录.pdfAICPA审计复习要点摘录.pdfAICPA审计复习要点摘录.pdfAICPA审计复习要点摘录.pdf
陕西2009计价规则(摘录陕西2009计价规则(摘录陕西2009计价规则(摘录陕西2009计价规则(摘录
摘录笔记.doc
ACE摘录&总结,C/C++跨平台框架工具!
数据仓库测试摘录 数据仓库测试摘录 数据仓库测试摘录
Pony对QQMail的邮件摘录Pony对QQMail的邮件摘录
温度PID控制摘录.供参考
广东报刊地产新闻摘录
Shell编程摘录
C语言经典问答摘录,自认为是一本不可错过的书...