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

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),连接线需要悬停在对应元素上通过拖拽中心点来产生。

bcfef8e086e89b5fdbbc2fe872e9a944.png

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

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

目录结构:

84e522d3b67b9b9569fe4b855506259b.png

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表中,可以查看任务节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值