三分钟明白 Activiti工作流 -- java运用

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

一、 什么是工作流

以请假为例,现在大多数公司的请假流程是这样的

员工打电话(或网聊)向上级提出请假申请——上级口头同意——上级将请假记录下来——月底将请假记录上交公司——公司将请假录入电脑

采用工作流技术的公司的请假流程是这样的

员工使用账户登录系统——点击请假——上级登录系统点击允许

就这样,一个请假流程就结束了

有人会问,那上级不用向公司提交请假记录?公司不用将记录录入电脑?答案是,用的。但是这一切的工作都会在上级点击允许后自动运行!

这就是工作流技术。

 

Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完

 

二、 工作流技术的优点

从上面的例子,很容易看出

工作流系统,实现了工作流程的自动化,提高了企业运营效率、改善企业资源利用、提高企业运作的灵活性和适应性、提高量化考核业务处理的效率、减少浪费(时间就是金钱)。

而手工处理工作流程,一方面无法对整个流程状况进行有效跟踪、了解,另一方面难免会出现人为的失误和时间上的延时导致效率低下,特别是无法进行量化统计,不利于查询、报表及绩效评估。

 

三、 Java开发者会为什么要学Activiti 工作流

在Java领域,JBPM和Activiti 是两个主流的工作流系统,而Activiti 的出现无疑将会取代JBPM(Activiti 的开发者就是从Jbpm开发者出来的)。

 

四、 Activiti 工作流学习要点

 

1. 1个插件

在Eclipse中安装Activiti 插件,让你可以在Eclipse中绘制Activiti 工作流图

 

2. 1个引擎

ProcessEngine对象,Activiti 工作流引擎。这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。

所有的操作都是从获取引擎开始的,所以一般会把引擎作为全局变量

ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();

 

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项基本操作

设计流程图(各种组件,如连线、用户任务、网关)

流程定义增删改查

流程变量增删改查

启动流程定义

任务增删改查

完成任务

历史信息查询

 

 

 

 

转自:http://www.it165.net/pro/html/201504/37443.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux命令 ps -ef 的含义

PS是LINUX下最常用的也是非常强大的进程查看命令//以下这条命令是检查java 进程是否存在. ps -ef |grep java下面对命令选项进行说明:-e 显示所有进程。-f 全格式。ps -e 列出程序时,显示每个程序所使用的环境变量。ps -f 用ASCII字符显示 树状结构 &…

vue-i18n使用及踩坑记录

使用步骤 1. 安装 npm i vue-i18n 2. vue-cli下使用 //1. 引入 vue-i18n import Vue from vue import VueI18n from vue-i18n Vue.use(VueI18n)//2. 定义messages const messages {en: {text: {hello: hello world}},zh: {text: {hello: 你好、世界}} }//如果messages字段很多…

idea搭建web项目及tomcat部署总结

该文章为引用文章,原地址为:https://www.cnblogs.com/shindo/p/7272646.html 后面有我自己搭建过程中遇到的问题及解决方案,请参考。 一、创建简单web项目 1、创建一个web project File -> new Project ->选择project sdk 为1.6&#x…

Activiti工作流框架学习(一)环境的搭建和数据表的了解

一、什么是工作流 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使…

中国消费者为何不愿为App付费?

Facebook收购Instagram之后,国内的开发者们唏嘘不已。Instagram的用户不过3000万,却能卖出10亿美元的价格。如果Instagram在国内的话,就算没被关闭也会被抄袭。如果通过收费来赚钱的话,也会因为黑卡变得颗粒无收,最终很…

什么是交换分区

SWAP就是LINUX下的虚拟内存 分区,它的作用是在 物理内存 使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。

基础、语法都不是最重要的,学Python最重要的是什么?编程思路!

论述 一些朋友自学python过程中,发现书也能看懂,书上的玩具代码也能看懂,但为啥自己不能做习题,不能写代码解决问题,自己不能动手写代码? 原因 初学者没有学会计算思维、解决问题的方法、编程思路。编程思路…

