Camunda入门教程

Camunda7 流程引擎

1.什么是流程引擎

流程引擎是一种软件工具,可以用来自动执行和管理业务流程。它以可视化的流程图作为工作流程的基础,根据可视化流程图中定义的活动、任务和角色来执行和管理活动任务。

2.流程引擎功能

一.可视化:流程引擎可以将业务流程以可视化的方式呈现,更清晰地表明流程的步骤、责任和顺序,极大地提高流程的清晰度,使得管理者和参与者能够更加清楚的了解及控制流程的变化。
二.自动执行:流程引擎能够按照程序自动执行,可以根据流程定义来执行下一步任务,无需人工干预。
三.实时监控:可以实时监控流程执行情况,以及识别可能出现异常情况,及时采取有效措施。
四.内容管理:支持用户以流程图的形式管理和实践业务流程,可以为业务流程设置准入条件、流程参与者等,帮助控制和改善流程执行效率。
五.报表统计:流程引擎可以根据当前流程执行情况,生成报表进行分析和统计,更有效的优化流程,提升流程执行效率。

3.Camunda7

Camunda 是一种基于java的框架,三大核心功能:
BPMN:工作流和过程自动化
CMMN:案例管理
DMN:业务决策管理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.案例

1.先下載Camunda run
https://camunda.com/download/platform-7/
双击启动就行,start.bat
在这里插入图片描述

2.下载Camunda modeler
https://camunda.com/download/modeler/
然后编辑一个demo流程

在这里插入图片描述
打开右边栏目是Toogle Properties Panel
在这里插入图片描述

在这里插入图片描述

3.idea启动一下
建立一个maven的项目
添加依赖

