Atitit flowable使用总结 目录 1. flowable 1 1.1. 添加依赖 1 1.2. Flowable的启动接口 2 2. 还是使用简单流程来完成业务流程的学习, 2 2.1.
Atitit flowable使用总结
目录
1. flowable 1
1.1. 添加依赖 1
1.2. Flowable的启动接口 2
2. 还是使用简单流程来完成业务流程的学习, 2
2.1. 设计流程: 3
2.2. 4.新建flowable的表 自定义h2模式 3
2.3. 5.使用flowable创建一个简单的流程 5
2.4. 5.2部署启动写好的BPMN2.0文件: 5
2.5. d. 最后一步,完成实现申请通过后执行的自动逻辑,在现实中,这个逻辑可以做任何事情,例子中只做任务处理 6
- flowable
- flowable存储数据默认采用h2内存数据库,但我这里还是用熟悉的mysql
- flowable内部采用SLF4J作为其日志框架
- 部署前我们编辑了一个普通的流程文件,需要加载下改文件来防止文件有错误,把文件转换为BPMNModel来校验,核心接口为BpmnXMLConverter,通过API接口convertToBpmnModel来实现xml到模型的转换
- 添加依赖
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-engine</artifactId>
<version>6.4.1</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
- Flowable的启动接口
- 加载完成流程后,我们将流程启动,Flowable的启动接口为runtimeService,运行时服务调用startProcessInstanceByKey启动一个流程,并且返回流程对象ProcessInstance。该对象包含ID,后续我们将经常用到该ID。
- 还是使用简单流程来完成业务流程的学习,
目前流程只包含一个开始节点/用户任务节点/结束节点。给用户任务节点配置一个分配人为admin.如下图所示:
当客户有这么一个需求:下一个任务我需要自动执行一些操作,并且这个节点不需要任何的人工干涉,也就是说这个节点是自动化的。那么,这个当前面一个经办人员把任务发送下去的时候,自然而然的下一个节点就会开始马上执行。这个时候。我们就需要使用Activiti工作流的ServiceTask任务。
- 设计流程:
搞个类左右
- 4.新建flowable的表 自定义h2模式
ProcessEngineConfiguration config=ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration()
.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE)
.setJdbcUrl("jdbc:h2:mem:my-own-db;DB_CLOSE_DELAY=1000")
.setAsyncExecutorActivate(false);
ProcessEngine processEngine =config.buildProcessEngine();
运行后表目录为
5.1创建一个bpmn文件:使用eclipse bpmn2插件
process_1.bpmn
注意地方
<bpmn2:process id="process_1" name="Default Process" isExecutable="true">
xmlns:activiti="http://activiti.org/bpmn"
- 5.2部署启动写好的BPMN2.0文件:
/*创建了一个新的部署*/
/*创建了一个新的部署*/
RepositoryService repositoryService = processEngine.getRepositoryService();
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource("process_1.bpmn") //TODO holiday.xml命名为何不行?
.deploy();
//启动一个流程结点
RuntimeService runtimeService = processEngine.getRuntimeService();
ProcessInstance processInstance =
runtimeService.startProcessInstanceByKey("process_id2", newHashMap());
System.out.println("--finis");
- d. 最后一步,完成实现申请通过后执行的自动逻辑,在现实中,这个逻辑可以做任何事情,例子中只做任务处理
<serviceTask id="externalSystemCall" name="Enter holidays in external system" activiti:class="cn.thinvent.first.CallExternalSystemDelegate"/>
创建Java类,实现JavaDelegate
public class CallExternalSystemDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) {
System.out.println("Calling the external system for employee "
+ execution.getVariable("employee"));
}
}
Atitit flowable使用总结 目录 1. flowable 1 1.1. 添加依赖 1 1.2. Flowable的启动接口 2 2. 还是使用简单流程来完成业务流程的学习, 2 2.1.相关推荐
- ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能
ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能 原文:ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能 在最新发布的ActiveRep ...
- Oracle11g adump目录下面.aud增长导致空间撑满无法删除导致CRS无法启动的解决方法
Oracle11g adump目录下面.aud增长导致空间撑满无法删除导致CRS无法启动的解决方法 参考文章: (1)Oracle11g adump目录下面.aud增长导致空间撑满无法删除导致CRS无 ...
- flowable工作流 流程变量_业务流程 BPM、工作流引擎、Flowable、Activiti
特点 基于 Flowable(Activiti)生来具有的稳定工作流引擎 支持在线流程设计器,流程导入导出,符合 BPMN 规范,中国式工作流 支持流程办理.退回.自由流.会签.并行.串行.服务任务等 ...
- VS2008 C++ 项目添加“依赖”、“库目录”和“包含目录”
1. 添加编译所需要(依赖)的 lib 文件 [解决方案资源管理器]"项目->属性->配置属性->连接器->输入->附加依赖项"里填写"wi ...
- VS|Qt工作笔记-修改pro文件生成目录清晰的项目结构并添加三方库
目录 前言 修改过程 VS运行 前言 一般用Qt Creator写好东西(用Qt Creator写Qt程序一般比vs效率高)后,要用vs进行编译,要用vs进行打开,现在来说明,如何修改pro文件,生成 ...
- VS2005 项目怎样添加“依赖”、“库目录”和“包含目录”
1. 添加编译所需要(依赖)的 lib 文件 [解决方案资源管理器]"项目->属性->配置属性->连接器->输入->附加依赖项"里填写"w ...
- VS2005 C++ 项目怎样添加“依赖”、“库目录”和“包含目录”
1. 添加编译所需要(依赖)的 lib 文件 [解决方案资源管理器]"项目->属性->配置属性->连接器->输入->附加依赖项"里填写"wi ...
- 第9章第7节:给目录页幻灯片中的元素添加动画效果 [PowerPoint精美幻灯片实战教程]
在完成目录页的制作之后,现在来给幻灯片中的元素添加动画效果.首先选择需要添加动画效果的对象. 点击动画选项卡,显示动画功能面板. 然后给所选对象添加名为淡化的动画效果. 将动画的开始方式设置为上一动画 ...
- cmake添加查找目录_CMakeLists.txt文件写法(7):添加查找头文件的路径
[1.List转换成为数组.(这里的List是实体是ArrayList) 调用ArrayList的toArray方法. toArray public T[] toArray(T[] a)返回一个按照正 ...
- linux给目录加裸设备磁盘,Linux添加裸设备空间(Redhat)
.创建pv pvcreate /dev/sdd****pvcreate -M2 –metadatasize 100M /dev/sda pvcreate -M2 –metadat ...
最新文章
- java虚拟机 什么语言_什么是Java虚拟机?为什么Java被称为平台无关的编程语言...
- java中属性加参数_java – 具有类型参数的注释属性
- ExtJs+php学习长连接comet技术开端。
- 关于开发工具环境准备事项作为故事来处理的对话
- SI 和 DI 寄存器的区别
- kafka 服务端消费者和生产者的配置
- JAVA 技术类分享(一)
- 消息中间件学习总结(11)——Kafka与RocketMQ的Topic数量对单机性能的影响比较分析
- 原 IntelliJ IDEA 中 右键新建时,选项没有Java class的解决方法和具体解释
- 计算机网络实验二:网络基础编程实验
- 如何在matlab中设置colorbar
- 大数据技术架构_大数据架构流程图
- ZPL指令打印标签时出现白色窄条的坑
- InstallShield2015创建安装包
- 解决 您的安全设置不允许将此应用程序安装到您的计算机上的问题
- 用c#做的打地鼠小游戏,整理一下上课学的
- 【msvcr120.dll下载】msvcr120.dll丢失怎么修复
- [Lintcode]142. O(1) Check Power of 2
- 用 ECharts 做出漂亮的数据统计图
- 计算机是如何组成的?
热门文章
- java锁的粗化,锁优化(自旋锁,锁消除,锁粗化,轻量级锁,偏向锁)(深入理解JAVA虚拟机-学习记录)...
- python视频教程免费慕课网-python视频教程慕课 | 最好的python视频教程谁有
- html 源码_(带手机版数据同步)中国风古典园林石业织梦模板 水墨风格园林艺术网站源码下载...
- java需要class_java需要class是什么意思
- jQuery基础 - 选择器
- 三层代码的bll dal 层优化
- spring boot 创建第一个
- xcode中使用正则表达式来搜索替换代码
- Layout Management
- 使用nohup让程序在远程主机后台运行