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

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

 2010-01-21 00:00:00 来源:WEB开发网   
核心提示: 清单9 Assignee类的Hibernate映射文件要让jBPM能够使用我们的自定义任务实例实现,我们还需要提供一个自定义的任务实例工厂(清单10),使用jBpm支持高级用户交互模式(7),packagecom.navteq.jbpm.extensions;importorg.jbpm.gra

清单9 Assignee类的Hibernate映射文件

要让jBPM能够使用我们的自定义任务实例实现,我们还需要提供一个自定义的任务实例工厂(清单10)。

package com.navteq.jbpm.extensions; 
 
 
import org.jbpm.graph.exe.ExecutionContext; 
import org.jbpm.taskmgmt.TaskInstanceFactory; 
import org.jbpm.taskmgmt.exe.TaskInstance; 
 
 
public class AssignableTaskInstanceFactory implements TaskInstanceFactory { 
 
 
 private static final long serialVersionUID = 1L; 
 
 
 @Override 
 public TaskInstance createTaskInstance(ExecutionContext executionContext) { 
 
 
 return new AssignableTaskInstance(); 
 } 
 
 
}

清单10 自定义的任务实例工厂

最后,为了让jBPM运行时使用正确的任务实例工厂(清单10),还必须创建一个新的jBPM配置(清单11)。

<jbpm-configuration>
  <bean  name="jbpm.task.instance.factory" 
class="com.navteq.jbpm.extensions.AssignableTaskInstanceFactory" singleton="true" 
/>
 </jbpm-configuration>

清单11 jBPM配置

完成所有这些变更之后(清单1-11),一个典型的任务处理显示如下:

List<String> actorIds = new LinkedList<String>(); 
actorIds.add("Peter"); 
List<TaskInstance> cTasks = jbpmContext.getGroupTaskList(actorIds) 
TaskInstance cTask = cTasks.get(0); 
AssignableTaskInstance aTask = (AssignableTaskInstance)cTask; 
try{ 
 aTask.reserve("Peter"); 
 // Save 
 jbpmContext.close(); 
} 
catch(Exception e){ 
 System.out.println("Task " + cTask.getName() + " is already reserved"); 
 e.printStackTrace(); 
}

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

Tags:使用 jBpm 支持

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