jbpm3.1 websale实例学习(一)启动工作流

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转换,如果有转换,设置相应的数据。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值