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.从中获取RuntimeService
    RuntimeService 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());
}

执行完之后去看历史记录

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

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

相关文章

12.19问答解析

概述 某中小型企业有四个部门,分别是市场部、行政部、研发部和工程部,请合理规划IP地址和VLAN,实现企业内部能够互联互通,同时要求市场部、行政部和工程部能够访问外网环境(要求使用OSPF协议),研发部不能访问外网环境…

完全离线使用,效率直接拉满

现在越来越多的人使用OCR软件来提高自己的工作效率,今天给大家推荐一款电脑端的文字识别工具,对比以往的软件来说,功能更加丰富全面。 Umi-OCR 美术、舞蹈、音乐 打开软件之后需要安装一下。 软件主要有截图OCR识别、批量OCR识别、批量文档识…

UITableView实现通讯录效果

// // TableViewIndexViewController.m // study2024 // // Created by figo zhu on 2024/12/22. //#import "TableViewIndexViewController.h" //实现协议UITableViewDelegate,UITableViewDataSource interface TableViewIndexViewController ()<UITableView…

【HarmonyOs学习日志(14)】计算机网络之域名系统DNS

域名系统DNS 域名系统DNS——从域名解析出IP地址 文章目录 域名系统DNS概述域名到IP地址的解析 互联网的域名结构命名标准 域名服务器域名的解析过程 概述 域名系统DNS&#xff08;Domain Name System&#xff09;是互联网使用的命名系统&#xff0c;用来把便于人们使用的机器…

贪心算法【Lecode_HOT100】

文章目录 1.买卖股票的最佳时机No.1212.跳跃游戏No.553.跳跃游戏IINo.454.划分字母区间No.763 1.买卖股票的最佳时机No.121 class Solution {public int maxProfit(int[] prices) {if (prices null || prices.length 0) {return 0;}// 初始化买入价格为最大值&#xff0c;最大…

【PCIe 总线及设备入门学习专栏 4 -- PCIe四种地址空间介绍】

文章目录 Overview1. 配置空间2. IO 空间3. Memory 空间BAR空间示例 -- 32bit内存地址空间请求BAR空间示例 -- 64bit内存地址空间请求 4. message空间 转自&#xff1a;cpu_arch 芯片架构笔记 2024年08月03日 22:32 上海 Overview PCIe架构定义了4种地址空间&#xff1a;配置…

SAP HCM 成本分配涉及的表

导读 成本分配:在HCM模块在SAP模块中&#xff0c;核心就是成分如何与财务无缝衔接&#xff0c;今天介绍的是关于成本中心在HR模块中涉及的几张表&#xff0c;对精细化管理有相应的帮助。涉及的信息类型有0014、0015、0267等 作者&#xff1a;vivi&#xff0c;来源&#xff1a;o…

Java模拟Mqtt客户端连接Mqtt Broker

Java模拟Mqtt客户端基本流程 引入Paho MQTT客户端库 <dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse.paho.mqttv5.client</artifactId><version>1.2.5</version> </dependency>设置mqtt配置数据 …

Day13 用Excel表体验梯度下降法

Day13 用Excel表体验梯度下降法 用所学公式创建Excel表 用Excel表体验梯度下降法 详见本Day文章顶部附带资源里的Excel表《梯度下降法》&#xff0c;可以对照表里的单元格公式进行理解&#xff0c;还可以多尝试几次不同的学习率 η \eta η来感受&#xff0c;只需要更改学习率…

rk3568之mpp开发笔记怎么实现mpp编码摄像头实时码流?

前言&#xff1a; 大家好&#xff0c;今天给大家分享的内容是在rk3568上&#xff0c;通过mpp来进行实时对摄像头imx415采集的码流数据进行编码成h264或者h265,后期文章&#xff0c;会开发测试一下通过rtsp推流出去&#xff0c;然后电脑端拉流&#xff0c;看一下整个环路的延迟多…

Keil5 STM32库函数的工程

库函数来间接的操作寄存器 条件编译&#xff0c;如果你定义了USE_STDPERIPH_DRIVER &#xff08;使用标准外设驱动&#xff09;这个字符串&#xff0c;stm32f10x_conf.h才有效

单片机上电后程序不运行怎么排查问题?

1.电源检查。使用电压表测量单片机的电源电压是否正常&#xff0c;确保电压在规定的范围内&#xff0c;如常见的5V。 2.复位检查。检查复位引脚的电压是否正常&#xff0c;在单片机接通电源时&#xff0c;复位引脚通常会有一个高电平&#xff0c;按下复位按钮时&#xff0c;复位…

Linux快速入门-Linux的常用命令

Linux的常用命令 1. Linux的终端与工作区1.1 终端概述1.2 切换终端 2. Shell语言解释器2.1 Shell概述 3. 用户登录与身份切换3.1 su 命令3.2 sudo 命令 4. 文件、目录操作命令4.1 pwd 命令4.2 cd 命令4.3 ls 命令4.3.1 ls 指令叠加使用 4.4 mkdir 命令4.5 rmdir 命令4.6 cp 命令…

一区牛顿-拉夫逊算法+分解+深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测

一区牛顿-拉夫逊算法分解深度学习&#xff01;VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测 目录 一区牛顿-拉夫逊算法分解深度学习&#xff01;VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.中科院一区…

机器学习04-为什么Relu函数

机器学习0-为什么Relu函数 文章目录 机器学习0-为什么Relu函数 [toc]1-手搓神经网络步骤总结2-为什么要用Relu函数3-进行L1正则化修改后的代码解释 4-进行L2正则化解释注意事项 5-Relu激活函数多有夸张1-细数Relu函数的5宗罪2-Relu函数5宗罪详述 6-那为什么要用这个Relu函数7-文…

RunCam WiFiLink连接手机图传测试

RunCam WiFiLink中文手册从这里下载 一、摄像头端 1.连接天线&#xff08;易忘&#xff09; 2.打开摄像头前面的盖子&#xff08;易忘&#xff09; 3.接上直流电源&#xff0c;红线为正&#xff0c;黑线为负 4.直流电源设置电压为14v&#xff0c;电流为3.15A&#xff0c; 通…

STM32之GPIO输出与输出

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 一.GPIO输入1.1GPIP简介1.2GPIO基本结构1.3GPIO位结构1.4GPIO的八种模式1.4.1浮空/上拉/下拉输入1.4.2 模拟输入1.4.3 推挽输出\开漏输出 二.GPIO输入2.1.按键介绍2.2传感器模块介绍2.3按键电路 一.G…

动手学深度学习-多层感知机-10预测房价

目录 下载和缓存数据集 Kaggle 访问和读取数据集 数据预处理 训练 K折交叉验证 模型选择 提交Kaggle预测 小结 之前几节我们学习了一些训练深度网络的基本工具和网络正则化的技术&#xff08;如权重衰减、暂退法等&#xff09;。 本节我们将通过Kaggle比赛&#xff0c…

左神算法基础巩固--1

文章目录 时间复杂度常数时间的操作时间复杂度的定义时间复杂度的作用剖析递归行为和递归行为时间复杂度的估算 排序选择排序冒泡排序插入排序归并排序小和问题问题描述解题思路 快速排序荷兰国旗问题问题描述 堆排序堆结构大根堆小根堆 桶排序 二分二分搜索 ^的运用不用额外空…

【C++读写.xlsx文件】OpenXLSX开源库在 Ubuntu 18.04 的编译、交叉编译与使用教程

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 2024-12-17 …