OA工作流实现的一点经验

OA工作流实现的一点经验最近给学生布置.NET毕业设计,为了提高学生的能力就布置了一个OA系统,布置后发现OA其实也不是哪么的难做,其中最难做的应该要算工作流哪部分,于是我就给学生写了一个工作流的例子.其实在J2EE的开源里面就有工作流开源项目大家可以参考http://www.open-open.com

大家好,又见面了,我是你们的朋友全栈君。最近给学生布置.NET毕业设计,为了提高学生的能力就布置了一个OA系统,布置后发现OA其实也不是哪么的难做,其中最难做的应该要算工作流哪部分,于是我就给学生写了一个工作流的例子.其实在J2EE的开源里面就有工作流开源项目大家可以参考
http://www.open-open.com/08.htm,在.NET方面微软也有一个工作流引擎参考
http://tech.csai.cn/newit/NO000090.htm.

 
 
 
一认识工作流:

 
 
 
什么是工作流?

 
 
 
工作流就是业务流程的计算机化或自动化。许多公司采用纸张表单,手工传递的方式,一级一级审批签字,工作效率非常低下,对于统计报表功能则不能实现。而采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,大大提高了效率,实现了知识管理,提升了公司的核心竞争力。

 
 
 
这是来自于
http://www.ioffice.cn/source/items/gzl-1.htm的解释.

 
 
 
我个人认为工作流更具体一点(或更接近我们程序设计人员)就是,我们根据工作需要制做了一人个表单,然后分配给几个人按一个步骤来完成,我们可以控制每个人可以使用的表单元素,还可以随时调整这个步骤.

 
 
二实现工作流 
 
 


 
 
例如在一个公司里有一个请假的流程是这样的,一个员工请假需要两级审批,一级是部门经理,一级是总经理,这样我们就可以制作一个请假表单:
OA工作流实现的一点经验
在这表单中一共有十个表单控件

OA工作流实现的一点经验

我们可以定义一个请假工作流,分为三步完成以上工作

OA工作流实现的一点经验

分别给每一步骤分配不同的人员及可以使用的字段

OA工作流实现的一点经验

其中填写请假条 可写字段如下图:

OA工作流实现的一点经验

可用使用用户:
OA工作流实现的一点经验
另外两个步骤也要分配对应的元素及人员
对于步骤的第一步的用户可启动流程,然后可以来办理流程的第一步,填写自己权限以内的数据如下图:
OA工作流实现的一点经验
当第一步骤的人完成自己的处理后就可将流程交给流程下一步骤的人
OA工作流实现的一点经验
OA工作流实现的一点经验
此时下一步骤的人如果登录时就会发现有一个流程工作需要自己来办理
OA工作流实现的一点经验
然后转交下一步骤,总经理处理界面如下
OA工作流实现的一点经验
OA工作流实现的一点经验
最后工作流结束时的流程步骤图如下:
OA工作流实现的一点经验
OA工作流实现的一点经验
到此为止就完成了一个最简单的工作流处理!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152424.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • RabbitMQ VS Apache Kafka (九)—— RabbitMQ集群的分区容错性与高可用性

    RabbitMQ VS Apache Kafka (九)—— RabbitMQ集群的分区容错性与高可用性本章,我们讨论有关RabbitMQ的容错性,消息一致性及高可用性。RabbitMQ可以作为集群节点来运行,因此RabbitMQ通常被归为分布式消息系统,对于分布式消息系统,我们的关注点通常是一致性与可用性。我们为什么要讨论分布式系统的一致性与可用性,本质在于两者描述的是系统在失败的情况下表现如何。单节点持久化原语持久化消息队列/交换器RabbitMQ支持两种类型的消息队列:持久化队列和非持…

  • linux接收snmptrap_icmp报文封装在ip包的数据部分

    linux接收snmptrap_icmp报文封装在ip包的数据部分 转:http://blog.chinaunix.net/uid-20644632-id-4115863.html使用snmptrap发送SNMPtrap2014-02-2113:55:33分类:LINUX 使用snmptrap发送SNMPtrap冷胜魁(Seaquester)lengshengkui@gmail.com2014-01-15…

  • 102 二叉树层序遍历

    102 二叉树层序遍历层序遍历,每次层的输出是是一个一维数组,整个二叉树的输出结果是二维数组BFS遍历,依托于队列结构,每次在根节点出栈的时候,将其值加在结果列表中,然后将他的左右孩子节点入队列。层序遍历相对于BFS,需要知道每一层有多少个节点。因此,我们需要稍微修改一下代码,在每一层遍历开始前,先记录队列中的结点数量nn(也就是这一层的结点数量),然后一口气处理完这一层的n个结点。classSolution:deflevelOrder(self,root:TreeNode):.

  • lock free 之 stack

    lock free 之 stack第二个例子(和第一个一样,没加注释,均是消费者需要判断生产者还在生产吗),在实际中,可以考虑使用这个模型,比起我前面写的数据队列来说,用boost::lockfree可以大大减轻工作,这也是今年要努力掌握boost的一个理由#include#include#include#includeboost::atomic_intproducer_count(0);boost::a

  • python读取excel文件代码_python怎么加速读取excel

    python读取excel文件代码_python怎么加速读取excel1.excel文件只包含一个sheet表importxlrd”””读取包含耽搁sheet的excel数据”””workbook=xlrd.open_workbook(“test.xlsx”)#打开工作表sheet0=workbook.sheet_by_index(0)#获取工作簿nrows=sheet0.nrows#获取总行数foriinrange(nrows):each_data=sheet0.row_values(i)print

  • origin柱状图怎么调整柱间距_origin断层柱状图

    origin柱状图怎么调整柱间距_origin断层柱状图minortickets指的是每个主刻度区间内显示几个次刻度!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号