1、安装插件

在idea里面,activiti的插件叫actiBPM,在插件库里面把它安装好,重启idea就行了。

2、新建一个maven项目,并更改pom.xml。pom中依赖如下:

4.0.0

helloActiviti

helloActiviti

1.0-SNAPSHOT

org.activiti

activiti-spring

5.18.0

junit

junit

4.12

org.activiti

activiti-engine

5.18.0

slf4j-api

org.slf4j

spring-beans

org.springframework

jackson-core-asl

org.codehaus.jackson

commons-lang3

org.apache.commons

commons-lang3

org.apache.commons

mysql

mysql-connector-java

5.1.35

3、在src/main/resources下面新建一个BPMN文件

新建之后页面会变成如下图所示这样,中间是画布,右边是一些元素,左边是每个元素的一些详细信息,直接拖拽右边的元素就可以画流程了。

通过拖拽,完成简单的流程(这里只用到了StartEvent、UserTask、EndEvent),连接线需要悬停在对应元素上通过拖拽中心点来产生。

画完流程图之后要更改对应元素的name和assignee,我这里画的一个很简单的流程图,只用到了startEvent、endEvent和userTask。

接下来,创建一个Activiti类,在这里我直接和Test一起做了。同时,写好activiti的配置文件activiti.cfg.xml(PS:在写数据库连接的时候,要先创建对应的数据库和用户,数据库最好是新的,因为activiti会创建出24张它自己的表)。

目录结构:

activiti.cfg.xml

测试类:

import org.activiti.engine.*;importorg.activiti.engine.repository.DeploymentBuilder;importorg.junit.Test;importorg.activiti.engine.task.Task;importjava.util.List;public classActivitiTest {/*** 会默认按照Resources目录下的activiti.cfg.xml创建流程引擎*/ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();

@Testpublic void test() { //以下两种方式选择一种创建引擎方式:1.配置写在程序里 2.读对应的配置文件//1

testCreateProcessEngine();//2

testCreateProcessEngineByCfgXml();

deployProcess();

startProcess();

queryTask();//handleTask();

}/*** 测试activiti环境*/@Testpublic voidtestCreateProcessEngine() {

ProcessEngineConfiguration cfg=ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();

cfg.setJdbcDriver("com.mysql.jdbc.Driver");

cfg.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/activiti");

cfg.setJdbcUsername("root");

cfg.setJdbcPassword("root"); //配置建表策略

cfg.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

ProcessEngine engine=cfg.buildProcessEngine();

}/*** 根据配置文件activiti.cfg.xml创建ProcessEngine*/@Testpublic voidtestCreateProcessEngineByCfgXml() {

ProcessEngineConfiguration cfg= ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");

ProcessEngine engine=cfg.buildProcessEngine();

}/*** 发布流程

* RepositoryService*/@Testpublic voiddeployProcess() {

RepositoryService repositoryService=processEngine.getRepositoryService();

DeploymentBuilder builder=repositoryService.createDeployment();

builder.addClasspathResource("hello.bpmn");

builder.deploy();

}/*** 启动流程

*

* RuntimeService*/@Testpublic voidstartProcess() {

RuntimeService runtimeService=processEngine.getRuntimeService();//可根据id、key、message启动流程

runtimeService.startProcessInstanceByKey("myProcess_1");

}/*** 查看任务

* TaskService*/@Testpublic voidqueryTask() {

TaskService taskService= processEngine.getTaskService(); //根据assignee(代理人)查询任务

String assignee = "emp";

List tasks =taskService.createTaskQuery().taskAssignee(assignee).list();int size =tasks.size();for (int i = 0; i < size; i++) {

Task task=tasks.get(i);

}for(Task task : tasks) {

System.out.println("taskId:" + task.getId() + ",taskName:" + task.getName() + ",assignee:" + task.getAssignee() + ",createTime:" +task.getCreateTime());

}

}/*** 办理任务*/@Testpublic voidhandleTask() {

TaskService taskService= processEngine.getTaskService(); //根据上一步生成的taskId执行任务

String taskId = "2504";

taskService.complete(taskId);

}

}

启动流程之后就会有相应的任务产生,存在act_ru_task表中,可以查看任务节点

