首页 > 其他分享 >camunda快速入门(四):如何设计一个带条件分支的流程

camunda快速入门(四):如何设计一个带条件分支的流程

时间:2024-07-09 09:01:09浏览次数:10  
标签:网关 入门 流程 任务 使用 camunda 1000

在本节中,您将学习如何使用 BPMN 2.0 排他网关(Exclusive Gateways)使流程更加动态。

1、添加两个网关

我们想修改我们的流程,使其更具动态性。

为此,请在 Camunda Modeler 中打开该过程。

接下来,从 Modeler 的左侧菜单中,选择网关形状(菱形)并将其拖动到“开始事件”和“服务任务”之间的位置。根据需要再次使用创建空间工具。向下移动用户任务,并在其后添加另一个网关。最后,调整序列流,使模型如下所示:

IMG_257

现在也相应地命名新元素:

2-向进程添加网关 (1)

2、配置网关路由条件

接下来,打开属性面板,在画布上选择select the <1000 € 网关之后的序列流。这将更新属性面板中的选择。滚动到名为Condition的属性,并将其更改为Expression。然后输入 ${amount<1000}作为表达式。我们正在使用 Java 统一表达式语言( Java Unified Expression Language)来评估网关。

IMG_259

接下来,也更改其他序列流的表达式。

对于 >=1000 € 序列流,请使用表达式: ${amount>=1000}

4-向进程添加网关 (1)

对于Yes序列流,请使用表达式: ${approved}

IMG_261

对于No序列流,请使用表达式: ${!approved}

6-向进程添加网关 (1)

3、部署网关流程

流程设计完成后,使用 Camunda Modeler 中的Deploy按钮将更新的流程部署到 Camunda,记得要附加表单模型一起发布。

7-发布流程

4、处理任务,验证网关

转到任务列表 (http://localhost:8080/camunda/app/tasklist/) 并使用凭据“demo / demo”登录。点击 启动过程按钮启动付款检索流程的流程实例。接下来,使用表单为流程实例设置变量,正如我们在“用户任务”部分中所了解的那样。

8-启动流程

填写屏幕截图中所示的表单,并确保使用大于或等于 1000 的金额,以便查看用户任务批准付款。完成后,单击“开始”。

单击“所有任务”时,您应该会看到“Approve Payment(批准付款)”任务。

8-流程实例

在本快速入门中,我们以管理员用户身份登录 Tasklist,因此我们可以看到与流程关联的所有任务。但是,可以在任务列表中创建筛选器,以确定哪些用户可以根据用户授权以及其他条件查看哪些任务。

要处理该任务,请选择“表单”选项卡并选中“已批准”复选框,以便我们的付款检索获得批准。我们应该看到我们的工作线程将某些内容打印到控制台。

9-流程表单

您可以重复相同的步骤,创建一个数量小于 1000 的实例,以确认第一个网关是否正常工作。

5、源码和文档

在线体验系统:http://www.yunchengxc.com

源代码下载:https://github.com/camunda/camunda-get-started-quickstart/archive/Step-4.zip

官方文档地址:https://docs.camunda.org/get-started/quick-start/gateway/

接下来,让我们看一下如何将业务规则添加到流程中,使用决策自动化执行流程,初步了解camunda规则引擎的使用,DMN决策表的基本配置。

标签:网关,入门,流程,任务,使用,camunda,1000
From: https://www.cnblogs.com/hibpm/p/18291030

相关文章

  • camunda快速入门(五):DMN规则引擎如何使用
    在本节中,您将学习如何使用BPMN2.0业务规则任务和DMN1.3决策表将决策自动化添加到流程中。1、将业务规则任务添加到流程使用CamundaModeler打开PaymentRetrieval(付款检索)流程,然后单击“ApprovePayment(批准付款)”任务节点。在扳手按钮菜单中将活动类型更改为“Business......
  • C++入门(C语言过渡)
    文章目录前言一、C++关键字二、命名空间三、C++输入&输出四、缺省参数五、函数重载六、引用七、inline八、nullptr总结前言C++是一种通用的、高级的、静态类型的编程语言,它在20世纪80年代由丹尼斯·里奇创建的C语言基础上发展而来。以下是C++发展的一些重要里程碑。......
  • 简易Git命令行入门
    简易的Git命令行入门教程:1.Git全局设置:gitconfig--globaluser.name"demo"gitconfig--globaluser.email"[email protected]"2.创建git仓库:mkdirdemo1cddemo1gitinittouchREADME.mdgitaddREADME.mdgitcommit-m"firstcommit"git......
  • [QT入门]标签控件(QLabel)
    一、概述QLabel是Qt中用于显示文本或图像的控件。它通常被用作标签或显示静态信息的区域。QLabel控件是图形用户界面(GUI)开发中的基础元素之一,广泛应用于各种Qt应用程序中。QLabel控件的灵活性和易用性使其成为开发过程中不可或缺的一部分。二、QLabel控件的基本属性和方法1.......
  • Spring框架(入门到精通一)
    重生之我在CSDN学java第六天(Spring)文章目录重生之我在CSDN学java第六天(Spring)一、Spring的历史1.Spring发展历程2.Spring所属公司二、Spring介绍1.Spring模块介绍核心容器(CoreContainer)AOP及Instrumentation消息(messaging)数据访问/集成Web测试(Test)三、Sp......
  • 基础算法训练题单之排序(从入门到入土)——题解
    A.P1177【模板】排序三种方法:快速排序,归并排序,STL库的sort函数。法一、三:https://www.cnblogs.com/expect-999/p/17594345.html法二:https://www.cnblogs.com/expect-999/p/17599008.htmlB.P1923【深基9.例4】求第k小的数模板题目,直接对数组进行升序排序,如果数组从......
  • Python进阶入门之DataFrame
    引言接上一篇《关于Python中的series详解与应用》。本篇将详细介绍DataFrame,主要包括它的定义、创建方法、常用操作、应用场景以及与其他数据结构的比较。什么是DataFrameDataFrame是Pandas库中的一种二维标签数据结构,可以看作是一种带有行和列标签的表格数据。它既有行索引......
  • C++基础入门语法--代码基础框架
    文章内容概括:了解学习导入头文件、使用usingnamespacestd简化代码、创建程序基础框架、学习使用return(如需要直接复制请到文章最末尾)正文:1.学习导入头文件:    在Dev-C++编辑器中新建文件,在文件的第一行中输入:#include<iostream>    以上代码为C++导入......
  • 软件设计之Java入门视频(13)
    软件设计之Java入门视频(13)视频教程来自B站尚硅谷:尚硅谷Java入门视频教程,宋红康java基础视频相关文件资料(百度网盘)提取密码:8op3idea下载可以关注软件管家公众号学习内容:该视频共分为1-717部分本次内容涉及360-389在写代码时,总是需要来回切换界面来看代码要求......
  • 第二章 MATLAB入门知识 第四节
    ^乘方符号>>9^2 ans=81【+-*/和乘除运算优先级一样】【^比/优先级大】9^1/2 ans=4.5△最基础的MATLAB数值运算的函数:函数名功能计算结果abs求绝对值,也可以用来计算复数的模长abs(1.5) %1.5abs(-1.5) %1.5abs(3+4i) %5floor朝负无穷大四舍五入(......