三分钟明白 Activity工作流

别等时光非礼了梦想. 提交于 2021-02-08 05:29:16

https://yq.aliyun.com/articles/747907


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

请假流程:申请人提交请假表单,先是主管、经理审批再由人事、副总审批。主管、经理审批后如果请假天数超过大于或者等于3天则需要副总审批后再人事最后审批,请假天数小于3天,则人事最后审批。流程结束。XJR快速开发平台的流程设计器是整合activtity开发,采用可视化编辑工作流引擎,辅助研发人员设计专业的流程功能,节约学习成本,提高工作效率。

2_
    
二、 工作流技术的优点

     从以上的请假流程,我们可以看出。

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

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

   工作流能够实现数据的同步交换和共享的特征更受用户欢迎,能有效帮助企业简化多余流程,是未来工作流技术发展的方向 。

特点
1,图形化、可视化设计流程图
2,支持各种复杂流程
3,组织结构级处理者指定功能
4,B/S结构,纯浏览器应用
5,强大的安全性特色
6,表单功能强大,扩展便捷
7,灵活的外出、超时管理策略
8,处理过程可跟踪、管理
9,丰富的统计、查询、报表功能
10,与MAIL系统集成









三、 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();

  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等开发框架结合的问题。当然,只有基本操作学会了,综合开发并不难。

  这个世界上没有知识是学不会的,不是吗?如果一开始学不会,就可以把问题细化分解,然后学习更基本的知识。最后,所有问题都能变得和1+1=2一样简单,我们需要的只是时间。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!