JAVA工作流

article/2025/9/30 9:30:49

一、 什么是工作流

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

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

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

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

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

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

这就是工作流技术。

 

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

 

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


http://chatgpt.dhexx.cn/article/pXTvAFmE.shtml

相关文章

java工作流详解

什么是工作流? 工作流:两个或两个以上的人,为了共同的目标,连续的以串行或并行的方式去完成某一业务。 业务:工作流所指业务涵盖了与经营相关的活动。 串行或并行:业务中的步骤也许以一步接着一步的方式…

Java开源工作流框架对比

什么是工作流? 工作流,是指“业务​过程的部分或整体在​计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。 在计算机中,工作流属于计算机支持的协同工作(CSCW)的一部分。 工作流…

极简 Java 工作流概念入门

1. 为什么需要工作流 假设我有一个请假需求,流程如下: 请假可以提交给我的上司,上司可以选择批准或者拒绝,无论批准还是拒绝,都会给我一个通知。 这个流程比较简单,我们很容易想到解决方案,不…

Java工作流详解(附6大工作流框架对比)

目录 1.什么是工作流 2.工作流应用场景 3.工作流实现方式 4.有哪些工作流框架? 5.1.Activiti6. 2.Flowable7. 3.Camunda8.4.jBPM9. 5.osworkflow,6.jflow. 10.工作流框架对比 什么是工作流工作流(Worklow) 工作流是对工作流程及其各操作步骤之间业务规则的…

smalldatetime类型

1、MS Sql Server 的smalldatetime 与datetime类型的区别 原来数据库字段为smalldatetime类型, update table set column 11:59:30 发现commit后db中的值为12:00:00 update table set column 11:59:29 发现commit后db中的值为11:59:00 原来smalldatetime是不存储秒…

SQL Server中smalldatetime的日期范围为何是[1900-01-01,2079-06-06]

本文目录列表: 1、SQL Server中的基准日期 2、smalldatetime的日期范围 3、smalldatetime的日期范围和无符号2字节整数的关系 4、总结语 5、参考清单列表 SQL Server中的基准日期 SQL Server 中针对datetime和smalldatetime这两个日期时间数据类型提供一个基准日期&…

smalldatetime mysql_SQL 中 date 与datetime的区别

潇潇雨雨 我们看看这几个数据库中(mysql、oracle和sqlserver)如何表示时间mysql数据库:它们分别是 date、datetime、time、timestamp和year。date :“yyyy-mm-dd”格式表示的日期值 time :“hh:mm:ss”格式表示的时间值 datetime:…

SQL datetime和smalldatetime区别

datetime 存储大小8个字节,精确到分后的3为小数,日期范围从1753 年 1 月 1 日到 9999 年 12 月 31 日;而 smalldatetime存储大小为4个字节,精确到分,日期范围从1900 年 1 月 1 日到 2079 年 6 月 6 日。 参考 http://m…

170406回顾-SQL Server的smalldatetime类型比较

在比较SQL Server的类型为smalldatetime字段时出现下面的错误:将 expression 转换为数据类型 smalldatetime 时出现算术溢出错误 正确的比较方法如下:将long型转换为时间格式的字符串,再与smalldatetime类型的字段比较 SELECT * FROM tablename WHERE EditFlag > 2017/…

【SQL Server】将字符串转换为 smalldatetime 数据类型时失败

如下图,我在执行下列语句时遇到了“将字符串转换为 smalldatetime 数据类型时失败”的报错 然后去搜了一下,原来是存储过程的问题,我看的是其他博主的解答(但是还没有按照博主的方法实践过),内容详情有需要的自己去搜一…

android笔记1(activity跳转)

1.利用Android studio创建一个新项目,项目结构如下。 2.创建一个新的activity,用于跳转。 3.修改两个activity的布局,主activity中有一个输入文本框和一个按钮,实现点击按钮发送文本框的内容到第二个activity。第二个activity中有…

Activity 跳转的生命周期变化

1)Activity1跳转到Activity2的生命周期流程 1.Activity1启动:Activity1: onCreate()Activity1: onStart()Activity1: onResume()2.点击按钮跳转到Activity2:Activity1: onPause()Activity2: onCreate()Activity2: onStart()Activity2: onResume()Activit…

android activity跳转生命周期,Android中从一个Activity跳转到另一个Activity所经历的生命周期........

凡是Android开发人员都知道“Activity”是非常重要的;对其该“Activity”生命周期相信大家也比较熟悉了。 这篇文章主要探讨的是“从一个Activity启动跳转到另一个Activity中,所经历的生命周期中的过程” 实例: 1、MainActivity 启动 Secon…

Android开发之Activity(实现Activity跳转)

文章目录 基本框架新建activity实现activity跳转 基本框架 首先,每当我们新建一个APP工程,AS都会默认为我们创建一系列文件,比如MainActivity.java,该activity就是用户打开APP时默认弹出的activity,且该类一定要继承自…

activity跳转

1. 显示跳转 <Buttonandroid:layout_width"wrap_content"android:layout_centerHorizontal"true"android:layout_marginTop"20dp"android:text"页面跳转"android:onClick"intentClick"android:layout_height"wrap_c…

Android activity跳转使用详解

画面就是活动卡片,就是activity 继承 AppCompatActivity 的才是activity,否则就是一个普通的java类 案例:实现activity跳转 一 步骤 step1 new一个新的activity step2 看一下AndroidManifest.xml是否配置了新的activity step3 在MainActivity.java 里添加点击事件,跳转到acti…

Android Activity跳转

实现点击按钮&#xff0c;发送消息并跳转到另一个Activity MainActivity添加SendMessage方法 const val EXTRA_MESSAGE "com.example.myfirstapp.MESSAGE"class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super…

Activity跳转和Intent传值

Activity跳转和传值 1.重点内容 1.重点内容 Activity之间的跳转及数据传递&#xff08;如何跳转&#xff1f;如何返回&#xff1f;&#xff09;使用Intent在Activity之间传递数据&#xff09;&#xff08;单向和双向&#xff1f;&#xff09;回传数据&#xff08;怎么回传和…

android跳转界面动画,Android Activity跳转动画效果

Activity的跳转动画在5.0的时候做了一个重大的突破,下面来看一下吧 1.5.0之前的overridePendingTransition 相信大家对OverridePendingTransition还是很熟悉的,使用方法也是很简单就是 //fade_in是第二个界面的进入动画,fade_out是第一个界面退出动画,不想动画传入0 overri…

Activity之间跳转实现--安卓作业2

一.要求分析 目前已经利用adapter实现了将数据传输recycleview界面。这次作业主要是利用intent传递参数并实现activity之间的跳转 1.在Adapter中的内部类viewholder中设置一个监听&#xff0c;用于recyclerview中每一个item myviewholder.textView.setOnClickListener(new …