`
kayzhan
  • 浏览: 115635 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

jBPM4.0的用户指南(五-2)

    博客分类:
  • jbpm
阅读更多
续第5章 JPDL

5.2.3. exclusive唯一性

在多个选择中选择一条路径。也可以当做是一个决定。一个外挂活动拥有很多个向外的跳转。当一个流向到达一个外挂活动时,会自动评估并决定交给哪个向外的跳转。
5.2.3.1. exclusive唯一性条件

exclusive中会运行并判断每一个transition里的判断条件。当遇到一个嵌套条件是true或者没有设置判断条件的跳转,那么跳转就会被运行。

表 5.5. exclusive.transition.condition 属性
属性 类型 默认值 是否必须? 描述
expr expression required必须 将被运行的指定脚本
lang expression language 从第 7 章 Scripting脚本配置里得到的默认代表性语言(default-expression-language) 可选 指定expr中执行的脚本语言的种类

例子:
流程处理的唯一性条件例子

图 5.3. 流程处理的唯一性条件例子

<process name="ExclusiveConditions" xmlns="http://jbpm.org/4/jbpdl">
    <start>
        <transition to="evaluate document" />
    </start>

    <exclusive name="evaluate document">
        <transition to="submit document">
            <condition expr="#{content=="good"}" />
        </transition>
        <transition to="try again">
            <condition expr="#{content=="not so good"}">
        </transition>
        <transition to="give up" />
    </exclusive>

    <state name="submit document" />

    <state name="try again" />

    <state name="give up" />
</process>
               

5.2.3.2. exclusive expression唯一性表达式

exclusive表达式返回类型为字符串的向外跳转的名字。

表 5.6. 外挂属性

属性 类型 默认值 是否必须? 描述
expr expression required必须 将被运行的指定脚本
lang expression language 从第 7 章 Scripting脚本配置里得到的默认指定的脚本语言(default-expression-language) 可选 指定expr中执行的脚本语言的种类

例子:
流程处理的外挂代表例子

图 5.4. 流程处理的外挂代表例子

<process name="Poolcar" xmlns="http://jbpm.org/4/jpdl">
    <start>
        <transition to="How far?" />
    </start>

    <exclusive name="How far?" expr="#{distance}">
        <transition name="far" to="Big car" />
        <transition name="nearby" to="Small car" />
    </exclusive>

    <state name="Big car" />
    <state name="Small car" />
</process>
               

当你启动一个新的流程实例,代码如下:

Map<String,Object> variables =  new HashMap<String,Object>();
variables.put("distance","far");
Execution execution = executionService.startProcessInstanceByKey("Poolcar", variables);
               

然后流向会执行Big car
5.2.3.3. Exclusive handler唯一性管理

唯一性管理是继承了ExclusiveHandler接口的java类。唯一性管理负责向外跳转的选择。

public interface ExclusiveHandler{
    String select(OpenExecution execution);
}
               

这个handler被列为exclusive的子元素。

表 5.7. exclusive.handler 属性
属性 类型 默认值 是否必须? 描述
class classname required必须 handler的完整类名

下面是一个唯一性使用ExclusiveHandler的流程处理例子:
流程处理的exclusive管理例子

图 5.5. 流程处理的exclusive管理例子

<process name="Exclusive Handler" xmlns="http://jbpm.org/4/jpdl">
    <start>
        <transition to="exclusive document" />
    </start>

    <exclusive name="exclusive document">
        <handler class="org.jbpm.examples.exclusive.handler.ContentEvaluation" />
        <transition name="good" to="submit document" />
        <transition name="bad" to="try again" />
        <transition name="ugly" to="give up" />

        <state name="submit document" />

        <state name="try again" />

        <state name="give up" />
    </exclusive>
</process>
               

下面是ContentEvalation类:

public class ContentEvalation implement ExclusiveHandler {
    public select(OpenExecution execution) {
        String content = execution.getVariable("content");

        if (content.equals("you're great")) {
            return "good";
        } else if (content.equals("you gotta improve")) {
            return bad;
        }

        return "ugly";
    }
}
               

当你启动流程处理实例,并为变量content提供值you're great时,ContentEvalation就会返回字符串good,流程处理实例便会到达Submit document活动。
分享到:
评论

相关推荐

    jBPM4.0用户指南

    《jBPM4.0用户指南》:深入解析工作流引擎的核心功能与应用 一、jBPM4.0概述 jBPM4.0是一款先进的业务流程管理(Business Process Management,简称BPM)框架,它基于Java语言,提供了一套完整的解决方案,用于...

    jbpm4.0用户指南(中文版)

    这份"jbpm4.0用户指南(中文版)"为国内用户提供了一份详尽的使用手册,帮助理解并操作这个流程管理系统。 jbPM是一个开源的BPM解决方案,它提供了业务流程的建模、部署、执行和监控等功能。jbPM4.0版本在当时具有...

    JBPM4.0用户指南

    **JBPM4.0用户指南**是一份详细阐述如何使用JBPM(Java Business Process Management)4.0版本的文档,旨在帮助用户理解并有效利用这一流程管理工具。JBPM是一款开源的工作流管理系统,用于设计、执行和管理业务流程...

    jbpm4.0 中文手册-开发者指南

    本手册作为开发者指南,将深入探讨jbpm4.0的核心功能和使用方法,帮助开发者理解和实现流程自动化。 一、jbpm简介 jbpm是一款开源的BPM平台,它支持工作流定义模型(BPMN 2.0)、规则引擎(Drools)和事件处理等...

    jbpm4.0 中文手册-用户指南

    这个中文手册-用户指南旨在帮助中国用户更好地理解和使用jbpm4.0系统,尤其适合那些希望在不熟悉英文文档的情况下进行学习的开发者和管理员。 首先,我们要了解jbpm的核心概念。jbpm是一个开源的工作流引擎,它支持...

    JBPM4.0用户指南(中文)

    ### JBPM4.0 用户指南知识点详解 #### 一、JBPM概述 JBPM(Jakarta Business Process Model)是一款开源的业务流程管理(Business Process Management, BPM)引擎,由JBoss提供支持。它是一个可扩展且高度灵活的...

    工作流 jbpm4.0用户指南

    是我花了好久才找到的资源,开源工作流产品JBPM的开发指南,是本人在学习JPBM过程中所使用的资料,希望能给各位开发者在使用JBPM过程中带来帮助. 想要了解jbpm的不可多得的资料,也是我很多同事都看过的。从配置开发...

    jBPM-4.0中文开发指南

    **jBPM-4.0中文开发指南** jBPM(Java Business Process Management)是一款开源的工作流管理系统,专为业务流程自动化和管理设计。jBPM 4.0是其一个重要版本,它提供了丰富的功能,包括流程建模、执行、监控和集成...

    jBPM4.0 中文 用户指南.chm

    这个文件是可以打开的,下载后,把文件名中类似这样的:“%E7%94%A8%” 去掉,打开的时候,把“是否每次打开都询问”的勾取消掉。然后文件类容就出来了。

    jBPM4.0.rar_jbpm

    通过阅读“java, JBPM工作流开发指南”这样的资料,开发者可以深入理解jbPM的工作原理,学习如何配置和使用jbPM 4.0来构建和部署自己的工作流应用。这份指南通常会涵盖jbPM的基本概念、安装步骤、流程设计、任务管理...

    jBPM4.0中文用户指南.chm

    这个文件是可以打开的,收集了网上有关jBPM4、jBPM3的资料,是比较完整的

    JBPM4.0源码以及分析

    "doc"目录可能包含JBPM4.0的官方文档或开发者指南。这些文档对于理解JBPM的工作原理、API使用和最佳实践至关重要。它们可以帮助开发者快速上手,避免在实际项目中遇到不必要的困扰。 总结来说,JBPM4.0通过PVM和...

    jBPM4.0中文文档.pdf

    总的来说,这份"jbPM 4.0中文文档.pdf"为学习和使用jbPM 提供了全面的指南,无论你是初学者还是有经验的开发者,都能从中受益。通过深入阅读,你可以了解到jbPM 如何帮助你构建灵活、可扩展的业务流程管理系统,提升...

    jBPM-4.0DeveloperGuide.rar_jbpm

    **jbPM 4.0 开发指南** jbPM(Java Business Process Management)是一个开源的工作流管理系统,用于在Java环境中执行业务流程。jbPM 4.0是该框架的一个重要版本,它提供了强大的流程建模、执行和监控能力,旨在...

    jBPM4用户指南入门教程

    **jBPM4用户指南入门教程** jBPM4是一个基于Java的企业级工作流管理系统,它为业务流程管理(BPM)提供了全面的解决方案。本教程将引导您逐步了解如何安装配置、使用流程设计器、部署业务归档以及利用服务和jpdl...

Global site tag (gtag.js) - Google Analytics