在Jbpm的processInstance与taskInstance都对外提供了挂起进程实例或工作实例的的接口,同时也提供了释放的接口。分别是:
1,processinstance
processinstance.suspend();
processInstance.resume();
2,taskInstance
taskInstance.suspend();
taskInstance.resume();
同时processinstance与 taskInstance还提供了一个标志位,isSuspended与isOpen分别表示是挂起还是开放状态,如果标志位isSuspended=true&&isOpen=fasle,那么这个进程实例或任务实例在用户界面就不会被找出来,但在管理界面还是可以看到。如果isSuspended=false&&isOpen=true,结果就是正常情况了。
以上介绍了一下Jbpm中挂起与释放的功能,但它存在一个bug,在正常情况下当你调用这两个方法时,是会出错的。提示badsql 语法错误,经过跟踪才知道原来在Jbpm的查询语句里出现了错误。在这里简单介绍一下Jbpm的数据库查询方法,Jbpm的底层持久层采用的是Hiberante3.1,但是它的查询方法却是采用了很少人会用的外置命名查询(为什么采用这个方法,采用这个方法有什么好处,我也没有对它进行研究过。^_^),问题就出在,在调用挂起与释放这两个方法时,它主要做的是以下几个操作:
suspendTimers();
suspendMessages();
suspendTaskInstances();
跟踪得到在挂起messages时出现了错误,文件就出在外置命名查询的sql语句上:
原码:
<query name="MessagingSession.suspendMessagesForToken">
<![CDATA[
update org.jbpm.msg.Message
set isSuspended = true
where token = :token
]]>
</query>
看到这里属性hibernate的人应该马上可以知道那里出了问题了,^_^!
在hibernate中条件查询一定要定义别名,如下就正常了!^_^!
<query name="MessagingSession.suspendMessagesForToken">
<![CDATA[
update org.jbpm.msg.Message me
set me.isSuspended = true
where me.token = :token
]]>
</query>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jonim/archive/2006/11/03/1364208.aspx
分享到:
相关推荐
【jbpm4请假实例代码】是一个基于jbpm4工作流引擎的示例应用,它用于演示如何在实际项目中实现员工请假流程的自动化管理。jbpm4是一个开源的工作流管理系统,它提供了强大的业务流程建模、执行和管理功能,使得...
在这个入门开发实例中,我们将探讨如何利用jBPM4.4进行业务流程的建模、部署和执行。 **一、jBPM4.4核心概念** 1. **流程定义(Process Definition)**:使用jBPM的流程定义语言(BPML或BPMN)来描述业务流程。...
3. **编写工具类**:实例中提到的“丰富的工具类”可能包括任务管理、流程实例控制、数据交互等功能,它们帮助我们更好地操作JBPM引擎。这些工具类可以帮助我们查询任务,分配任务,以及检查任务状态。 4. **部署...
7. **流程实例管理**:项目还可能包含启动新流程实例、查询现有实例、终止或挂起流程的功能。这些操作体现了jbpm对流程实例生命周期的控制。 8. **业务规则和事件处理**:jbpm支持与业务规则引擎(如Drools)集成,...
在这个"JBPM5请假实例,完整版"中,我们将深入探讨如何利用JBPM5来实现一个具体的请假流程,以及在这个过程中可能遇到的关键配置问题。 首先,我们要理解JBPM5的核心功能。JBPM5提供了一个强大的流程建模工具,它...
在jbpm的开发中,你会遇到流程定义、流程实例的启动和执行、任务的分配和完成、流程变量的管理和查询等功能。例如,你可以使用jPDL定义一个请假流程,其中包含申请、审批和销假等步骤。流程的执行可以通过jbpm提供的...
在这个“struts2+spring+hibernate+jbpm工作流实例”中,主要展示了如何利用这些技术实现一个公文审批流转的过程。 首先,Struts2是一个基于MVC设计模式的Web应用框架,它负责处理HTTP请求,并将这些请求映射到相应...
JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上 JBPM的工程文件,大家可以到...
这个经典的jbpm实例提供了一个已经配置好的环境,可以直接在Tomcat应用服务器上部署,并能在MyEclipse集成开发环境中导入使用,极大地简化了开发者的学习和开发流程。 一、jbpm简介 jbpm是一个基于Java的流程引擎,...
在本实例中,我们将深入探讨如何使用jbpm进行实际应用的开发,以及它如何帮助我们理解和优化工作流程。 首先,了解jbpm的核心概念是至关重要的。jbpm包含以下几个主要组件: 1. **流程定义语言(BPMN)**:jbpm...
在这个"我写的一个jbpm实例"中,我们将深入探讨jbpm的核心概念和实现步骤。 1. **jbpm简介** jbpm是基于Java的BPM(Business Process Management)解决方案,支持BPMN 2.0标准,使得流程模型更加直观易懂。jbpm...
- **监控与管理**:通过JBPM4提供的管理界面,查看流程实例的状态,跟踪任务进度,进行审计和报表分析。 ### 6. 学习资源 - 官方文档:JBPM4的官方文档详细介绍了各个组件和API的使用,是学习的基础。 - 示例代码...
SSH2与Jbpm的集成是企业级应用中常见的技术结合,主要应用于流程管理与权限控制。SSH2指的是Spring、Struts2和Hibernate这三个开源框架的组合,它们分别是Java Web开发中的依赖注入容器、MVC框架和持久层框架。而...
在提供的Jbpm实例代码中,我们主要会涉及到以下几个核心概念和技术点: 1. **流程建模(BPMN 2.0)**:Jbpm基于Business Process Model and Notation 2.0标准,这是一种图形化的流程建模语言。通过图形化的方式,...
在示例中,创建流程实例后,可以将其保存到数据库,同时可以设置上下文(Context)来保存与流程实例相关的数据。这样,即使应用程序重启,也能恢复流程执行,保证了流程的连续性。 在实际应用中,jbPM提供了图形化...
【JBPM4开发实例】是关于使用JBPM4进行工作流开发的一个具体实践教程,适合初学者进行入门学习。JBPM4是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。在这个实例中,我们将详细介绍如何设置...
输入项目名称,如"myjbpm",这与你提供的压缩包文件名一致,表示这是一个基于jbpm的工程实例。 项目创建后,你会看到一个标准的jbpm项目结构,包括src/main/resources下的业务规则文件(drl)、流程定义文件(bpmn2...
在这个“报销申请”的实例中,我们将探讨如何利用Jbpm来处理日常的报销流程,包括报销单的提交、审批、财务审核以及支付等步骤。 首先,我们需要理解工作流的基本概念。工作流是一种定义和执行业务过程的方式,它...
4. **jbpm与SSH集成**:在SSH应用中集成jbpm,需要配置jbpm的数据源、事务管理器以及流程引擎。同时,编写适配器以便在Spring中启动和管理流程实例,以及处理流程中的任务分配和完成。 5. **开发实践**:开发者需要...
此外,还可以学习到如何将jbpm与其他技术如Spring、Hibernate、MyBatis等进行集成,实现更复杂的业务场景。 总的来说,"jbpm开发实例源码"是一个宝贵的学习资源,可以帮助开发者快速上手jbpm,并为构建高效、灵活的...