10分钟了解Activity工作流
一、 什么是工作流
以请假为例,现在大多数公司的请假流程是这样的
员工打电话(或网聊)向上级提出请假申请——上级口头同意——上级将请假记录下来——月底将请假记录上交公司——公司将请假录入电脑
采用工作流技术的公司的请假流程是这样的
员工使用账户登录系统——点击请假——上级登录系统点击允许
就这样,一个请假流程就结束了
有人会问,那上级不用向公司提交请假记录?公司不用将记录录入电脑?答案是,用的。但是这一切的工作都会在上级点击允许后自动运行!
这就是工作流技术。
Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完
二、 工作流技术的优点
从上面的例子,很容易看出
工作流系统,实现了工作流程的自动化,提高了企业运营效率、改善企业资源利用、提高企业运作的灵活性和适应性、提高量化考核业务处理的效率、减少浪费(时间就是金钱)。
而手工处理工作流程,一方面无法对整个流程状况进行有效跟踪、了解,另一方面难免会出现人为的失误和时间上的延时导致效率低下,特别是无法进行量化统计,不利于查询、报表及绩效评估。
三、 Java开发者会为什么要学Activity工作流
在Java领域,JBPM和Activity是两个主流的工作流系统,而Activity的出现无疑将会取代JBPM(Activity的开发者就是从Jbpm开发者出来的)。
四、 Activity工作流学习要点
1、1个插件
在Eclipse中安装Activity插件,让你可以在Eclipse中绘制Activity工作流图
2、1个引擎
ProcessEngine对象,Activity工作流引擎。这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
所有的操作都是从获取引擎开始的,所以一般会把引擎作为全局变量
ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();
- 1
3、1个配置文件
activiti.cfg.xml。Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数
4、5种数据库表
Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。用途也和服务的API对应。
ACT_RE_*: ‘RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。
ACT_RU_*: ‘RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_*: ‘ID’表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_*: ‘HI’表示history。 这些表包含历史数据,比如历史流程实例,变量,任务等等。
ACT_GE_*: 通用数据,用于不同场景下,如存放资源文件。
5、23张表
不同的表存放不同方面的数据,有流程定义表、任务结点表、流程变量表、任务历史表等等。
6、5项Service
不同的Service类对应不同的功能。
比如TaskService,是activiti的任务服务类。可以从这个类中获取任务的信息。
而HistoryService,则是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。
7、7项基本操作
设计流程图(各种组件,如连线、用户任务、网关)
流程定义增删改查
流程变量增删改查
启动流程定义
任务增删改查
完成任务
历史信息查询
学习7项基本操作时只需在JavaSE下执行即可,当然,做web项目的时候就要考虑和SSH等开发框架结合的问题。当然,只有基本操作学会了,综合开发并不难。
10分钟了解Activity工作流相关推荐
- java jbpm工作流,三分钟明白 Activity工作流,工作流jbpm
三分钟明白 Activity工作流,工作流jbpm 一. 什么是工作流 Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每 ...
- 三分钟了解Activity工作流引擎
一. 什么是工作流 以请假为例,现在大多数公司的请假流程是这样的 员工打电话(或网聊)向上级提出请假申请--上级口头同意--上级将请假记录下来--月底将请假记录上交公司--公司将请假录入电脑 采用工作 ...
- Activity工作流(2)-入门安装运行第一个例子
1. 初识Activiti 1.1. 工作流与工作流引擎 工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计 ...
- Android——教你10分钟手敲 Butter Knife(小刀注解)
教你10分钟手敲 Butter Knife(小刀注解) 在用 AndroidStudio 集成 Butter Knife(小刀注解)的时候感觉像极了J2EE的Spring IOC容器 自己研究了一下, ...
- 10分钟内基于gpu的目标检测
10分钟内基于gpu的目标检测 Object Detection on GPUs in 10 Minutes 目标检测仍然是自动驾驶和智能视频分析等应用的主要驱动力.目标检测应用程序需要使用大量数据集 ...
- 10分钟学会php面相对象基础(Ⅰ)
<?php 声明一个类 class mycar{ etc. //成员方法 } class mycar{ function drive(){ etc. } } ?> 对象的实例化 内存中分栈 ...
- 比特币区块的产生速度为何被设定为10分钟?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 众所周知,比特币的block产生速度被设定为了10分钟,按着官方wiki所说,每一个节点需要一些时间来确认block(& ...
- github创建静态页面_如何在10分钟内使用GitHub Pages创建免费的静态站点
github创建静态页面 Static sites have become all the rage, and with good reason – they are blazingly fast a ...
- 自行车车把会吧车刮坏吗_花10分钟即可开始使用车把
自行车车把会吧车刮坏吗 by Wing Puah 永帕(Wing Puah) 花10分钟即可开始使用车把 (Take 10 minutes to get started with Handlebars ...
- 以太坊区块链同步_以太坊69:如何在10分钟内建立完全同步的区块链节点
以太坊区块链同步 by Lukas Lukac 卢卡斯·卢卡奇(Lukas Lukac) Ethereu M 69:如何在10分钟内建立完全同步的区块链节点 (Ethereum 69: how to ...
最新文章
- json相关,浏览器打开json格式的api接口时,进行格式化,chrome插件
- golang递归获取目录下的所有文件
- Blazor VS 传统Web应用程序
- python 示例_带有示例的Python File close()方法
- tcp的无延时发送_高并发架构的TCP知识介绍
- 避免从单体到分布式单体
- Oracle安装——环境准备
- SAP License:元素 POS_BELZEILE2 窗口 MAIN 没被定义给格式 INVENT
- 从浏览器缓存提取媒体文件
- 学术论文海报模板_论文深耕 | 第一次写学术论文无从下手?阅读写作套路来了!...
- mysql会话是什么意思_MySQL会话临时表空间有什么作用
- 【z变换】3. 逆z变换
- 微软苏州STCA面试
- matlab求fft频谱峰值程序,用FFT对信号作频谱分析Matlab程序
- 一个疯狂的地下市场--支付牌照的买卖
- 计算机软硬件的开发及应用,管理和控制计算机系统软硬件资源的软件是 计算机软硬件开发...
- 【成功】qlv转MP4,超简单方法
- Android中Fragment的分屏显示处理横竖屏显示
- Excel技巧—名称框的妙用
- python+twilio实现打电话和发短信功能
热门文章
- android系统壁纸下载,提前用上Android 12系统 官方高清壁纸下载
- Keil下载代码闪退的问题(已解决)
- 二阶系统 matlab,线性二阶系统性能的MATLAB仿真.pdf
- 人工智能机器视觉技术应用有哪些?
- QQ音乐api 最新版,亲测可用
- STM32F205RET6工程应用要点
- 【刷题总结】二叉树前中后序遍历
- 第四章 使用OpenCV探测来至运动的结构——Chapter 4:Exploring Structure from Motion Using OpenCV 标签: SFM3D重建 2015-01-15
- matlab利用gui谐波分析,matlab中fft谐波分析
- 【ClearCase使用】之图解merge