Camunda Modeler流程设计器

news/2024/9/16 23:30:10/文章来源:https://www.cnblogs.com/zhaodalei/p/18313136

1、介绍

任何可执行流程都需要预先设计和配置业务流程模型和BPMN图,BPMN图可以让使用者更容易理解流程的结构,Camunda Modeler是一个可视化设计和实现BPMN图表的工具。

下面是官方使用文档:1、Modeler中绘制BPMN介绍

2、桌面版Modeler使用介绍

2、相关概念

可以将BPMN的绘制类比于我们常规意义上的流程图,例如:开始和结束节点、节点之间的连接线(有向箭头)、处理框、决策判断框,如下是一个简易的常规流程图

下面将BPMN中的概念和上述常规的流程图类比,方便理解,如下给一个和上面流程图对应的bpmn图,如下:

2.1、顺序流(Sequence flow)

顺序流其实就是类比于上面的有向箭头,表示从一个节点流向另一个节点。如下图红框下的箭头线段表示顺序流,从开始节点流向用户任务节点。

在bpmn文件中,顺序流有唯一标识,sourceRef记录了源节点,targetRef记录了目的节点,如下图:

2.2、用户任务(User task)

Bpmn中定义了很多种任务,本处只说明用户任务,更多的任务类型参考官方介绍:BPMN tasks

用户任务顾名思义是需要人来参与完成的任务,当一个流程到达一个用户任务,将会创建一个用户任务实例,流程将在此停止,当用户处理完成该任务,流程才会继续向下进行。

在Modeler画布上拖拽一个任务控件,可以选择该任务的类型,User task表示用户任务,如下图:

在bpmn文件中,每一个用户任务存在一个唯一id,camunda中可以指定任务处理人(assignee),其中incoming表示流入的顺序流(流入的箭头),outgoing表示流出的顺序流(流出的箭头),如下图:

2.3、服务任务(Service task)

服务任务不需要人员来进行处理,例如利用服务节点来做统计或者其他可以由程序处理的任务,流程到达服务任务后会在此停止,等待服务任务绑定的作业处理完成。

可以在右侧的Implementation配置对应实现作业逻辑的实现类或者方法,如下:

在bpmn文件中,每一个服务任务存在一个唯一id,camunda:class表示任务的实现方式,其中incoming表示流入的顺序流(流入的箭头),outgoing表示流出的顺序流(流出的箭头),如下图:

2.4、启动事件(Start event)

如常规流程图中的开始节点一样,bpmn中一般需要一个启动事件,作为流程的起始,事件分为很多类,如:空白启动事件、结束事件、消息启动事件等等,详细可以查看官方文档介绍:None events | Camunda 8 Docs

如果是需要手动点击表单按钮的方式发起流程,一般都需要一个空白的启动事件(None start events),空白启动事件在一个流程中最多只能存在一个。

在Modeler画布上拖拽一个事件控件,可以选择该事件的类型,Start event表示空白启动事件,如下图:

bnpm文件中,启动事件存在唯一id,outgoing表示流出的顺序流,如下:

2.5、结束事件(End event)

单独把结束事件拎出来,是为了符合我们常规的流程图绘制,有开始有结束,但是结束事件在一个流程中不是必须的,同时一个流程或者子流程可以有多个结束事件。

当不存在结束事件时,当前的执行路径结束,则流程完成,如下是一个存在结束事件的流程和不存在结束事件的流程:

bnpm文件中,结束事件存在唯一id,incoming表示流入的顺序流,一个节点可以存在多条流入的顺序流和流出的顺序流,如下:

2.6、互斥网关(Exclusive gateway)

BPMN中的网关存在多种类型,例如:并行网关、包含网关、复杂网关和基于事件的网关。

并行网关允许将流分为多条流同时进行,也可以将多条流汇合,直到接收到所有并行流的处理结果,流程才会往下进行;包含网关可以将一条流分为多条流,每条分开的流都需要指定流入条件,满足条件则流入。详细介绍查看官方文档:BPMN gateways

常规流程图中的判断条件就相当于BPMN中的互斥网关,就是根据判断条件选择一条分支进行,分支之间彼此互斥,下面以互斥网关进行举例。

如下是bpmn图中的互斥网关,判断条件于网关流出的顺序流上配置,选择条件类型,然后编写条件表达式,如下:

 

