|
| |
精品推荐 |
 |
|
| |
|
|
|
|
JBPM数据库中取得这个流程实例,如果有没有完成的流程,就让它进入下一步
|
日期:2007年5月11日 作者: 查看:[大字体
中字体 小字体]
|
// 这里的代码可以放在消息驱动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(); (出处:清风学院)
上一篇:JDBC概述(二)
下一篇:jBPM取得Token和流程目前Token所处节点
|
| 相关文章: |
|
|
|
| 相关软件: |
|
| |
|