快速业务通道

使用jBpm支持高级用户交互模式 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

使用jBpm支持高级用户交互模式

时间:2011-07-08 infoq 译:胡键

许多通用业务流程都包含人类参与者。人类活动,从简单场景(如人工批准) 到复杂场景(涉及复杂的数据输入),在流程实现中引入了新的方面,如人类交 互模式。人类交互模式的一个典型集合包括:

四眼原则(The 4-eyes principle),通常又被称为“职责分离”,它是决策 由多人彼此独立作出时的一个常见场景。在很多情况下,很容易就能得到另一个 观点/签名。

任命(Nomination)是指上级根据团队成员的任务安排、工作负荷或经验人工 地将任务分配给他的情形。

任务通常被建模来表达一种预期:它们将在确定时间段内完成。如果任务没有 按预期地进展,就需要一种上报(escalation)机制。两种典型的上报实现是: 重新分配任务,并常常附带一个上报已经发生的通知;或任务未按时完成的通知 (通常发给经理)。

链状执行(Chained execution)是一个流程(片断),其中的一系列步骤是 由同一个人来完成。

jBPM中的任务管理

jBPM的一个核心功能是为人类管理任务和任务列表。jBPM允许将任务和任务节 点作为整个流程设计的一部分使用。

任务一般在jBPM中定义成任务节点。单个任务节点可以包含一个或多个任务。 包含任务节点的jBPM流程的一个公共行为就是等待任务节点中的全部任务完成, 然后继续执行。某个任务可被分配 给个人、用户组或泳道:

假如任务被分配给某个特定用户,那么就只有这个使用者可以执行它。

假如任务被分配给某个用户组,那么这个组内的任何参与者都能执行这个任务 。jBPM使用的是参与者池(pooled actors)符号(它可以包含组名、组名列表和 参与者个人列表等),而不是组ID。如果用户开始执行在他们组任务列表中的任 务,最终可能会引起冲突——可能有多人开始执行相同的任务。为了避免这种情 况,在开始执行任务之前,用户应该将任务从组任务列表移动到他们自己的任务 列表中。

泳道代表一个流程角色,它通常被分配给一个用户组。它是一种指定流程中的 多个任务要由同一参与者完成的机制。因此,在第一个任务被分配给某个泳道之 后,流程就会记住所有在相同泳道内的后续任务都将由同一参与者完成。

jBPM提供了两种定义任务分配的基本方法:作为流程定义的一部分或通过编程 实现。如果是作为流程定义的一部分,分配可以通过指定具体用户、用户组或泳 道 完成。此外,可以使用表达式根据流程变量动态确定某个具体用户。完整的编 程实现是基于分配处理器(assignment handler)的,它允许任务根据任意的计 算规则去查找用户ID。

流程定义描述流程实例的方式类似任务描述任务实例的方式。当流程执行时, 一个流程实例——流程的运行时表示——就会被创建。类似,一个任务实例—— 任务的运行时表示——就会被创建。根据任务定义,任务实例被分配给一个参与 者/参与者组。

任务实例的一个作用就是支持用户交互——把数据显示给用户并从用户那里收 集数据。一个jBPM任务实例拥有访问流程(令牌)变量的全部权限,而且还可以 有自己的变量。任务能够拥有自己的变量对于以下场景非常有用:

在任务实例中创建流程变量的副本,这样对任务实例变量的即时更新只有在该 任务完成且这些副本被提交给流程变量时才会影响流程变量。

创建更好支持用户活动的“派生(计算)”变量。

任务自己的变量在jBPM中是通过任务控制器处理器(task controller handler)支持的,它可以在任务实例创建时生成任务实例数据(从流程数据), 并在任务实例完成时将任务实例数据提交给流程变量。

实现四眼原则

我们上面已经说过,实现四眼原则意味着要允许多人同时干一个活。它的实现

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号