Activiti开启流程实例

开始绘流程图,首先右击鼠标可以看到一下图标,都有相对应的意思

画好一个简易的流程过后,可以看到xml文件中已经有了

右击生成png格式的图片

图片点击后就是一个视图的效果

将流程文件部署

@Test
public void testDeploy() {//1.创建流程引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取流程存储服务组件RepositoryService repositoryService = processEngine.getRepositoryService();//创建部署对象,配置部署信息Deployment deployment = repositoryService.createDeployment().name("请假流程").addClasspathResource("bpmn/leave.bpmn20.xml").addClasspathResource("bpmn/diagram.png").deploy();System.out.println("部署成功");System.out.println(deployment.getId());System.out.println(deployment.getName());System.out.println(deployment.getKey());processEngine.close();
}

执行成功后可以看到数据库里有相应的信息

部署成功后,我们就可以开始使用啦,老样子还是先创建个流程实例然后从里面获取运行管理类

// 启动流程实例
@Test
public void testStartProcess() {// 1.创建引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();// 2.从中获取RuntimeServiceRuntimeService runtimeService = processEngine.getRuntimeService();// 3.根据流程定义的id启动流程ProcessInstance instance = runtimeService.startProcessInstanceByKey("leave");// 4.输出内容System.out.println("流程定义id = " + instance.getProcessDefinitionId());System.out.println("流程实例id = " + instance.getId());
}

这里注意到Assignee是几个问号的形式,没错别怀疑这是乱码了,因为先前的Name属性中不能输入中文噢

然后开始审批任务

// 完成任务
@Test
public void testCompletTask() {// 还是流程引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();// 获取任务服务组件TaskService taskService = processEngine.getTaskService();//获取李勃蚊在leave中对应的任务 我们已知只有一个任务 可使用singleResult获取一个结果集Task task = taskService.createTaskQuery().processDefinitionKey("leave") // 流程的key.taskAssignee("李勃蚊")   // 要查询的负责人.singleResult();// 因为可能有多个待办  所以是一个集合System.out.println("流程实例ID:" + task.getProcessInstanceId());System.out.println("任务ID:" + task.getId());System.out.println("任务负责人:" + task.getAssignee());System.out.println("任务名称:" + task.getName());taskService.complete(task.getId());
}

兰小鹏的审核也是一样的

// 完成任务
@Test
public void testCompletTask2() {// 还是流程引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();// 获取任务服务组件TaskService taskService = processEngine.getTaskService();//获取李勃蚊在leave中对应的任务 我们已知只有一个任务 可使用singleResult获取一个结果集Task task = taskService.createTaskQuery().processDefinitionKey("leave") // 流程的key.taskAssignee("兰小鹏")   // 要查询的负责人.singleResult();// 因为可能有多个待办  所以是一个集合System.out.println("流程实例ID:" + task.getProcessInstanceId());System.out.println("任务ID:" + task.getId());System.out.println("任务负责人:" + task.getAssignee());System.out.println("任务名称:" + task.getName());taskService.complete(task.getId());
}

执行完之后去看历史记录

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

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

相关文章

ECharts柱状图-柱图42,附视频讲解与代码下载

引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供…

解锁移动设备管理新技能-RayLink远程控制手机

在这个忙碌的现代社会中,智能手机已经成为我们生活的重要组成部分,它们不再仅仅是通讯工具,而是我们日常生活的核心。随着这种变化,远程控制手机的技术应运而生,为我们开启了一个全新的移动设备管理时代。今天&#xf…

基于DockerCompose搭建Redis主从哨兵模式

linux目录结构 内网配置 哨兵配置文件如下,创建3个哨兵配置文件 # sentinel26379.conf sentinel26380.conf sentinel26381.conf 内容如下 protected-mode no sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 60000 s…

c++--------c++概念

定义与起源 C是一种高级编程语言,它是C语言的扩展。C由Bjarne Stroustrup在20世纪80年代初开发,最初被称为“C with Classes”。其设计目的是在保持C语言高效性的同时,增加面向对象编程(OOP)的特性。例如,…

【优选算法---归并排序衍生题目】剑指offer51---数组中的逆序对、计算右侧小于当前元素的个数、翻转对

一、剑指offer51---数组中的逆序对 题目链接: LCR 170. 交易逆序对的总数 - 力扣(LeetCode) 题目介绍: 在数组中的两个数字,如果前面⼀个数字大于后面的数字,则这两个数字组成⼀个逆序对。输入一个数组&#xff0c…

C++算法第十二天

