[size=medium]jBPM中自带的文档中关于定时器Timer的使用介绍的比较少, 刚好最近要用到, 不过也很简单, 其中有几个地方需要注意一下.
使用版本为jBPM 3.2.2
1.使用Timer首先要在web.xml中配置JobExecutorServlet:
<servlet >
<servlet-name>JobExecutorServlet</servlet-name>
<servlet-class>org.jbpm.job.executor.JobExecutorServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping >
<servlet-name>JobExecutorServlet</servlet-name>
<url-pattern>/jobexecutor</url-pattern>
</servlet-mapping>
这个相当于在启动webapp之后启动一个线程, 不停的检查Job表中是否存在到期的job
2.接着就是在processdefition.xml中定义Timer, 这里有一个小小的问题, 就是
使用插件配置的Timer是放在<task-node>节点下的, 这个实际上是错误的, 而应该配置在具体的任务实例节点下,即<task>节点下,比如:
<task-node name="资金收到确认">
<task name="资金收到确认">
<timer duedate="7 days" name="checkTimer" transition="检查">
<action class="com.baiyao.workflow.payment.handler.TimerCheckActionHandler"></action>
</timer>
<assignment class="com.baiyao.workflow.payment.handler.PaymentComfirmAssignmentHandler"></assignment>
</task>
<transition to="拨付"></transition>
<transition to="检查资金拨付情况" name="检查"></transition>
</task-node>
3.最后就是写相应的ActionHandler, 当Timer到达指定的时间时就会执行该ActionHandler, 比如这样写:
/**
* 超过七个工作日, 退出当前确认节点, 进入内勤检查任务节点
*
* @author Macro Chen
* @since Jul 18, 2008
*/
public class TimerCheckActionHandler implements ActionHandler {
private static final long serialVersionUID = 1L;
public void execute(ExecutionContext ctx) throws Exception {
long taskId = ctx.getTaskInstance().getId();
TaskInstance ti = JbpmUtils.getTaskInstance(taskId);
JbpmUtils.end(ti, "检查");
}
}
Timer还有几个需要注意的, 一个就是默认情况下流程在执行node-enter事件的时候会自动创建timer实例, 然后添加到job表中, 等待去执行指定ActionHandler, 如果当前任务实例被处理, 结束当前任务, 执行了node-leave事件之后, 默认情况下Timer会被自动取消.[/size]
分享到:
相关推荐
jBPM,全称java Business Process Management,是一款基于Java的业务流程管理系统,以其开放性和灵活性在开源工作流引擎市场中占据一席之地。jBPM4.4版本特别之处在于其底层依赖于Active Diagram模型,并且采用了...
1.6 JBPM_DELEGATION:流程代理类表(用于实例化jbpm中的action类) 6 1.7 JBPM_TASK:流程任务表 6 1.8 JBPM_TASKCONTROLLER:流程任务控制器 7 1.9 JBPM_VARIABLEACCESS:流程变量表 7 1.10 JBPM_MODULE...
- **JBPM_TIMER**:计时表,记录流程中的定时器信息。 - **JBPM_POOLEDACTOR**:汇集参与者表,记录参与者的信息。 - **JBPM_RUNTIMEACTION**:运行中行为表,记录运行中的操作信息。 - **JBPM_LOG**:流程日志...
记录流程模块的实例信息,当流程中使用到子流程时,会在该表中创建对应的记录。 #### 2.11 JBPM_BYTEARRAY 存储以文件形式存在的流程变量,比如文档、图片等二进制数据。 #### 2.12 JBPM_BYTEBLOCK 未提供详细说明...
这包括安装必要的工具和库,创建流程定义文件(使用JPDL),然后在JBPM引擎中启动和跟踪流程实例。 三、学习 JPDL 3.1 简介 JPDL是JBPM中定义流程的关键,它允许开发者声明流程的各个组件,如开始和结束节点、任务...
这一节涵盖了如何在jBPM中使用JMS来发送和接收消息。 ###### 2.9.1 为简化测试模拟JMS提供器 介绍了如何设置模拟的JMS提供器以便于开发和测试。 ###### 2.9.2 文本消息 讲解了如何处理纯文本格式的消息。 ###### ...
在深入研究JBPM4的源代码时,我们可以从其包结构中了解到框架的核心功能和设计理念。 1. **org.jbpm.pvm.internal.ant**: 此包包含与Ant构建工具集成的相关类,主要用于发布流程和辅助启动JBoss服务器的任务。这...
在使用JBPM4进行流程管理时,不同的操作会导致相应的表发生变化。例如: - **发布一个流程(deploy)** - `JBPM4_DEPLOYMENT`: 新增一条记录。 - `JBPM4_LOB`: 新增一条记录。 - `JBPM4_DEPLOYPROP`: 新增四条记录...
- **JBPM_TIMER**: 计时器,定义了流程中的定时事件。 - **JBPM_TOKEN, JBPM_TOKENVARIABLEMAP**: 令牌表示流程执行的状态,变量映射则关联了令牌与变量。 - **JBPM_TRANSITION**: 转换表,定义了流程中节点间的...
在3.1.x版本中,是通过`jbpm_timer`表来存储定时任务,而在3.2版本中,这个表被`jbpm_job`表所取代。这意味着后台线程会持续检查`jbpm_job`表,当发现需要触发的任务时,会根据任务的属性进行定时或循环执行。 在...
本文将详细介绍jBPM的中文表结构及其流程中的各个节点含义。 首先,jBPM的基本概念包括流程定义、流程实例、任务实例等。流程定义是流程的蓝图,描述了流程的各个步骤和逻辑。流程实例则是流程定义在实际运行中的...
5. **ejb服务与定时器**:jbpm-services-ejb-timer-7.3.0.Final.jar和jbpm-services-ejb-client-7.3.0.Final.jar提供了基于EJB的定时服务和客户端接口,使得jBPM能够集成到Java EE环境中,实现定时触发流程事件或...
通过项目地址(http://www.zuidaima.com/share/1989287537953792.htm)访问,可以获取更详细的jbpm项目示例和教程,帮助开发者理解和学习如何在实际项目中使用jbpm,结合SSH和ExtJS构建高效的企业级流程管理系统。...
通过本手册,读者可以了解到jBPM5的主要组成部分以及如何使用这些工具和技术来构建和管理复杂的业务流程。无论是对于初学者还是经验丰富的开发者而言,jBPM5都提供了一套强大且灵活的解决方案。
JBPM中 使用JobExecutor执行timer定义的job 使用此处中转,别人的资料。工作使用。
JBPM(JBoss Business Process Management)是一款开源的工作流管理系统,广泛应用于各种业务流程管理场景中。JBPM4版本是该系列中的一个重要版本,其数据库设计反映了该系统的核心功能与架构。本文将详细介绍JBPM4...
四、流程中任务的分配 37 4.1 assignment-handler方式的任务分配 38 4.2 swimlane方式的任务分配 39 五、JBPM持久化 42 5.1 特殊数据库支持 42 5.2 JBPM数据库的安装 42 5.2 JBPM流程发布 45 5.2.1 搭建JBPM的WEB...
JBPM工作流开发指南是针对使用JBPM框架进行工作流应用开发的专业参考资料,该指南以中文形式详细介绍了如何利用JBPM来设计、实现和管理业务流程。JBPM是一款开源的工作流管理系统,它允许开发者集成业务流程到应用...
以上五个知识点涵盖了 jbpm5.3 中关于结束事件、错误事件、定时事件、脚本任务和服务任务的核心概念和使用方法。通过对这些概念的理解,可以有效地设计和实现复杂的业务流程自动化,提高工作效率和准确性。在实际...
- **流程建模语言**:jBPM 提供了一套直观的流程建模语言,能够以图形化的方式表示业务流程,包括但不限于任务(task)、异步通信的等待状态(wait state)、定时器(timer)以及自动化动作(automated action)等元素。...