三分钟了解Activity工做流

一如既往地以一篇博文做为学习的总结,一来巩固所学,二来分享所得。web

 

1、           什么是工做流


以请假为例,如今大多数公司的请假流程是这样的数据库

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

采用工做流技术的公司的请假流程是这样的异步

员工使用帐户登陆系统——点击请假——上级登陆系统点击容许ide

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

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

这就是工做流技术。spa

 

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

 

 

2、           工做流技术的优势


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

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

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

 

3、           Java开发者会为何要学Activity工做流


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

 

4、           Activity工做流学习要点

 

1.      1个插件

在Eclipse中安装Activity插件,让你能够在Eclipse中绘制Activity工做流图

 

2.      1个引擎

ProcessEngine对象,Activity工做流引擎。这是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项基本操做

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

流程定义增删改查

流程变量增删改查

启动流程定义

任务增删改查

完成任务

历史信息查询

 

学习7项基本操做时只需在JavaSE下执行便可,固然,作web项目的时候就要考虑和SSH等开发框架结合的问题。固然,只有基本操做学会了,综合开发并不难。

 

总的来讲工做流学习还不是太有难度,毕竟和生活密切相关。

相关文章
相关标签/搜索