本篇文章,我们继续学习动态规划 第一题 题目链接 面试题 17.16. 按摩师 - 力扣(LeetCode) 题目解析 代码原理 代码编写 细节问题处理 这里的细节问题就是当n 0时的这种情况 完整源代码 class Solution { public: int massage(vector&…

java全栈day20--Web后端实战(Mybatis基础2)

一、Mybatis基础 1.1辅助配置 配置 SQL 提示。 默认在 mybatis 中编写 SQL 语句是不识别的。可以做如下配置: 现在就有sql提示了 新的问题 产生原因: Idea 和数据库没有建立连接,不识别表信息 解决方式:在 Idea 中配置 MySQL 数…

2023年厦门市第30届小学生C++信息学竞赛复赛上机操作题(三、2023C. 太空旅行(travel))

#include <bits/stdc.h>using namespace std;struct Ship {int u; // 从地球到火星的时间int v; // 从火星到天王星的时间 };// 自定义比较函数 bool cmp(const Ship &a, const Ship &b) {return a.u max(a.v, b.u) b.v < b.u max(b.v, a.u) a.v; }int ma…

使用qemu搭建armv7嵌入式开发环境

目录 目录 1 概述 2 环境准备 2.1 vexpress系列开发板介绍 2.2 安装工具 2.2.1 安装交叉工具链 2.2.2 安装qemu 2.2.3 安装其他工具 3 启动uboot 3.1 uboot下载与编译 3.1.1 下载 3.1.2 编译 3.2 使用qemu启动uboot 4 启动kernel 4.1 下载和编译kernel 4.1.1 下…

CSDN外链失效3:

参考我之前的博客&#xff1a; 外链失效博客1&#xff1a;随想笔记1&#xff1a;CSDN写博客经常崩溃&#xff0c;遇到外链图片转存失败怎么办_csdn外链图片转存失败-CSDN博客 外链失效博客2&#xff1a;网络随想2&#xff1a;转语雀_md格式转语雀lake格式-CSDN博客 markdown…

《LangChain大模型应用开发》书籍分享

前言 ChatGPT和OpenAI开发的GPT模型不仅改变了我们的写作和研究方式&#xff0c;还改变了我们处理信息的方式。《LangChain大模型应用开发》讨论了聊天模式下的LLM的运作、能力和局限性&#xff0c;包括ChatGPT和Gemini。书中通过一系列实际例子演示了如何使用LangChain框架构…

Jenkins持续集成部署——jenkins安装

前言 Jenkins 是一个开源的自动化服务器&#xff0c;主要用于持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;。它为软件开发团队提供了一个易于使用的平台来自动化构建、测试和部署应用程序的过程。 Jenkins 主要功能 1. 持续集成 (CI) 自动构建…

飞牛 fnos 使用docker部署 bili-sync:打造自动化 B 站资源下载器,与主流媒体服务器无缝衔接

Bili-Sync介绍及相关部署操作 一、Bili-Sync概述 Bili-Sync是哔哩哔哩内容同步助手&#xff0c;它能借助用户提供的登录信息&#xff0c;定期对用户的视频合集以及个人收藏进行遍历&#xff0c;找出还没在本地保存的新内容&#xff0c;然后自动下载到本地存储&#xff0c;以此…

Idean 处理一个项目引用另外一个项目jar 但jar版本低的问题

当在idea中一个module A引用另外一个项目B的jar&#xff0c;但是从私服仓库中拉下的jar版本比较低导致编译不通过时&#xff0c;可以把项目B拉下来&#xff0c;重新编译打包jar跟新到本地的仓库 选中右边菜单的Maven 选中对应的项目B-》Lifecycle->双击 install也可以按住c…

【day11】面向对象编程进阶(继承)

概述 本文深入探讨面向对象编程的核心概念&#xff0c;包括继承、方法重写、this和super关键字的使用&#xff0c;以及抽象类和方法的定义与实现。通过本文的学习&#xff0c;你将能够&#xff1a; 理解继承的优势。掌握继承的使用方法。了解继承后成员变量和成员方法的访问特…

高效准确的PDF解析工具,赋能企业非结构化数据治理

目录 准确性高&#xff1a;还原复杂版面元素 使用便捷&#xff1a;灵活适配场景 贴心服务&#xff1a;快速响应机制 在数据为王的时代浪潮中&#xff0c;企业数据治理已成为组织优化运营、提高竞争力的关键。随着数字化进程的加速&#xff0c;企业所积累的数据量呈爆炸式增长…

Unity全局雾效

1、全局雾效是什么 全局雾效&#xff08;Global Fog&#xff09;是一种视觉效果&#xff0c;用于在3D场景中模拟大气中的雾气对远处物体的遮挡 它通过在场景中加入雾的效果&#xff0c;使得距离摄像机较远的物体看起来逐渐被雾气覆盖&#xff0c;从而创造出一种朦胧、模糊的视…

解决Apache/2.4.39 (Win64) PHP/7.2.18 Server at localhost Port 80问题

配置一下apache里面的配置文件&#xff1a;httpd.conf 和 httpd.vhosts.conf httpd.conf httpd-vhosts.conf 重启服务 展示&#xff1a; 浏览器中中文乱码问题&#xff1a;

【Spring事务】深入浅出Spring事务从原理到源码

什么是事务 保证业务操作完整性的一种数据库机制 &#xff08;driver 驱动&#xff09;事务特定 ACID A 原子性 &#xff08;多次操作 要不一起成功 要不一起失败 &#xff08;部分失败 savepoint&#xff09;&#xff09; C 一致性 &#xff08;事务开始时数据状态&#xff0c…

MFC/C++学习系列之简单记录13

MFC/C学习系列之简单记录13 前言memsetList Control代码注意 总结 前言 今天记录一下memset和List control 的使用吧&#xff01; memset memset通常在初始化变量或清空内存区域的时候使用&#xff0c;可以对变量设定特定的值。 使用&#xff1a; 头文件&#xff1a; C&#…