Camunda入门教程

本文介绍了流程引擎的基本概念,重点阐述了Camunda7的功能,如可视化设计、自动执行、实时监控、内容管理和报表统计。并提供了Camunda7的下载、配置和实战示例,展示了如何使用它进行业务流程自动化和规则管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
    }
}

启动成功标志

在这里插入图片描述
4.部署项目
在这里插入图片描述
部署成功
在这里插入图片描述
还可以从 http://localhost:8080/camunda/app/cockpit/default/#/processes 使用账号 demo / demo 登录 ,可以看到刚部署的流程显示出来了
在这里插入图片描述
发起流程,postman测试
url:http://localhost:8080/engine-rest/process-definition/key/payment-retrieval/start
在这里插入图片描述
代码:

{
	"variables": {
		"amount": {
			"value":555,
			"type":"long"
		},
		"item": {
			"value": "item-djj"
		}
	}
}

成功的情况:
在这里插入图片描述
5.部署人工任务
先添加三个属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后deploy上传后测试一下,在localhost:8080端口测试。
在这里插入图片描述

在Tasklist里面Start process
在这里插入图片描述
在这里插入图片描述
然后在tasks里面可以看到表单
在这里插入图片描述
点击Diagram中高亮的为当前进行的节点
在这里插入图片描述
6.添加网关
接下来,我们将为流程带来一些变化,仅在金额足够大的时候进行人工审核,添加网关
使用排他网关,添加分支,只有在金额足够大时,进行人工审核
在这里插入图片描述
为分支编写属性:${amount<1000}
在这里插入图片描述

第二个属性
在这里插入图片描述
第三个属性
在这里插入图片描述
第四个属性:
在这里插入图片描述
delopy后Postman测试一下:
经过测试得到:
大于1000的,需要三个:這次要添加三个属性
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
小于1000的

7.删除一个流程
右击用户换成自己,然后点击Complete
在这里插入图片描述
8.自动化部署
将业务规则添加到流程中
打开 Camunda Modeler,点击 “批准付款”,在右面的扳手菜单中,将类型改为“Business Rule Task ”(业务规则任务)
在这里插入图片描述
保存部署到引擎中
新建一个DMN文件::::记住一定要Camunda7版本的,不然不配套了
在这里插入图片描述
在这里插入图片描述
出现问题;文件名字得是英文,引擎才能分析出来

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值