45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:流程启动方法

流程启动方法

2016-09-06 07:09:47 来源:www.45fan.com 【

流程启动方法

1、初始化:
websale中jbpmContext的创建是在filter中完成的,其类为org.jbpm.webapp.filter.JbpmContextFilter。该filter在init方法中初始化jbpmConfigurationResource及jbpmContextName两个string。每个http request,均由filter创建jbpmContext,代码为:
JbpmConfiguration jbpmConfiguration=getJbpmConfiguration();
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(jbpmContextName);

bean中通过JbpmContext.getCurrentJbpmContext()获取当前的JbpmContext实例。比如HomeBean初始化代码:
...
public HomeBean() {
this.jbpmContext = JbpmContext.getCurrentJbpmContext();
this.graphSession = jbpmContext.getGraphSession();
this.taskMgmtSession = jbpmContext.getTaskMgmtSession();
}
...

2、启动流程
启动流程执行HomeBean的startProcessInstance方法:
public String startProcessInstance() {
// 从http request获取processDefinitionId参数,装载流程定义(jsfHelper是一个工具类,集合了一些jsf常用的功能)
long processDefinitionId = JsfHelper.getId("processDefinitionId");
ProcessDefinition processDefinition = graphSession.loadProcessDefinition(processDefinitionId);

// 创建新的流程实例
ProcessInstance processInstance = new ProcessInstance(processDefinition);

// 创建任务实例
TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance();

// 保存流程实例和任务实例
jbpmContext.save(processInstance);

// 设置taskBean
taskBean.initialize(taskInstance);

//跳转到task.jsp
return "task";
}

其中taskBean.initialize(taskInstance)做了如下工作:
a、初始化taskBean,并生成TaskFormParameter对象,设置TaskFormParameter对象属性并将该对象添加入taskFormParameters的LIST对象中。而taskFormParameters对象则设置到session中。
b、获取jbpm转换,如果有转换,设置相应的数据。
 

本文地址:http://www.45fan.com/bcdm/72968.html
Tags: 流程 启动 jBPM
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部