Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >第一节:实现Activiti6.0的第一个demo

第一节:实现Activiti6.0的第一个demo

作者头像
凡人飞
发布于 2020-09-20 12:23:42
发布于 2020-09-20 12:23:42
7640
举报
文章被收录于专栏:指缝阳光指缝阳光

一、搭建项目架构

  1. 使用idea需要安装actiBPM插件用来画流程图
  2. 创建一个空的java项目,并添加文件夹如下:

lib:存放需要使用的jar包,可从下面链接直接下载解压,记得加入将包加入项目中,如下: jar包提取码:c0zq

resource:存放资源文件,比如bpmn流程文件等

  1. 新建一个流程first.bpmn
  1. 添加log4j.properties文件,配置日志log4j.rootLogger=INFO, stdout # Console Appender log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n # Custom tweaks log4j.logger.com.codahale.metrics=WARN log4j.logger.com.ryantenney=WARN log4j.logger.com.zaxxer=WARN log4j.logger.org.apache=WARN log4j.logger.org.hibernate=WARN log4j.logger.org.hibernate.engine.internal=WARN log4j.logger.org.hibernate.validator=WARN log4j.logger.org.springframework=WARN log4j.logger.org.springframework.web=WARN log4j.logger.org.springframework.security=WARN
  2. 引入activiti的配置文件activiti.cfg.xml 可从官网复制:activiti.cfg.xml 修改如下:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <!--如果mysql是8.0,需要自己引用对应的mysql-connector-java-8.0.16.jar,并在连接上加上时区如下--> <!--<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC" />--> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?characterEncoding=utf-8&amp;useUnicode=true&amp;useSSL=true" /> <property name="jdbcDriver" value="com.mysql.jdbc.Driver" /> <property name="jdbcUsername" value="root" /> <property name="jdbcPassword" value="123456" /> <property name="databaseSchemaUpdate" value="true" /> <!--以下注释掉--> <!-- <property name="asyncExecutorActivate" value="false" />--> <!-- <property name="mailServerHost" value="mail.my-corp.com" />--> <!-- <property name="mailServerPort" value="5025" />--> </bean> </beans>
  3. 创建对应的数据库

二、解决IDEA中Activiti的中文乱码

  1. 进入idea的安装目录
  1. 打开这两个文件,在最后面添加一行-Dfile.encoding=UTF-8
  2. 重启IDEA即可。