Windows下启动,关闭Nginx命令

启动 直接点击Nginx目录下的nginx.exe 或者 cmd运行start nginx 关闭 nginx -s stop 或者 nginx -s quit stop表示立即停止nginx,不保存相关信息 quit表示正常退出nginx,并保存相关信息 重启(因为改变了配置,需要重启) nginx -s reload 转载于:https://www.cnblogs…

什么是守护进程?

守护进程是在后台运行不受终端控制的进程(如输入、输出等),一般的网络服务都是以守护进程的方式运行。守护进程脱离终端的主要原因有两点:(1)用来启动守护进程的终端在启动守护进程之后,需要执行…

Activiti工作流引擎的使用

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Activiti工作流引擎使用 1.简单介工作流引擎与Activiti 对于工作流引擎的解释请参考百度百科:工作流引擎 1.1 我与工作流引…

Flurry调查报告:图片和视频应用增长速度最快

据外国媒体报道,移动数据分析公司Flurry近期对应用分类的欢迎度进行研究后发现,就用户使用的时间而言,“图片和视频”应用已成为增长最快的移动应用。 Flurry对各种应用分类的800多万移动用户进行了调查,并利用其分析工具跟踪了1…

JS内存管理与垃圾回收

javascript的内存管理Javascript 是那些被称作垃圾回收语言当中的一员。垃圾回收语言通过周期性地检查那些之前被分配出去的内存是否可以从应用的其他部分访问来帮助开发者管理内存。换句话说,当计算机发现有的内存已经不能被访问到了,就会把它们标记为垃…

牛客网分糖果

题解: 考试的时候没有想出来。。。 刚开始想了个比较错误的dp 后来想到了容斥。。 但是没有想到怎么去维护这个东西。。 按照一般的套路 至少有一个相邻相等的-至少有两个相邻相等的 但是这道题里这样并不好维护 我们考虑用dp来算这个东西 f[i]f[j]*min(a[j].....a[…

HTTP 503 错误 – 服务不可用 (Service unavailable)

介绍因暂时超载或临时维护,您的 Web 服务器目前无法处理 HTTP 请求。 其含义是, 这是一个暂时情况,会有一些延误, 过 后将会得到缓解。 有些服务器在这种情况下也许干脆拒绝套接字(socket) 连接&#xff0c…

SHA 加密是什么( sha1 和 MD5 的区别 )

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 SHA 安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS…

10个管理工作时间的小技巧

导读:如何才能稳步追随社会的变迁,如何才能留住飞逝的时间。俗话说:“一寸光阴一寸金,寸金难买寸光阴。”珍惜现在的时光,将来才不会为年轻时挥霍的时间而感到悔恨。三位作者Joe Mathews,Don Debolt&#x…

12-思科防火墙:ASA会话超时

一、实验拓扑:二、实验要求:DCD:死亡检测时间,默认R2 Telnet上去保持时间为1个小时,超时就会被清除掉,这里要求变为4小时,每15s就会发送5个DCD检测包,如没回应就剔除掉,回…

orCAD使用Orcad Capture CIS按Room摆放

http://www.sig007.com/EDAguide/176.html 37 使用Orcad Capture CIS按Room摆放 (1)打开原理图某一工程页 (2)按Ctrl键依次选中需要建Room的元件,右击,选择Edit Properties 在Filter by 下拉菜单中选择Cad…

503错误的原因和解决方法

如果出现“Service Unavailable”的提示,刷新几下又可以访问。 出现这种情况是由于您的网站超过了iis限制造成的 由于2003的操作系统在提示IIS过多时并非像2000系统提示“链接人数过多”,而是提示"Service Unavailable",出现这种情况是由于网…

Java中十六进制转换 Integer.toHexString()

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 用例: Long.toHexString(number) 其中 number 是一个long类型参数。 描述: java.lang.Integer.toHexString(…