数据库中取得这个流程实例

原创 2006年05月17日 11:17:00

// 这里的代码可以放在消息驱动Bean里面。

  // 让我们开始一个session
  JbpmSession jbpmSession = jbpmSessionFactory.openJbpmSession();
  // 在持久化session上开始一个事务的时候,这里有可使用WEB应用中的DataSource来取得一个数据库session.
  jbpmSession.beginTransaction();
  GraphSession graphSession = jbpmSession.getGraphSession();

  // 首先,我们需要在数据库中把流程提取出来.
  // 这里有很多方法可以用来取得我们需要的流程实例。
  // 一个最简单方法就是在流程的实例列表里面查询。
  ProcessDefinition processDefinition = graphSession
    .findLatestProcessDefinition("hello world");

  // 现在查询所有的流程实例。
  List<ProcessInstance> processInstances = graphSession
    .findProcessInstances(processDefinition.getId());

  // 我们知道在这里单元测试里面只有一个执行,所以下面我们直接get(0)。
  // 而在实际工作中,我们这里需要通过ID来确定我们所需要的流程实例。
  ProcessInstance processInstance = null;
  for (ProcessInstance pi : processInstances) {

   if (!pi.hasEnded()) {
    pi.signal();
    //AssertJUnit.assertTrue(pi.hasEnded());
   } 

 }

  // 好了,现在我们可以继续执行。注意,这里processInstance
  // processInstance.signal();

  // 完成signal以后,我们的流程就到达end-state状态点了。
  // AssertJUnit.assertTrue(processInstance.hasEnded());

  // 现在可以更新数据库里面流程状态点。
  // graphSession.saveProcessInstance(processInstance);

  // 事务提交
  jbpmSession.commitTransaction();
  // 关闭session
  jbpmSession.close();


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

WM_NOTIFY消息流程实例分析

  • 2012-10-10 21:26
  • 856KB
  • 下载

Activiti 流程实例、任务的执行

流程实例、任务的执行

实例2 java流程控制

APP开发流程实例讲解-儒释道网络电台八天开发全程-签名发布

儒释道网络电台_APP创建全程讲解之 签名发布 今天做为开发《儒释道网络电台》APP的第七天,按计划的工作内容有:签名发布 为什么要签名 这个问题的答案也是我从网上找来的,来自博客:http://ww...
  • do168
  • do168
  • 2016-07-10 11:09
  • 467

《C#精彩实例教程》小组阅读08 -- C#流程控制语句

本微信图文详细介绍了C#的流程控制语句。

ERP 系统流程实例大全

  • 2010-07-30 11:41
  • 122KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)