基于开源工作流引擎OSWorkflow的业务系统实例——请假审批系统

原创 2007年10月10日 16:40:00

基于开源工作流引擎OSWorkflow的业务系统实例——请假审批系统

关键字: 企业应用   Workflow      

最近工作中一个项目打算采用工作流技术,所以对工作流特别是OSWorkflow进行了一些学习和研究,为了向项目组其他成员演示和进一步进行应用,做了这个小业务系统,现在经过整理把它拿出来,希望对想要了解OSWorkflow的朋友有一点帮助。我接触的时间也不长,所以哪个地方有问题还希望大家多多指点,对工作流技术共同提高。

这个小业务系统的主要目的
演示如何基于OSWorkflow构建业务系统,即如何将原来程序内硬编码的业务过程抽取出来,放到底层的工作流引擎中,上层业务模块只进行具体业务动作的执行,同时演示着两层如何“集成”。
本系统演示三个方面:业务处理和OSWorkflow的基本“集成”、工作流引擎根据工作流定义调用业务处理逻辑、基于业务数据的工作流跳转

业务用例描述
核心工作流:
1、员工填写请假申请单,包括“请假原因”和“请假天数”,填写后进行提交;
2、部门主管对员工请假申请进行审批,同意员工请假;
3、人力资源主管对员工请假申请进行审批,同意员工请假;
4、系统发送邮件通知员工请假申请已获得批准;
5、用例结束;

备选工作流1:
在第一步中,如果员工请假天数小于等于3天,那么不需要部门主管审批,直接从第一步跳到第三步,又人力资源审批;

备选工作流2:
在第二步中,如果部门主管不同意请假申请,那么系统将给请假员工发送请假没有通过的邮件通知,用例结束;

备选工作流3:
在第三步中,如果人力资源主管不同意请假申请,那么系统将给请假员工发送请假没有通过的邮件通知,用例结束;

系统运行/开发环境
数据库:MySQL 5.0.18
应用服务器:Tomcat 6.0 
开发工具:MyEclipse 6.0

系统搭建
1、创建数据库,我命名为workflow,也可命名为任意名字,只要在数据源配置中正确配置即可;
2、创建数据表并初始化用户及用户组数据,执行附件中的osworkflow.sql即可;
3、在Tomcat下配置数据源,我的配置如附件wf_conf
4、将osworkflow及log4j的配置文件leave_apply.xml、osuser.xml、osworkflow.xml、propertyset.xml、workflows.xml、log4j.properties拷贝到工程目录src下面;
可直接将附件的osworkflow.rar解到项目中,里面包括所有的源程序和资源包。

工作流定义文件说明
依据本业务需求的工作流定义文件如下
定义中包括6个step

step1是员工请假申请的步骤,本步骤的action在执行时将回调业务方法类ApplyFunction,将申请单数据插入到数据库中,同时处理结果将根据请假申请天数dayCount进行判断,如果请假申请天数大于3天,将跳到step2让部门主管审批,如果不大于3天,将直接跳到step3让人力资源主管审批;

step2 是部门主管审批,如果审批同意(opinion!=2)将跳到step3再由人力资源主管审批,如果审批不同意(opinion==2)将跳到step5自动发“申请未批准”邮件通知步骤;

step3 是人力资源主管审批,如果审批同意(opinion!=2)将跳到step4自动发“申请批准”邮件通知步骤,如果审批不同意(opinion==2)将跳到step5自动发“申请未批准”邮件通知步骤;

step4和step5都是自动发送邮件通知步骤,执行完之后跳到空步骤step6结束该工作流实例。

工作流定义文件 (可直接解压到工程目录)

下载:项目文件
备注:如果出现数据库约束违例,可以删除所有表的外键

Activiti工作流样例教程(请假-审批流程并向用户展示工作流实时过程图)

1 配置工作流。 启动activiti-explorer并登录。(用户名:kermit;密码:kermit) 选择 流程->流程设计工作区->新建模型 输入流程名称进入流程设计界面,绘制流程图: ...
  • xx_yTm
  • xx_yTm
  • 2014年12月24日 11:34
  • 3611

osworkflow工作流引擎学习笔记

本指导资料假定你已经部署OSWorkflow的范例应用在你的container上。范例应用部署是使用基于内存的数据存储,这样你不需要担心如何配置其他持久化的例子。范例应用的目的是为了说明如何应用OSW...
  • wacky
  • wacky
  • 2016年08月12日 10:55
  • 1853

构建学生请假审批流程

构建学生请假审批流程标签(空格分隔): activiti1.绘制流程图:start->学生请假申请->班长审批->班主任审批->end,对这个流程图文件命名为:StudentLeaveProcess....
  • u013985662
  • u013985662
  • 2017年06月17日 13:58
  • 418

审批与工作流的不同

审批更多我上下级,管与被管之间,更多体现的权力意志。 而工作流,则不一定。工作流,更强调跨部门、跨专业的作业流程交互。 ---------------------------------- 所以,审批...
  • haoyujie
  • haoyujie
  • 2015年01月04日 15:17
  • 2622

共有90款 工作流引擎开源软件

共有90款 工作流引擎开源软件,第1页 java工作流引擎,开源工作流引擎,工作流引擎是什么,工作流引擎设计,工作流引擎介绍,.net工作流引擎,工作流引擎比较,工作流引擎内核揭秘,.net开源...
  • gysea123321
  • gysea123321
  • 2016年07月07日 12:34
  • 4969

OsWorkFlow工作流简介

OsWorkFlow工作流
  • gaowenhui2008
  • gaowenhui2008
  • 2016年04月07日 14:42
  • 1019

企业为什么要上工作流

企业为什么要上工作流     现代企业不同于过去家庭作坊式的手工劳动,员工人数通常在几十乃至上万人,如何通过流程的规范化提高员工的生产合作效率,如何让用户完全地融入业务流程中并且无缝地同其他同事进行协...
  • wu21211721
  • wu21211721
  • 2016年07月25日 14:09
  • 679

ERP系统中的工作流和业务流

首先解释两个概念:    工作流,将工作分解成几段不同的任务,然后通过一定的规则和过程来执行这些任务并对它们进行监控,达到提高工作效率,降低生产成本,提高企业竞争力等目的.它大多应用于办公自动化领域....
  • xuexiaoxu1990
  • xuexiaoxu1990
  • 2015年12月11日 14:51
  • 1917

员工请假系统

效果展示 总体效果图 提示信息 比如当前有待审批的请假申请 请假 假期审批...
  • tiplip
  • tiplip
  • 2014年12月10日 16:22
  • 2042

RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件WinForm业务平台

RDIFramework.NET━工作流组件主要涵盖工作流的设计与定义、流程实例的发起与运行、业务流程的监控与管理、工作流组件与业务系统的集成与协作等内容。WinForm业务协同平台是流程系统与用户交...
  • chinahuyong
  • chinahuyong
  • 2015年01月21日 09:10
  • 3497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于开源工作流引擎OSWorkflow的业务系统实例——请假审批系统
举报原因:
原因补充:

(最多只允许输入30个字)