<dependencies>
        <dependency>
            <groupId>org.camunda.bpm</groupId>
            <artifactId>camunda-external-task-client</artifactId>
            <version>7.20.0</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
    </dependencies>```
添加主类代码

package org.example;

import java.util.logging.Logger;
import java.awt.Desktop;
import java.net.URI;

import org.camunda.bpm.client.ExternalTaskClient;

class ChargeCardWorker {
private final static Logger LOGGER = Logger.getLogger(ChargeCardWorker.class.getName());

public static void main(String[] args) {
    ExternalTaskClient client = ExternalTaskClient.create()
            .baseUrl("http://localhost:8080/engine-rest")
            .asyncResponseTimeout(10000) // 长轮询超时时间
            .build();

    // 订阅指定的外部任务
    client.subscribe("charge-card")
            .lockDuration(1000) // 默认锁定时间为20秒,这里修改为1秒
            .handler((externalTask, externalTaskService) -> {
                // 将您的业务逻辑写在这

                // 获取流程变量
                String item = (String) externalTask.getVariable("item");
                Long amount = (Long) externalTask.getVariable("amount");

                LOGGER.info("Charging credit card with an amount of '" + amount + "'€ for the item '" + item + "'...");

                try {
                    Desktop.getDesktop().browse(new URI("https://docs.camunda.org/get-started/quick-start/complete"));
                } catch (Exception e) {
                    e.printStackTrace();
                }

                // 完成任务
                externalTaskService.complete(externalTask);
            })
            .open();
}

}

启动成功标志
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/940ff437a1644474b02dadf61e1290df.png)
4.部署项目
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/90272b3e1c5142c69e509d802b36bd12.png)
部署成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c443b4705a1048bda02a618f183d49f3.png)
还可以从 http://localhost:8080/camunda/app/cockpit/default/#/processes 使用账号 demo / demo 登录 ,可以看到刚部署的流程显示出来了
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/51c0351fb79b47e681ad27cd05ebf0ce.png)
发起流程,postman测试
url:http://localhost:8080/engine-rest/process-definition/key/payment-retrieval/start
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/28eab978c20740b49c1b5d0da23735ad.png)
代码:
{
	"variables": {
		"amount": {
			"value":555,
			"type":"long"
		},
		"item": {
			"value": "item-djj"
		}
	}
}

成功的情况:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0616a1c76fe6482daad1475f181e9880.png)
5.部署人工任务
先添加三个属性
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e8e11b2dbdef4f63a36a14d362425b6a.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d0d358fe38d5430c93a843824065546f.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/082462b5febc43838246b60f0f89d44a.png)

然后deploy上传后测试一下,在localhost:8080端口测试。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9ae32f49c22440d5b198a7dc019b996d.png)

在Tasklist里面Start process
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1abc0269df25429b93569a29aabc8779.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5ef9eaa5eecf485ca72290cc74e8f739.png)
然后在tasks里面可以看到表单
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/40eac0e3f18d45209d04b70f45a4d02c.png)
点击Diagram中高亮的为当前进行的节点
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a6bda358741f460396a96e83e47d0790.png)
6.添加网关
接下来,我们将为流程带来一些变化,仅在金额足够大的时候进行人工审核,添加网关
使用排他网关,添加分支,只有在金额足够大时,进行人工审核
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e96c467e7c0a4fd382600ee244d7eca1.png)
为分支编写属性:${amount<1000}
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/aeddd51973d54850ac5a7f764821ca13.png)

第二个属性
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b4f9ca1a089444fb84fd1936024c7bdd.png)
第三个属性
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f920875d7db049d1b01c655e5b02d8b9.png)
第四个属性:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/29c09cc298014d12b6913df74f3c7db3.png)
delopy后Postman测试一下:


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

.Net Core项目在linux部署实战 1.sdk下载 2.环境变量配置/ect/profile 3.运行

1)下载.net core sdk https://download.visualstudio.microsoft.com/download/pr/01292c7c-a1ec-4957-90fc-3f6a2a1e5edc/025e84c4d9bd4aeb003d4f07b42e9159/dotnet-sdk-6.0.418-linux-x64.tar.gz 2)配置下环境变量 step1: // 解压到指定目录 mkdir -p $HOME/dotnet &…

Linux命令之pwd,cd,ls,cat,more,less,head,tail文件目录类命令的使用

一、实验题 1、在桌面打开终端&#xff0c;查看当前目录 2、改变目录位置至当前目录的父目录 3、改变目录位置至用户的家目录 4、利用绝对路径改变目录到/usr/local目录下 5、列出当前目录下的文件及目录 6、列出包括以“.”开始的隐藏文件在内的所有文件 7、列出当前目录下所…

网络原理--http

目录 一、 DNS&#xff08;应用层协议&#xff09; 1、域名概念 2、维护ip地址和域名之间的映射&#xff08;域名解析系统&#xff09; 3、DNS系统&#xff08;服务器&#xff09; 4、如何解决DNS服务器高并发问题 二、HTTP&#xff08;应用层协议&#xff09; 1、htt…

postman 简单测试(二)

接着上一节 https://blog.csdn.net/myy2012/article/details/135616719 1.Tests的简单使用&#xff08;后置处理器&#xff09; 具体的截图是每一步操作后得来的&#xff0c;记录方便自己以后查阅&#xff0c;也希望能帮助到有缘人。 1.1 把返回值存入到环境变量中&#xff…

Vue:将以往的JQ页面,重构成Vue组件页面(组件化编码大致流程)

一、实现静态组件 组件要按照功能点拆分&#xff0c;命名不要与HTML元素冲突。 1、根据UI提供的原型图&#xff0c;进行结构设计&#xff0c;结构设计的粒度以是否方便给组件起名字为依据。并梳理好对应组件的层级依赖关系。 2、设计好结构后&#xff0c;开始写对应的组件&am…

单片机常用的电子元器件基础

参考自B站该视频 1&#xff1a;电阻 贴片电阻的读取方式 四环电阻 2&#xff1a;电容 其他的电子元器件

竞赛保研 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉

文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习多目标跟踪 …

[足式机器人]Part2 Dr. CAN学习笔记- Kalman Filter卡尔曼滤波器Ch05-1+2

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记 - Kalman Filter卡尔曼滤波器 Ch05-12 1. Recursive Algirithm 递归算法2. Data Fusion 数据融合Covarince Matrix协方差矩阵State Space状态空间方程 Observation观测器 1. Recursive Algirithm…

【STM32】| 02——常用外设 | I2C

系列文章目录 【STM32】| 01——常用外设 | USART 【STM32】| 02——常用外设 | I2C 失败了也挺可爱&#xff0c;成功了就超帅。 文章目录 前言1. 简介2. I2C协议2.1 I2C物理连接2.2 I2C通信协议2.2.1 起始和停止信号2.2.2 数据有效性2.2.3 数据传输格式2.2.4 从机地址/数据方…

Node.js基础知识点(四)

本节介绍一下最简单的http服务 一.http 可以使用Node 非常轻松的构建一个web服务器&#xff0c;在 Node 中专门提供了一个核心模块&#xff1a;http http 这个模块的就可以帮你创建编写服务器。 1. 加载 http 核心模块 var http require(http) 2. 使用 http.createServe…

C语言——编译和链接

&#xff08;图片由AI生成&#xff09; 0.前言 C语言是最受欢迎的编程语言之一&#xff0c;以其接近硬件的能力和高效性而闻名。理解C语言的编译和链接过程对于深入了解其运行原理至关重要。本文将详细介绍C语言的翻译环境和运行环境&#xff0c;重点关注编译和链接的各个阶段…

C语言——小细节和小知识9

一、大小端字节序 1、介绍 在计算机系统中&#xff0c;大小端&#xff08;Endianness&#xff09;是指多字节数据的存储和读取顺序。它是数据在内存中如何排列的问题&#xff0c;特别是与字节顺序相关。C语言中的数据存储大小端字节序指的是在内存中存储的多字节数据类型&…

蓝桥杯练习题-穷举模拟

&#x1f4d1;前言 本文主要是【穷举模拟】——蓝桥杯练习题-穷举模拟的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;…

人工智能 | ChatGPT 和文心一言哪个更好用?

github&#xff1a;https://github.com/MichaelBeechan CSDN&#xff1a;https://blog.csdn.net/u011344545 ChatGPT 和文心一言哪个更好用&#xff1f; ChatGPT 和文心一言哪个更好用&#xff1f;方向一&#xff1a;ChatGPT主要优势局限性和挑战如何克服chatGPT的局限性和挑战…

Docker Consul详解与部署示例

目录 Consul构成 Docker Consul 概述 Raft算法 服务注册与发现 健康检查 Key/Value存储 多数据中心 部署模式 consul-template守护进程 registrator容器 consul服务部署&#xff08;192.168.41.31&#xff09; 环境准备 搭建Consul服务 查看集群信息 registrato…

P9847 [ICPC2021 Nanjing R] Crystalfly 题解 (SPJ)

[ICPC2021 Nanjing R] Crystalfly 传送门&#xff1f; 题面翻译 给定一个 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le10^5) n(1≤n≤105) 个节点的树&#xff0c;每个节点上有 a i a_i ai​ 只晶蝶。派蒙最初在 1 1 1 号节点&#xff0c;并获得 1 1 1 号节点的所有晶蝶&#xf…

信驰达科技参与《汽车玻璃集成UWB数字钥匙发展研究白皮书》编制工作

为进一步探索汽车数字钥匙技术路线及开发思路&#xff0c;中国智能网联汽车产业创新联盟&#xff08;CAICV&#xff09;、福耀玻璃工业集团股份有限公司联合发起了《汽车玻璃集成UWB数字钥匙发展研究白皮书》研究工作。 2023年12月20日&#xff0c;由中国智能网联汽车产业创新…

【链路层】点对点协议 PPP

目录 1、PPP协议的特点 2、PPP协议的组成和帧格式 3、PPP协议的工作状态 目前使用得最广泛的数据链路层协议是点对点协议PPP(Point-to-Point Protocol)。 1、PPP协议的特点 我们知道&#xff0c;互联网用户通常都要连接到某个 ISP 才能接入到互联网。PPP 协议就是用户计算机…

企业网站建站源码系统:Thinkphp5内核企业网站建站模板源码 带完整的安装代码包以及搭建教程

随着互联网的快速发展&#xff0c;企业对于网站的需求日益增强。为了满足这一市场需求&#xff0c;小编给大家分享一款基于Thinkphp5内核的企业网站建站源码系统。该系统旨在为企业提供一套功能强大、易于使用的网站建设解决方案&#xff0c;帮助企业快速搭建自己的官方网站&am…

JMeter笔记(三)

个人学习笔记&#xff08;整理不易&#xff0c;有帮助点个赞&#xff09; 笔记目录&#xff1a;学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 目录 一&#xff1a;参数化方法 1&#xff09;用户定义的变量 2&#xff09;函数助手 3&#xff09;…