这样在流程达到网关时,会从流程变量获取表达式中的参数值,结合表达式进行判断,满足条件则进入分支路径。

3、配置说明

下面主要是针对上一节的各个元素,右侧的配置项作说明,有一些配置是大部分元素都拥有的,有一些是特定元素才有的配置。

如下的配置项基本是大部分元素都有的配置。

3.1、通用信息

所有的元素都有这个通用信息的配置,就是名称和ID,ID用于在BPMN文件中,唯一标识该元素,一般自动生成,也可以自行修改。

3.2、执行监听器

如下是执行监听器的配置,除了顺序流节点的event Type是take,其他节点(事件、任务、网关等等)都有start和end两种事件类型,对应的就是执行前、执行后,如果在节点执行前后,期望做一些操作,则可以使用执行监听器。详细的官网文档如下:Execution listeners | Camunda 8 Docs

监听器支持的实现方式有多种,比如:Java类、EL表达式、委托表达式和外部脚本等,和下面的用户任务监听器的实现方式一样。详细的代码实现查看:Camunda中的Execution listeners和Task listeners

3.3、用户任务

用户任务元素有两个特有的配置,分别是任务监听器(Task Listenners)和任务处理人(User assignment)

3.3.1、任务处理人

用户任务肯定需要用户处理,这一项就是配置和任务处理人相关的参数,如下:

Assignee:配置任务的处理人

Candidate groups:配置任务的候选处理用户组,camunda里面,用户是可以属于用户组的

candidate users:配置任务的候选处理人列表,即可以配置多个候选处理用户,用逗号隔开。可以用于任务由多个用户抢占式处理,即候选用户都可以领取这个任务,谁领取了谁处理,其他人就看到了。

Due date:任务到期日期,支持设置流程变量和固定格式的日期字符串,如下面图的参数说明。

Follow up date:任务跟进日期,设置同Due date。日期参数内部API支持通过参数筛选过滤用户任务,可以做一些类似于任务提醒的事情。

3.3.2、任务监听器

用户任务独有的任务监听器,有更丰富的事件类型,有:创建任务、设置处理人、完成任务、删除任务、更新任务、任务处理超时,可以更灵活的进行围绕用户任务的自定义处理,例如通知、记录等等操作,其和服务任务一样支持多种监听器类型。详细的代码实现查看:Camunda中的Execution listeners和Task listeners

3.4、服务任务

服务任务有一个特有的配置,就是服务任务的实现,如下:

其type支持多种选项,例如外部任务、Java类、EL表达式、委托表达式和连接器,特别说明一下External(外部任务)和Connector(连接器),两者和其余的几种不一样,Java类、EL表达式、委托表达式都是在和camunda引擎同一个服务下编写代码。

External(外部任务):有另外一个外部服务主动调用camunda接口,其定时的查询camunda引擎指定topic下的任务,处理完成后,调用引擎接口告知已完成。

Connector(连接器):camunda主动调用外部服务的接口,但是这种接口可以通过camunda引擎内置的连接器插件处理,例如http connector,通过配置外部http接口的url和method以及参数,调用接口,并支持通过表达式处理接口的返回值,属于非代码实现。

详细的代码实现查看:Camunda中的Execution listeners和Task listeners

3.5、表单配置

所有和用户处理相关的元素都可以用到表单配置,配置表单的目的就是为了和用户操作,例如空白启动事件和用户任务就支持配置表单。如下就是一个表单配置,使用camunda的web页面处理用户任务时,就可以看到配置的表单,Label就是显示给用户看的文字,type表示用户的这输入值是什么类型。

用户处理任务时,看到的页面如下:

3.6、输入/输出参数

一般只有任务才会有输入和输出两个参数,例如上面的服务任务和用户任务,这个参数和下面的扩展属性类似,配置的参数可以在流程任务变量中获取到,区别在于这里配置的参数是任务的局部属性,只允许当前任务本身进行访问,可以与流程中同名的变量名同时存在,相互之间不受影响。可以查看这里的提问回复和解释:Inputs/Outputs parameters on camunda modeler, and interaction with that - Camunda 7 Topics - Camunda Forum

3.7、扩展属性

这里配置的就是流程变量,可以在整个流程中被所有节点获取和修改,可以在其中配置一些固定值,标识当前节点的属性,或者传入一下需要的值,或者流程中可能会用到的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/793735.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【工具推荐】KillWxapkg v2.4(最新版) - 自动化反编译微信小程序,小程序安全评估工具

