`

JBPM定时器(Timer)之Repeat属性不能使用变量

    博客分类:
  • jbpm
阅读更多

                        

我曾经想如下配置JBPM的Timer:
<on event="timeout">
      <timer duedate="#{duedate}" repeat="#{repeat}"/>
          <event-listener   class="...wfms.demo.timer.TimerListner" />
 </on>

 

结果发现:

1.duedate是可以使用流程变量的,当创建org.jbpm.pvm.internal.job.TimerImpl的实例时,其会找到相应变量的值来初始化duedate属性如下:

 public void setDueDateDescription(String dueDateDescription) {
    ScriptManager scriptManager = ScriptManager.getScriptManager();
    dueDateDescription = (String) scriptManager.evaluateExpression(dueDateDescription, null);
    Date now = Clock.getCurrentTime();
    BusinessCalendar businessCalendar = EnvironmentImpl.getFromCurrent(BusinessCalendar.class);
    duedate = businessCalendar.add(now, dueDateDescription);
  }

 

2.repeat就不能使用流程变量了,而只可以使用一个持续时间表达式常量。原因是其只是把配置的变量赋值给TimerImpl实例的repeat属性而不做任何处理:

public void setRepeat(String repeat) {
    this.repeat = repeat;
 }

 当然了要解决这个问题办法倒是有一个,那就是覆写上面这个方法:

public void setRepeat(String repeat) {
  ScriptManager scriptManager = ScriptManager.getScriptManager();
        this.repeat = (String) scriptManager.evaluateExpression(repeat, null);
  }

 

分享到:
评论
1 楼 dongj0325 2012-09-05  
看到您的博客,很受启发,但还有关于jbpm4.4 timer使用的一些疑问,还望赐教。比如,timer 控件触发后能够按照重复属性repeat属性设置的时间间隔重复调用,但服务器关闭重启后,监听便失去作用不会重新启动,对于这种问题如何处理,谢谢。

相关推荐

    JBPM数据库表说明.doc

    2.8 JBPM_TIMER:流程定时器表 19 2.9 JBPM_TOKENVARIABLEMAP:流程TOKEN变量MAP表 19 2.10 JBPM_MODULEINSTANCE:流程模块实例表 20 2.11 JBPM_BYTEARRAY:文件模块形式的流程变量实例表 20 2.12 JBPM_BYTEBLOCK: ...

    JBPM数据库表说明 jbpm 工作流 详细到每一个字段,不要下载分

    2.8 JBPM_TIMER:流程定时器表 19 2.9 JBPM_TOKENVARIABLEMAP:流程TOKEN变量MAP表 19 2.10 JBPM_MODULEINSTANCE:流程模块实例表 20 2.11 JBPM_BYTEARRAY:文件模块形式的流程变量实例表 20 2.12 JBPM_...

    jBPM4.4 详解 API 中文

    详细分析解释JBPM工作流API 内含丰富示例截图 代码

    jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍

    jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍

    jbpm简介\jbpm简介

    \jbpm简介\jbpm简介\jbpm简介\jbpm简介\jbpm简介

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    jbpm 案例 jbpm jbpm

    jbpm使用案例,非常不错,大家都来看看吧。

    jbpm使用简单示例

    jbpm一个简单示例,采用structs+jbpm实现的一个报销流程。是一个入门的好例子,有兴趣的朋友可以看看

    jbpm安装及使用方法

    如果不存在,再去找task属性里 assignmentDelegation(分配代理类)通过代理类(即我们自己写的实现AssignmentHandler这个接口的类)指定ActorId或 PooledActors。 13. jbpm的用户角色管理 jbpm在用户角色管理上共...

    JBPM工作流开发指南

    3.3.18 create-timer(创建定时器) 25 3.3.19 cancel-timer(取消定时器) 26 3.3.20 task(任务) 26 3.3.21 swimlane(泳道) 27 3.3.22 assignment(委派) 28 3.3.23 controller(控制器) 29 3.3.24 process-state 子流程 ...

    jbpm 数据库jbpm 数据库

    jbpm 数据库jbpm 数据库jbpm 数据库jbpm 数据库jbpm 数据库

    jbpm4jbpm5

    jbpm应用开发指面(胡奇) jbpm4.3表结构和表字段说明 [jBPM开发指南].高杰.文字版 jBPM5_用户手册-中文版

    jbpm开发指南--jbpm全面介绍

    通过查看JBPM的表,我们知道要实现流程监控功能就是把JBPM当中的JBPM_PROCESSDEFINITION(已发布的流程表),JBPM_PROCESSINSTANCE(流程实例表),JBPM_TASKINSTANCE(流程产生的任务实例表)这三张表串联起来就可以...

    jbpm教程

    JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. &lt;br&gt;JBoss jBPM 只有最小的倚赖...

    JBPM工作原理及表结构详解

    本文件从JBPM的原理、实现方法、实例等方面详细讲解了JBPM的原理,包括以下内容: 1、JBPM特色: 3 2、流程图的组成: 3 2.1流转 (TRANSITION) 3 2.2活动 (ACTIVITY) 3 3、所用到的表: 4 3.1资源库与运行时表结构:...

    JBPM5 使用手册

    文档包括程序的安装,以及...jBPM 用户手册 第一章 概述 第二章 安装 第三章 流程 - 第四章 BPMN2.0 - 第五章 API - 第六章 人工任务 - 第七章 领域 - 规范流程 - 第八章 持久化 - 第九章 控制台 - 第十章 监视 -

    JBPM4.4之HelloWorld示例

    JBPM4.4之HelloWorld示例

    jbpm4源码jbpm4源码jbpm4源码

    jbpm4源码jbpm4源码jbpm4源码

    jbpm创建数据库jbpm创建数据库

    jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库

    JBPM4 SSH EXTJS JBPM SSH EXTJS

    JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS 希望对大家有帮助。

Global site tag (gtag.js) - Google Analytics