WEB开发网
开发学院软件开发Java 使用jBpm支持高级用户交互模式 阅读

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

 2010-01-21 00:00:00 来源:WEB开发网   
核心提示: 清单12 处理可分配任务实例这里,在得到某个用户的任务实例并将其转变成可分配任务实例之后,使用jBpm支持高级用户交互模式(8),我们将试着预留它,一旦预留成功,你可以得到一个任务,但是没有由某个任务得到所有实例的API,我们将关闭jBPM运行时以提交事务,实现任命 JBoss jBPM可以非常

清单12 处理可分配任务实例

这里,在得到某个用户的任务实例并将其转变成可分配任务实例之后,我们将试着预留它。一旦预留成功,我们将关闭jBPM运行时以提交事务。

实现任命

JBoss jBPM可以非常轻易的实现手动将任务分配给特定用户。根据jBPM提供的简单API,可以完成将任务实例从一个任务列表移动到另一个任务列表,因此给某个用户分配任务相当直接(清单13)

List<String> actorIds = new LinkedList<String>(); 
actorIds.add("admins"); 
String actorID = "admin"; 
List<TaskInstance> cTasks = jbpmContext.getGroupTaskList(actorIds); 
TaskInstance cTask = cTasks.get(0); 
cTask.setPooledActors((Set)null); 
cTask.setActorId(actorID); 

清单13 将任务重新分配给指定用户

jBPM提供了2类不同的API来设置参与者池:一类接收字符串id数组,另一类则接收id集合。如果要清空一个池,就要使用那个接收集合的API(传入一个null集合)。

实现上报

前面已经说过,上报一般被实现为任务的重新分配,并常常附带一个上报已发生的通知;或是实现成一个任务未及时完成的通知。

实现为重新分配的上报

尽管jBPM不直接支持上报,但它提供了2个基本的机制:超时和重新分配(参见上节)。粗一看,实现上报只需将这二者结合即可,但是仔细一想还是存在一些困难:

jBPM实现中的关系并不总是双向的。如,从一个任务节点我们可以找到所有这个节点定义的任务,但是从一个任务,并没有API可以完成找到包含它的任务节点的工作;由某个任务实例,你可以得到一个任务,但是没有由某个任务得到所有实例的API,诸如此类。 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:使用 jBpm 支持

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接