`

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深入解析之变量设计

    【JBPM深入解析之变量设计】 JBPM,全称Java Business Process Management,是一款开源的工作流管理系统,用于构建灵活且可扩展的业务流程。它提供了一种模型化的方式来定义和执行业务流程,允许开发者通过编程或者...

    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 中文

    jBPM4.4版本特别之处在于其底层依赖于Active Diagram模型,并且采用了Hibernate 3.3.1,这使得它能够良好地兼容主流数据库,同时,整个版本共涉及18张数据表,展现了其强大的数据处理能力。 #### 三、搭建jBPM4.4...

    jbpm数据库表结构

    - **JBPM_TIMER**:计时表,记录流程中的定时器信息。 - **JBPM_POOLEDACTOR**:汇集参与者表,记录参与者的信息。 - **JBPM_RUNTIMEACTION**:运行中行为表,记录运行中的操作信息。 - **JBPM_LOG**:流程日志...

    jbpm使用简单示例

    **jbpm简介** jbpm(Java Business ...总之,"jbpm使用简单示例"是一个很好的学习资源,通过它,开发者不仅可以了解jbpm的基本操作,还能掌握如何在实际项目中运用流程管理技术,提升业务系统的灵活性和可维护性。

    JBPM4.4 使用之配置管理

    **JBPM4.4 使用之配置管理** JBPM(Java Business Process Management)是一款开源的工作流管理系统,用于管理和执行业务流程。在JBPM4.4版本中,配置管理是确保系统稳定运行和流程优化的关键环节。以下将详细讲解...

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    **jbPM 3.2 知识点详解** jbPM,全称为Java Business Process Management,是一个开源的工作流管理系统,主要用于企业级应用中的业务流程管理。...希望这份知识总结能对你在jbPM的学习和使用上提供帮助。

    JBPM4 常用表结构及其说明

    在使用JBPM4进行流程管理时,不同的操作会导致相应的表发生变化。例如: - **发布一个流程(deploy)** - `JBPM4_DEPLOYMENT`: 新增一条记录。 - `JBPM4_LOB`: 新增一条记录。 - `JBPM4_DEPLOYPROP`: 新增四条记录...

    jbpm简介\jbpm简介

    4. **流程虚拟机(PVM)**:PVM是jBPM的核心组件之一,它是一组用于生成和执行不同流程语言定义的商业流程的简单Java类库。PVM的嵌入式特性使其成为一种高效、易于集成的工作流解决方案。 #### 四、为何选择jBPM 1. ...

    JBPM数据库表说明.doc

    #### 2.8 JBPM_TIMER 定义了流程中的定时器,用于触发特定时间点的动作。 #### 2.9 JBPM_TOKENVARIABLEMAP 存储流程令牌与变量之间的映射关系,反映流程实例中的变量状态。 #### 2.10 JBPM_MODULEINSTANCE 记录...

    jbpm数据库表结构详解

    jbpm是一个开源的工作流管理系统,它使用数据库存储工作流实例、任务、变量等信息。jbpm数据库中的表结构是理解其工作原理的关键。以下是对jbpm数据库表结构的详细解析: 1. **JBPM4_DEPLOYMENT**:这是流程定义表...

    jBPM 4使用手记

    **jBPM 4 使用手记** jBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了全面的业务流程管理和工作流解决方案。在jBPM 4这个版本中,开发者可以利用其强大的功能来设计、执行和管理...

    jbpm4jbpm5

    jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...

    jbpm数据库表字段详解

    * DECISIONEXPRESSION_:节点类型为Decision时使用,该属性表示Decision中的判断表达式 3. JBPM_TRANSITION表 JBPM_TRANSITION表存储了流程迁移的信息。该表的字段包括: * ID_:流程迁移的唯一标识 * NAME_:...

    JBPM数据库表关系

    了解JBPM数据库表的关系对于有效使用和维护JBPM系统至关重要。以下将详细阐述这些表及其相互关系。 1. **流程配置类数据库表**: - **JBPM_ACTION**: 存储流程中的动作信息,如任务分配、通知等。 - **JBPM_...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    此外,熟悉Drools规则引擎的使用,能帮助开发者更好地利用jBpm实现智能决策。 总之,jBpm 3.1.2是业务流程自动化领域的一个强大工具,它为开发高效、灵活的工作流应用提供了坚实的基础。无论是对于企业内部的流程...

    JBPM5 使用手册

    ### JBPM5 使用手册知识点概览 #### 一、概述 **JBPM5**(**j**Boss **B**usiness **P**rocess **M**anager)是一款开源的业务流程管理系统,它提供了完整的业务流程管理解决方案,包括流程设计、执行、监控等功能...

    JBPM工作原理及表结构详解

    - **持久化存储**:JBPM将流程实例和变量等数据存储在数据库中,保证了数据的可靠性和可恢复性。 - **集成能力**:它可以轻松地与Java EE、Spring框架和其他企业级系统集成。 - **事件驱动**:JBPM支持异步事件...

    jBPM 4.4 开发指南pdf版

    这一节详细介绍了jBPM中的Timer定时器功能及其使用方法。 ###### 2.1.1 持续时间表达式 - **2.1.1.1 基本时间**:定义了基本时间单位,如秒、分钟、小时等。 - **2.1.1.2 例子**:通过具体示例展示了如何设置不同...

Global site tag (gtag.js) - Google Analytics