Oracle Workflow Demo (1) - 一个简单的请假申请工作流

时间:2022-07-21 10:09:46

目标:通过Oracle Workflow做一个简单的请假申请工作流,效果:经理接到流程后,可以Approve,也可以Reject。


File > Quick Start Wizard

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

Item Type名字取得不好,让人不好理解,实际上Item Type可以就理解为工作流程序,一个Item Type下边,有一个或者多个Process,Process是工作流的核心。


Persistence Type:

Permanent:产生工作流信息永久性的保存,不会被清除掉,很少有流程要设置成permanent
Temporary:工作流信息允许被清除,对于工作流的信息一般都没有必要长期保存,记录将来被清除掉,一般情况我们都会把这个选项设置为Temporary,并且可以在Number Of Days中设置多少天后可以清除信息。

Oracle提供了一个Concurrent Program "Oracle Workflow Purge Obsolete Data"用于清除过期的Workflow数据。


定义一个Notification,这个Notification是给老板看的,让老板知道我们的请假申请。

Oracle Workflow Demo (1) - 一个简单的请假申请工作流


定义一个Message,里边协商我们想请假的原因

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

这个Message默认是给Notification'Leave Request'用的,所以我们最好把Message的名字和Notification的名字保持一致,这样一眼就能看出之间的对应关系。

Message的Priority类似于邮件的优先级,可以Normal,High,Low

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

然后切换到Message的Body页签,输入通知内容的信息。


然后再重新打开‘Leave Request’ Notfication的属性面板,在Message项上关联刚才新定义的Message

Oracle Workflow Demo (1) - 一个简单的请假申请工作流


定义一个Attribute,用于指定我们的Manager

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

Attribute相当于全局变量。因为我们的请假流程需要老板审批,我们需要告诉工作流,老板是谁。


接下来,双击Default Process,就能看到下边的工作流图

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

刚开始就会有'Start',‘End’两个基本组件被包含进来(这两个组件实际上是从‘Standard’ Item Type中继承过来的)

Oracle Workflow Demo (1) - 一个简单的请假申请工作流


接下来,在流程中新增一个Notification图标

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

在Node页签中,指定Performer为Manager,这里Performer指的就是谁来查看或者处理这条notification

Oracle Workflow Demo (1) - 一个简单的请假申请工作流


鼠标右键拖拽,连接Start -> Leave Request -> End

Oracle Workflow Demo (1) - 一个简单的请假申请工作流


这样一个最简单的请假通知工作流就做完了。保存成wft文件,并上传到Server上。并执行工作流命令来把wft文件上传到数据库中。

WFLOAD apps/apps 0 Y UPLOAD PTLEAVE.wft

(在真实运行过程中,系统是不会读取wft文件的,只会读取数据库中的工作流定义)

接着登陆到系统,职责:Workflow Administrator Web Applications,功能:Developer Studio,'Type Internal Name'为工作流的Item Type的Internal Name,找到后点击‘Run’按钮(如果你看不到这个按钮,需要切换到sysadmin用户)

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

Run之后,指定Manager,这样Manager用户登录后在Notification下就能看到消息了

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

OK之后,工作流就变成Closed状态

Oracle Workflow Demo (1) - 一个简单的请假申请工作流


这就是一个最简单的请假工作流通知的做法


接下来对现有的工作流稍作改动,给Manager增加允许或者拒绝的选项。

1.增加一个lookup,用于表明同意请假,拒绝请假

2.增加两个Message,用于标明,同意,或拒绝
3.相应的增加两个Notification,注意OK和NO的通知,需要选择Employee Role,这样manager在审批后,Employees可以看到

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

在流程图中连接各个Activities

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

为了让Manager看到更丰富的信息,可以在Leave Approval Message中,增加若干个Attributes.

比如经理的名字,员工的名字,请假的起始日期,结束日期...

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

在Message Body中,用&Attribute的样式引用上边定义的私有属性

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

上传wft文件到服务器上,并加载到数据库中,同样以sysadmin用户登录,Run

在下表中填入入口Attribute,Manager的姓名,员工的姓名,请假起始日期,结束日期

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

Administration > Notification Search,在To栏位搜索Manager的名字

Oracle Workflow Demo (1) - 一个简单的请假申请工作流

就能看到经理Brown, Casey下的通知,经理就可以审批这个工作流了

Oracle Workflow Demo (1) - 一个简单的请假申请工作流


这个案例的工作流文件已经上传到了新浪微盘上了,有兴趣可以参考下

TPLEAVE_Sample.wft