工具介绍: 纯Golang实现,一个用于自动化反编译微信小程序的工具,小程序安全利器,自动解密,解包,可还原工程目录,支持微信开发者工具运行 下载链接: 链接:https://pan.quark.cn/s/aa5480be4bd5使用说明 工程结构还原 还原前还原后微信开发者工具运行看着就真的看着,不…

Agent(智能体)和 MetaGPT,一句话实现整个需求应用代码

本文介绍了大模型 Agent 定义、组成部分,并以 MetaGPT 多智能体为例,一句话完成贪吃蛇小游戏需求,以介绍整个智能体的工作流程……前面 2 篇文章,我们使用文生文、文生图和文生音频三个大模型共同实现了图文并茂的儿童绘本故事和绘本故事音频需求:第一篇 根据主题生成儿童…

html的表单和初始js

1.表单是html常用的一类,我们平时使用的收集账号密码填写信息都是表单,标签是form,含有属性action和method,action确定表单接受数据的地址,不写默认为网页本身.method有两种收集方式,"post"和"get",其中默认方式为get,但是get对接收信息的大小有限制,post没…

秋天到了是因为要做操

为两朵花找到了属于它们的色彩;前路漫漫,我会一个人走吗。灯笼迟早会消失,会结束。 我把它献给NR吧。

2024秋软件工程作业(第一次)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024/这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243这个作业的目标 对软件工程这门课的作业有一个初步的了解学号 1022021471.个人logo文生图任务 使用工具:Craiyon 设计理念:中…

【工具推荐】0x7eTeamTools v1.2(最新版) -全能的渗透测试工具,一键getshell

工具介绍: 0x7eTeamTools 是一个集成了多种渗透测试功能,javafx练习,JS接口提取,漏洞检测 的工具,旨在帮助用户进行高效、全面的网络安全测试。从基本的编码转换到复杂的空间测绘和漏洞检测,这款工具提供了全方位的功能支持。 下载链接: 链接:https://pan.quark.cn/s/8c426…

sekaiCTF-2024-pwn-nolibc解析

sekaiCTF 2024 nolibc 程序逆向 IDA反编译之后:全是没有符号表的函数。start函数就是主函数。然后发现一些类似于printf的函数也没有符号。 我们linux上运行程序可以确定,至少sub_1322("Welcome to String Storage!");这样的函数实现的功能就是类似于printf。 逆向…

【Java】爬取澳门区划信息

官网地址:https://macaostreets.iam.gov.mo/zh_mo/freguesiaindex.html大区部分是在页面展示的 点击发现并没有请求网络,所以数据是js中存在的 找到了展示街道方法,这一段: 使用大区id匹配上述变量的function showStreets(freguesia){var freguesiaStreets;switch(fregue…

『模拟赛』CSP-S模拟2

『模拟赛记录』CSP-S模拟2Rank 非常好数据,使我成为 Rank1(雾数据换源后的狂流——齐秦北风在吹着清冷的街道 街灯在拉开长长的影子 走过的路 想过的事 仿佛越来越远越来越长 越来越多越难以抛开 多少平淡日子以来的夜晚 你曾是我渴望拥有的企盼 太多分手的记忆 仿佛越来越远…

(更新至 8/25) 不是暑假的暑假的不是游记的游记

持续更新中 Day1 - 8/23 因为在学校里待不下去了,所以订的十一点多的火车,打算八点钟就出门 结果教练在家长群里发我们十二点放假,所以我爸怕我赶不上就帮忙改签到一点半了 你说的对,但是为什么改成卧铺了??? 因此因为xfg的莫名其妙原因,还是决定十点钟出来 那么十点钟…

在 Alt + Tab 列表中隐藏指定窗口

安装并启动 AlexanderPro/SmartContextMenu,然后在指定窗口上Ctrl + rightClick,在出现的菜单中勾选在 Alt + Tab 列表中隐藏即可。这个程序还提供了置顶、调整透明度等功能,挺实用。

4-网络安全体系与网络安全模型

4.1 网络安全体系概述 1)概念 一般而言,网络安全体系是网络安全保障系统的最高层概念抽象,是由各种网络安全单元按照一定的规则组成的,共同实现网络安全的目标。 网络安全体系包括法律法规政策文件、安全策略、组织管理、技术措施、标准规范、安全建设与运营、人员队伍、教…