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吧。
分享到:
相关推荐
本章节摘录了一些重要的参考资料,包括产品开发流程、产品运营全图等内容,有助于产品经理更全面地了解产品开发和运营的全过程。此外,还提到了产品经理面试的经验分享,这对于准备进入产品经理岗位的人来说非常有...
根据提供的文件信息,文件标题为“GPS最新接口控制文档(ICD-200G)”,描述为“最新版的GPS协议,用户可根据该协议开发GPS L1波段接收机”,以及文件中的一部分内容摘录,我们可以提取以下知识点: GPS(全球定位...
由于提供的文件内容只包含了标题、描述、标签和部分内容的摘录,并没有具体的技术细节,所以难以生成超过1000字的具体知识点。但根据提供的信息,可以推测和解释一些关于LPC(Low Pin Count)接口的基本概念和技术...
当前的Umbraco版本:Beta 9.0.0-beta001 :warning: 这是一个进行中的工作,几乎在出版时就提供信息等。 DoStuffWithUmbraco“ NetCore”版本 Umbraco .net核心版本中的一系列模式和示例操作方法。 加入我们的旅程...
例如,岗位代码为001的X表示的可能是某个特定的岗位名称或者分类,但具体信息未能在摘录中体现。由于文档扫描识别可能存在的不准确问题,一些数据或信息可能需要根据实际情况进行校正。 总的来说,2021年义乌地区...
【部分内容】摘录了文档中的多个数学知识点: 1. **有理数与无理数**:有理数包括整数和分数,无理数如π和特定的无限不循环小数。 2. **绝对值**:绝对值的定义和计算方式,例如|a|表示a的非负值。 3. **近似数...
6. 职业代码与职业方向的对应关系:报告中提到了一系列职业代码及其对应的职业方向,例如“001”对应“X”。尽管具体内容无法从摘录中完整识别,但这一对应关系说明了报告中可能还有对特定岗位更细致的分类和分析。 ...
从手册的摘录来看,文档编号为001-86886,版本为*A,日期为2016年5月12日。手册中列出了赛普拉斯半导体公司在美国加州圣何塞的联系方式,包括电话号码和网址,并声明了版权及保密信息,包括使用许可协议,对文档内容...
根据文件内容,intel豆子峡谷NUC产品系列在2018年4月首次发布了技术产品规格说明书(Rev.001),随后在2018年7月发布了首款产品的生产版本(Rev.002)。在接下来的几个月,产品规格说明书中持续进行了澄清和更新,...
从给出的描述和部分摘录内容,我们可以提取以下知识点: 1. 菜单设计: - 实例001:带历史信息的菜单,演示如何在程序中记录并显示用户最近打开的文件名,这通常通过读取和写入*.ini配置文件实现。 - 实例002:...
matlab读取语音信号代码简单傅立叶变换 傅立叶变换书籍的 Python 和 MatLab 代码 PYTHON Fourierdemo.py 两种信号的简单傅立叶变换:合成信号和语音信号。 从文件中读取语音信号:sebinpubaudiIMG_1563....章的摘录。
绿墙,作为一种新兴的城市环保措施,正在全球范围内受到越来越多的关注。这种创新的建筑方式将绿色植物融入建筑物的...同时,收集并摘录文章中那些既有科学性又具趣味性的语言,可以加深对绿墙技术及其影响力的理解。