activiti idea 请假流程_使用idea进行activiti工作流开发入门学习相关推荐

  1. 【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

    [Activity学习五]--基于SSM整合Activiti之请假流程实现(二) 1.部署流程资源 2.查询流程定义信息 3.发布请假流程 4.查询用户任务 5.提出请假 6.老板查看请假任务 7.老 ...

  2. activiti idea 请假流程_IDEA创建Activiti工作流开发

    IDEA创建Activiti工作流开发 一.安装Activiti插件 1.首先打开FIle的setting功能,搜索Plugins: 2.输入actiBPM,然后点击搜索: 3.点击安装.应用: 安装 ...

  3. activiti idea 请假流程_IDEA开发流程Activiti需要注意的一些坑

    1.慎用IDEA2020最新版本 IDEA2020最新版本迎来了重大升级,对java和spring有了更好更强大的开发支持,但是对于Activiti流程开发却不再支持,可能是因为actiBPM插件太老 ...

  4. moocpython答案_中国大学慕课moocPython游戏开发入门答案

    中国大学慕课moocPython游戏开发入门答案 更多相关问题 图中表示北半球气旋的是() 右图是"我国某天气系统在某地过境时的气压与风速随时间变化规律图",1.该天气现象是A.大 ...

  5. 快速掌握python3语法_【Python】Python3基本语法入门学习

    0.Python概述 1.First Word Game 2.变量与字符串 3.improved game 4.Python数据类型 5.常用操作符 6.分支与循环 7.列表 8.元组 9.字符串内置 ...

  6. 区块链存证原理与流程--基于xuperchain司法存证系统开发的学习笔记

    区块链–存证系统 存证基本原理 存证的背景故事和概念(基于区块链) A向B借了1000块钱,B获得借条凭证,A再雇一个人C偷取B身上的借条,这样B就没有理由要回钱了.此时我们需要法院备份,即使B的借条 ...

  7. golang go语言_为什么Go是作为PHP开发人员学习的功能强大的语言

    golang go语言 I've been programming using PHP professionally since 10 years now. After my Computer Eng ...

  8. u8 api开发报类型不匹配错误_小程序云开发入门学习,小程序支付功能常见错误汇总及解决方案...

    近期有比较多的同学反映,使用云开发调取微信支付时,老是提示订单不存在.今天就把这几天大家遇到的问题统一汇总到这里. 一,订单不存在的错误 如下图所示的错误. 通常看到这个错误时,最好去看下上面看下,有 ...

  9. 鱼c工作室python课件_鱼C工作室《零基础入门学习Python》 学习过程笔记【011列表类的方法】...

    011. 如何交换列表中两个位置的值?(用从前那种交换两个变量的值的方法即可) >>> b=[0,1,2] >>> b[1] 1 >>> b[2] ...

  10. 基于 Spring Boot 2.x 使用 Activiti 创建一个简易的请假流程

    文章目录 1 摘要 2 准备工作 3 请假流程图 3 核心代码 3.1 数据库表 3.2 流程管理工具类 3.3 流程的使用 4 推荐参考资料 5 Github 源码 ​ ​ ​ 1 摘要 工作流是需 ...

最新文章

  1. 【转】web 前端研发工程师编程能力飞升之路
  2. softmax函数理解
  3. How Many Answers Are Wrong HDU - 3038(带权并查集经典题,满满的都是注释)
  4. NUC970开发资源
  5. 岗位推荐 | 微软小冰团队招聘数据挖掘/算法工程师实习生
  6. 服务器升级虚拟化,刀片服务器内置虚拟化 IBM升级服务器
  7. MySQL高级知识(三)——索引
  8. 8.Linux 高性能服务器编程 --- 高性能服务器程序框架
  9. html内外边距区别,css水平边距和垂直边距 css中的内边距和外边距?
  10. 苹果电脑系统更新中断怎么办_苹果发布健身公告中断按需锻炼空间
  11. 国内投资者投资港股的四种方法和港股必知25件事
  12. Alexa, Stop Spying on Me!“: Speech Privacy Protection Against Voice Assistants
  13. CA EXPO会议参会小记(组图)
  14. 电脑睡眠后启动 耳机没有声音 手动启动 -已解决
  15. 梦幻无穷的幻灯片切换效果
  16. 弥散阴影html,设计弥散阴影效果海报图片的PS实例教程
  17. 局域网中域和工作组的概念
  18. L. Poor God Water(ACM-ICPC 2018 焦作赛区网络预赛,ac自动机+矩阵快速幂 或 BM线性递推)
  19. 安装Citrix Workspace报错提示NET Framework 4.6.2 or late:Error Code:5100
  20. linux 软ap 设备数量,Linux下软AP功能之Hostapd介绍

热门文章

  1. IP-SAN在Windows端配置
  2. Django 1.9官方文档
  3. Citrix MCS桌面管理技术解读
  4. Ubuntu 下为 Idea 创建启动图标.
  5. 在Linux中smbfs文件系统的挂载
  6. Android中使用Fragment实现标题栏(不可滑动)
  7. JVM-类加载、GC回收机制
  8. 微信公众号从入门到入坑
  9. 日志分析工具 GoAccess v1.3 发布,支持简体中文和安装使用
  10. 类似c语言sizeof,sizeof()与strlen()在C语言中有什么不同