`
sdustyongz
  • 浏览: 84924 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JBPM的时间服务

    博客分类:
  • jbpm
 
阅读更多
JBPM的时间服务
JBPM时间服务的使用主要体现在对timer节点的使用。timer节点有两种使用方式:一种是挂接到node节点下,在进入node节点时触发,在离开node节点时终止;另外一种是挂接到task节点下,在任务创建时触发,默认在任务完成后终止。下面举例说明:
  一、挂接到node节点  
  <state name='catch crooks'>
      <timer name='reminder'
         duedate='3 business hours'
         repeat='10 business minutes'
         transition='time-out-transition' >
        <action class='the-remainder-action-class-name' />
        <transition name='time-out-transition' to='next' />
      </timer>
    </state>

  解释:timer将会在流程令牌进入节点catch crooks时触发,延迟3 business hours开始执行动作,每10 business minutes重复执行一次,直到令牌离开catch crooks节点。
  对time节点来说 name、repeat、transition都是可选属性。对一个流程定义来说,每一个time节点的name必须唯一,如果你不定义name属性,引擎会默认把node节点的name赋给timer。在上面这个例子里,如果你不定义timer节点的name,则它的name就会是catch crooks。说说repeat属性,如果你不定义它,则timer就会只执行一次动作不会重复执行。transition属性,如果定义了这个属性,流程令牌会在timer执行动作完毕后,顺着这个路径离开node节点。所以在上面这个例子里,尽管定义了repeat属性,action还是会只执行一次。
  action节点,可选,即timer节点在时间到时执行的动作,可以是任意action类型,包括script。注意与时间有关的两种action类型:create-timer 和 cancel-timer。其实一个timer节点在被引擎解释时就是被分解为create-timer 和 cancel-timer两个action,create-timer挂接到node-enter事件中,cancel-timer挂接到node-leave事件中。action节点最多只可以挂一个。
  说说整个过程:
  1、令牌进入节点catch crooks
  2、timer被触发(实际这时是在执行create-timer动作)
  3、3 business hours后 timer 事件触发
  4、定义的action被执行
  5、令牌顺着time-out-transition路径离开catch crooks节点
  6、cancel-timer动作被执行即timer终止(没有给repeat的机会)
  二、挂接到task节点
  <task-node name="Evaluate web order">
    <task swimlane="salesman">
      <timer duedate="20 seconds" repeat="10 seconds" cancel-event='task-start'>
        <action class="org.jbpm.websale.RemindActor">
          <swimlaneName>salesman</swimlaneName>
        </action>
      </timer>
    </task>
    <transition name="OK" to="salefork" />
    <transition name="More info needed" to="Fix web order data" />
  </task-node>

  与挂接到node 的区别是:这里可以定义一个属性cancel-event,可以指定那些事件可以终止timer的执行,默认是task-end。可以指定多个事件,以','分割,任一事件触发timer即终止。
  可以看到jbpm对任务实例和节点执行时的时间服务还是支持的很好,可以做出很多的扩展,但是它没有对整个流程实例本身提供更多的服务,比如说定时的流程启动和整个流程的时间控制等等。以及对精确时间点的支持还不够。


http://www.blogjava.net/ronghao 荣浩原创,转载请注明出处:)
分享到:
评论

相关推荐

    JBPM4工作流应用开始指南.rar

    深入jPDL和jBPM Service API 201 10.1 timer(定时器)能为您做什么 201 10.1.1 持续时间表达式 202 10.1.2 工作日历 202 10.1.3 定时转移 204 10.1.4 定时事件 205 10.1.5 工作日历定时 207 10.1.6 定时重复 208 ...

    揭秘jbpm流程引擎内核设计思想及构架

    流程引擎内核仅是“满足Process基本运行”的最微小结构,而整个引擎则要复杂很多,包括“状态存储”、“事件处理”、“组织适配”、“时间调度”、“消息服务”等等外围的服务性功能。引擎内核,仅包含最基本的对象...

    jbpm-lab:jBPM的实验材料

    如果你选择保住你的工作,你的任务是实现一个由 jBPM 支持的网络服务,用于这些一流的升级尝试。 老板希望在第 1 阶段看到一个简单的功能示例,然后在第 2 阶段做出实际决策。最后,在第 3 阶段,我们应该允许人工...

    droolsjbpm-integration:Drools和jBPM与接缝,弹簧,骆驼,..的集成

    开发Drools和jBPM 如果要构建或参与kiegroup项目,请。 通过正确设置您的开发环境,它将为您和我们节省大量时间。 它解决了可能会破坏您的开发的所有已知陷阱。 它还描述了所有准则,技巧和窍门。 如果您希望将拉取...

    基于jbpm与activiti的工作流平台技术架构介绍

    ◦工作日历管理 用于配置系统的工作流的待办事项的处理工作时间的计算处理 ◦动态脚本管理 用于为流程任务节点或事件中可被调用的逻辑计算代码 ◦短信收发管理 基于USB短信猫的短信模块或短信网关,以实现收发手机...

    droolsjbpm-tools:Maven,ant,eclipse,...插件以及对Drools,jBPM和Guvnor功能的支持

    开发Drools和jBPM 如果要构建或参与kiegroup项目,请。 通过正确设置您的开发环境,它将为您和我们节省大量时间。 它解决了可能会破坏您的开发的所有已知陷阱。 它还描述了所有准则,技巧和窍门。 如果您希望将...

    iuhyiuhkjh908u0980

    JBPM文档1、 加入JBPM支持包下载jbpm-starters-kit-3.1.4在项目的classPath中加入jbpm-3.1.4.jar、jbpm-identity-3.1.2.jar、jbpm-webapp-3.1.2.jar,jbpm-3.1.4.jar必须加入,是JBPM的核心包;bpm-identity-3.1.2....

    kie-wb-common:KIE工作台的共享屏幕,窗口小部件和服务

    开发Drools和jBPM 如果要构建或参与kiegroup项目,请。 通过正确设置您的开发环境,它将为您和我们节省大量时间。 它解决了可能会破坏您的开发的所有已知陷阱。 它还描述了所有准则,技巧和窍门。 如果您希望将拉取...

    Activiti工作流学习资料.zip

    Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务 流程图。 3.1:工作流引擎 ProcessEngine对象,这是...

    eqloan-wb:工作台基础对象存储

    开发Drools和jBPM 如果要构建或参与kiegroup项目,请。 通过正确设置您的开发环境,它将为您和我们节省大量时间。 它解决了可能会破坏您的开发的所有已知陷阱。 它还描述了所有准则,技巧和窍门。 如果您希望将拉取...

    Activiti6.0教程例子下载

    由于本人之前没有工作流及JBPM的相关基础,刚开始学习Activiti的时候可以说是无比痛苦的,根本不知道从何下手,这里也建议大家先进行工作流及BPMN2.0规范的学习,有了一定的基础后,再着手学习Activiti。 1.3.2. ...

    智能公厕开发方案.docx

    3G/4G(可选) 支持格式:MP4,WMV,AVI,FLV,RM.RMVB,JEPG,JBPM,PNG,GIF 额外功能:可显示天气,温度,万年历,时间等 使用广告云端管理软件通过广域网可管理多个广告终端,可远程控制在某一个终端上下载和播放指定...

    我国GIS软件的发展现状

    地理信息产业是信息产业的一个重要组成部分,地理信息技术是IT技术的一个重要分支,地理信息系统软件是一类特殊的计算机信息系统软件,它是以各类空间数据及其属性为基础,为各种应用目的服务的一类计算机信息系统。...

Global site tag (gtag.js) - Google Analytics