三、编码

  1. 在src对应目录下创建类:ActivitiTest,编码如下package com.xjf.c3; /*注意导入activiti6.0的包*/ import org.activiti.engine.*; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; /** * @Auther: XuJiaFei * @Date: 2019/11/8 09:49 * @Description: */ public class ActivitiTest { public static void main(String[] args) { //获取流程引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); //存储服务 RepositoryService repositoryService = processEngine.getRepositoryService(); //运行服务 RuntimeService runtimeService = processEngine.getRuntimeService(); //任务服务 TaskService taskService = processEngine.getTaskService(); //发布流程 repositoryService.createDeployment().addClasspathResource("first.bpmn").deploy(); //创建一个请假流程,获取流程实例。此处的流程id为first.bpmn的process的id ProcessInstance pi = runtimeService.startProcessInstanceByKey("myProcess_1"); //员工完成请假的任务 Task task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult(); System.out.println("当前流程节点:" + task.getName()); taskService.complete(task.getId()); //经理完成审批任务 task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult(); System.out.println("当前流程节点:" + task.getName()); taskService.complete(task.getId()); //流程执行完了,再去获取任务会为null task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult(); System.out.println("流程执行结束了:" + task); //关闭引擎 processEngine.close(); //退出 System.exit(0); } }

注意

  1. runtimeService.startProcessInstanceByKey(“myProcess_1”)对应的key,是first.bpmn中的,在idea中将first.bpmn重命名为first.xml,能看到对应的xml

千万注意将process后面的 xmlns=" " 去掉,不然会启动失败

  1. 运行后数据库会生成28张表

四、结果

该流程模拟实现了员工进行请假,然后经理进行审批的流程。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
史上最全的工作流引擎 Activiti 学习教程(值得收藏)
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/05/23
2.7K0
史上最全的工作流引擎 Activiti 学习教程(值得收藏)
Spring Boot + Activiti 完美结合,快速实现工作流~
关于工作流之前分享过一篇flowable,今天分享一下另外一个实现:Activiti
码猿技术专栏
2023/05/01
1.3K0
Spring Boot + Activiti 完美结合,快速实现工作流~
第七节:Activiti6.0——Task的变量使用
介绍: 在任务的执行过程中,会有很多的变量参数(比如请假任务需要天数等)。变量从作用域来分:本地变量和全局变量。 从类型区分:基本变量、自定义变量和BPMN自带变量。
凡人飞
2020/09/21
2.1K0
第七节:Activiti6.0——Task的变量使用
第十二节:Activiti6.0——四种边界事件:定时器、错误、信号、补偿
边界事件:边界事件属于一种特殊的中间事件。区别是: 中间事件 可以单独作为流程元素存在于流程中,而 边界事件 必须附属于某个流程元素(如任务、子流程等)。边界事件是Catching事件。
凡人飞
2020/09/21
3.9K0
第十二节:Activiti6.0——四种边界事件:定时器、错误、信号、补偿
Activiti学习——Activiti与Spring集成
与Spring集成 基础准备 目录结构 相关jar包 Activiti的相关jar包  Activiti依赖的相关jar包  Spring的相关jar包  Spring依赖的相关jar包  本示例相关
庞小明
2018/03/08
1.9K1
Activiti学习——Activiti与Spring集成
Activiti开发学习笔记
最近公司有个大项目需要用到流程引擎平台。服务治理平台中要提供流程治理服务,所以小编在加紧学习工作流引擎的开发。 所以即将学习的是一个业务流程管理框架, 常见开源工作流引擎框架 :OSWorkFlow、jBPM(jboss business process management),Activiti工作流(是对jBPM升级)。流程开发框架一般我们称作为工作流框架.
程序源代码
2019/08/29
8320
Activiti开发学习笔记
第九节:Activiti6.0——ReceiveTask接收信号、中间信号捕获事件和中间消息捕获事件的流程推进
介绍: 在我们获取流程实例后,需要对流程进行推进,就是使执行流往前执行。本篇即介绍在不同情况下,流程自动推进的方法。主要是三种:
凡人飞
2020/09/21
2.4K0
第九节:Activiti6.0——ReceiveTask接收信号、中间信号捕获事件和中间消息捕获事件的流程推进
七、springboot整合flowable(工作流)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143284.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
2.9K0
七、springboot整合flowable(工作流)
工作流引擎 Activiti 万字详细入门
工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/08
3.5K0
工作流引擎 Activiti 万字详细入门
七万字掌握热门工作流引擎框架Activiti7,附带视频讲解哦
  工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。文章中涉及的相关软件资料扫左侧哦。
用户4919348
2022/01/07
1.5K0
七万字掌握热门工作流引擎框架Activiti7,附带视频讲解哦
Activiti7笔记(一)Activiti7是什么,入门流程操作的代码实现
Activiti是一个工作流引擎, activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。
一写代码就开心
2022/05/09
3.4K0
Activiti7笔记(一)Activiti7是什么,入门流程操作的代码实现
Spring Boot + Activiti 完美结合,快速实现工作流
关于工作流之前分享过一篇flowable,今天分享一下另外一个实现:Activiti
终码一生
2023/01/08
1.4K0
Spring Boot + Activiti 完美结合,快速实现工作流
activiti6.0工作流引擎深度解析_自定义工作流引擎
工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/27
3K0
activiti6.0工作流引擎深度解析_自定义工作流引擎
使用idea进行activiti工作流开发[通俗易懂]
emmm…….因为工作需要,所以要学习activiti工作流,初次学习,写个博客记录一下,下次再用就知道大概流程了。
全栈程序员站长
2022/11/14
8820
使用idea进行activiti工作流开发[通俗易懂]
俯瞰开源工作流引擎Activiti「建议收藏」
  在了解 Activiti 之前我们先了解一下什么是工作流,什么是工作流建模,以及工作流要解决的问题:   工作流,是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。
全栈程序员站长
2022/09/18
8000
俯瞰开源工作流引擎Activiti「建议收藏」
Activiti中工作流的生命周期详细解析!一个BPMN流程示例带你认识项目中流程的生命周期
注意: 它和startProcessInstanceById方法不同:这个方法期望使用Activiti引擎在发布时自动生成的id.可以通过调用processDefinition.getId() 方法获得这个值,生成的id的格式为 key:version, 最大长度限制为64个字符, 如果在启动时抛出了一个ActivitiException: 说明生成的id太长了,需要限制流程的key的长度
攻城狮Chova
2022/01/22
6660
Activiti中工作流的生命周期详细解析!一个BPMN流程示例带你认识项目中流程的生命周期
【第九篇】Flowable中的候选人讲解
  在流程定义中在任务结点的 assignee 固定设置任务负责人,在流程定义时将参与者固定设置在.bpmn 文件中,如果临时任务负责人变更则需要修改流程定义,系统可扩展性差。针对这种情况可以给任务设置多个候选人或者候选人组,可以从候选人中选择参与者来完成任务。
用户4919348
2022/04/13
2.9K0
【第九篇】Flowable中的候选人讲解
第八节:Activiti6.0——启动流程相关
介绍:在启动流程后,每个流程实例都会有执行流(存储在act_ru_execution表中)。实例都有主执行流,没有父id的执行流是流程实例,其后如果流程中有一个分支则有一个子执行流,分支和子执行流一一对应。对执行流可以设置变量,设置子执行流的变量为本地(临时)变量(自在当前执行流有效),设置主执行流的变量为全局变量。
凡人飞
2020/09/21
7040
第八节:Activiti6.0——启动流程相关
Spring和Activiti工作流整合详解
Activiti作为一个流行的开源工作流引擎,正在不断发展,其6.0版本以API形式提供服务,而之前版本基本都是要求我们的应用以JDK方式与其交互,只能将其携带到我们的应用中,而API方式则可以服务器独立运行方式,能够形成一个专网内工作流引擎资源共享的方式。
品茗IT
2019/09/12
1.2K0
Activiti7入门Demo
需要注意的是idea64.exe.vmoptions 这个文件可能有多个,别改错了。
诺浅
2020/08/21
1.1K0
Activiti7入门Demo
推荐阅读
相关推荐
史上最全的工作流引擎 Activiti 学习教程(值得收藏)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档