资料下载网
首页 计算机 考试教辅
Oracle Workflow实例解析教程 pdf电子书免费下载,百度云
首页 > 计算机 > 数据库技术 > Oracle Workflow实例解析教程 pdf电子书免费下载,百度云

《Oracle Workflow实例解析教程》pdf电子书免费下载


下载方式一:

百度网盘下载地址:https://pan.baidu.com/s/1wX5JVbunl8CtQ34_kocCOg
百度网盘密码:1111

下载方式二:

http://ziliaoshare.cn/Download/ae_123573_do_OracleWorkflowSLJXJC.zip

 


Oracle Workflow实例解析教程

作者:empty

出版社:empty

《Oracle Workflow实例解析教程》介绍

一、Start to End

1、Create new xx.wft file.

用向导新建一个Item Type

P: Workflow Builder/File/Quick Start Wizard

修改New Item Type中Internal Name为CW_DEMO和Display Name为CW_DEMO_R12_TRAINING;

New Process中Internal Name为CW_TOP和Display Name为R12_DEMO_TOP_Process;

另存文件为:CW_WF_DEMO.wft

2、完善此Process

双击CW_TOP Process,可以看到已经有一个Start 和End节点;

然后,右键Start节点,不要放开鼠标,拖到End节点,这样就把这两个点连起来了。

3、Save to DB

I:直接通过Workflow Builder保存到数据库

P: Workflow Builder/File/Save As

点击OK即可(客制开发经常用的方式)

II:Submit request:Workflow Definitions Loader

首先用FTP工具把CW_WF_DEMO.wft上传到应用服务器。

然后到系统管理员职责提交请求。

Mode选Upload,File要写绝对路径!

(上线安装的时候使用)

4、Run Workflow

I:Workflow管理界面

P:System Administrator/Workflow/Administrator Workflow/Home

检查Workflow的管理员:

SELECT wfr.text FROM wf_resources wfr WHERE NAME = 'WF_ADMIN_ROLE' AND wfr.LANGUAGE = 'US';

点击 Run 功能键:

按照上图输入资料:Item Key是本工作流运行的标志;可以理解为保存在数据库中的Item Type的一个标志。User Key是用户看到的实例标志。

点击Submit

II:PL/SQL(Package)启动Workflow

DECLARE

l_item_key VARCHAR2(30) := 'CW_WF_DEMO_002';

l_user_item_key VARCHAR2(30) := 'CW_WF_DEMO_002_UK';

l_item_type VARCHAR2(30) := 'CW_DEMO';

l_process VARCHAR2(30) := 'CW_TOP';

BEGIN

--01 创建

wf_engine.createprocess(itemtype => l_item_type,

itemkey => l_item_key,

process => l_process,

user_key => l_user_item_key);

--02 初始化

--本例不需要

--03 启动

wf_engine.startprocess(itemtype => l_item_type, itemkey => l_item_key);

COMMIT;

dbms_output.put_line(l_item_key);

END;

同样的方式查看Workflow的运行状态:

FORM 等其他地方以同样的方式启动~

5、运行情况查看

P:System Administrator/Workflow/Administrator Workflow/Home

切换到Status Monitor界面,输入关键字查询

选择需要查看的Workflow,进入Status Diagram画面;

绿线表示运行完毕

6、That is all

二、Start—>NotificationEnd

1、把上一节的Item Type拷贝一份作为练习前提

Copy and Paste;新的Internal Name为CW_WF001,Display Name为:CW_WF001_NOTIFICATION

2、新建6个Attribute

P:N: 选中Attribute/右键/New Attribute

Internal NameDisplay NameTypeLength

APPROVER_IDApprover IDNumber

APPROVER_NAMEApprover NameRole

APPROVER_DSP_NAMEApprover Display NameText360

SUBMITER_IDSubmiter IDNumber

SUBMITER_NAMESubmiter NameRole

SUBMITER_DSP_NAMESubmiter Display NameText360

按如上表数据建立Attribute,用来保存提交者和审批者的信息。

Attribute的用法:

Attribute相当于全局变量,供整个Item Type的元素调用;

Attribute作为Notification的执行者;

Attribute作为Function的调用参数;几乎任何PL/SQL函数都需要通过取得Attribute变量--判断Attribute变量--设置Attribute变量,决定程序如何走,返回什么值

3、新建1个Message

P:选中Message/右键/New Message

Internal NameDisplay NameText Body

APPROVAL_REQApproval RequisitionJust for CW Demo

Message from &SUBMITER_DSP_NAME

保存的时候,系统显示找不到我们引用的Attribute:SUBMITER_DSP_NAME

Message 中引用的变量必须在自己的Attribute中。可以手工建立:Message/右键/New Attribute;也可以直接把SUBMITER_DSP_NAME复制到这个Message下面。

4、新建1个Notification

P:选中Notification/右键/New Notification

Internal NameDisplay NameMessage

REQ_APPROVALRequisition ApprovalApproval Requisition

5、修改Process:CW_TOP

把上面建的Notification拖到CW_TOP(R12_DEMO_TOP_Process)中

此时,右键这里的Requisition Approval这个Notification查看属性;按照如下画面设置Performer,也就是通知接收人。

接下来,把原来指向End的箭头左键拖到指向Requisition Approval;再从Requisition Approval右键拖一条线到End,重新布局

6、保存到数据库,启动工作流

先找一个测试的账户:

SELECT r.NAME, r.display_name, r.orig_system, r.orig_system_id

FROM wf_roles r

WHERE r.NAME = 'AIC_CHUCK';

WF_ROLES说明:(Workflow的核心功能之一消息(Notification)发送人只承认此table资料)

Type of RoleOrig_SystemUser_Flag

ERP用户,未和HR中的员工建立关联FND_USRY

ERP用户,和HR中的员工建立关联PERY

不是ERP用户,而是HR中的员工PER_ROLEN

客户/员工HZ_PARTYY

直接插入WF_LOCAL_USERS的记录WF_LOCAL_USERSY

直接插入WF_LOCAL_ROLES的记录WF_LOCAL_ROLESN

职责FND_RESP ID>N

职位PositionPOSN

启动脚本:

DECLARE

l_item_key VARCHAR2(30) := 'CW_WF_DEMO_003';

l_user_item_key VARCHAR2(30) := 'CW_WF_DEMO_003_UK';

l_item_type VARCHAR2(30) := 'CW_WF001';

l_process VARCHAR2(30) := 'CW_TOP';

l_submiter_id NUMBER := 1013536;

l_approver_id NUMBER := 1013556;

l_orig_system VARCHAR2(30) := 'FND_USR';

l_user_name wf_roles.NAME%TYPE;

l_display_name wf_roles.display_name%TYPE;

BEGIN

--01 创建

wf_engine.createprocess(itemtype => l_item_type,

itemkey => l_item_key,

process => l_process,

user_key => l_user_item_key);

--02 初始化

wf_directory.getusername(p_orig_system => l_orig_system,

p_orig_system_id => l_submiter_id,

p_name => l_user_name,

p_display_name => l_display_name);

wf_engine.setitemattrnumber(itemtype => l_item_type,

itemkey => l_item_key,

aname => 'SUBMITER_ID',

avalue => l_submiter_id);

wf_engine.setitemattrtext(itemtype => l_item_type,

itemkey => l_item_key,

aname => 'SUBMITER_NAME',

avalue => l_user_name);

wf_engine.setitemattrtext(itemtype => l_item_type,

itemkey => l_item_key,

aname => 'SUBMITER_DSP_NAME',

avalue => l_display_name);

wf_directory.getusername(p_orig_system => l_orig_system,

p_orig_system_id => l_approver_id,

p_name => l_user_name,

p_display_name => l_display_name);

wf_engine.setitemattrnumber(itemtype => l_item_type,

itemkey => l_item_key,

aname => 'APPROVER_ID',

avalue => l_approver_id);

wf_engine.setitemattrtext(itemtype => l_item_type,

itemkey => l_item_key,

aname => 'APPROVER_NAME',

avalue => l_user_name);

wf_engine.setitemattrtext(itemtype => l_item_type,

itemkey => l_item_key,

aname => 'APPROVER_DSP_NAME',

avalue => l_display_name);

--03 启动

wf_engine.startprocess(itemtype => l_item_type, itemkey => l_item_key);

COMMIT;

dbms_output.put_line(l_item_key);

END;

7、查看执行结果

用HENKEY账户进入系统:

用CHUCK账户进入系统接收通知:

8、That is all

三、含分支处理(Function)的Notification(Form Button提交)

1、用Wizard创建新的Item Type,

Internal Name为CW_WF003,Display Name为CW_WF003_EMP

Process Internal Name为CW_EMP, Display Name为CW_EMP_FORM

2、Create a new look up

P:选中Lookup Type/右键/New

可以直接使用Standard的Lookup Type;如果Standard的不符合要求,可以自己建;

然后增加两个Lookup Codes。

TypeInternal NameDisplay Name

Lookup TypesAPP_TYPEApprove Type

Lookup CodesNONO

YESYES

3、新建3个Attribute

Internal NameDisplay NameTypeLength

EMPNOEmployee noNumber

EMPNAMEEmployee nameText

APPROVERAPPROVERText

4、新建一个Message

Internal NameDisplay NameText BodySubject

MESS_APPApprove Message工号:&EMPNO

姓名:&EMPNAMENew Employee need to approve

Result Display Name:APP_MESSAGE

选择建立的LookUp

把建立的Employee Name 和No加到Message上来~

5、新建一个Notification

在Notification:Requisition Approval属性的Activity标签页,Internal Name为APP_NOTI,Display Name为Approve Notification,Result Type为建立的LookUp

6、新建2个Function

具体值如下:

Internal NameDisplay NameFunction Name

APP_EMPApprove EmployeeXX_WF_EMP_PKG.approve_emp

REJ_EMPReject EmployeeXX_WF_EMP_PKG.reject_emp

7、修改Process的流程

从Standard中拖1个End Function过来,修改他们的Start/End属性为End;

并把建立的Function拉过来,重新布局~

并且要此时要修改Notification的Node属性,增加Performer(此属性只有当Notification布局到Process上的时候才显现)

8、测试

保存到数据库,运行脚本;查看运行状态:

Start.sql

查看Notification结果:

Notification明细:

点击yes按钮,查看工作流

9、That is all~

四、Others

1、Message中的Html Body格式

Your Note: &NOTE

Please Approve The Following Document.

br>

From &SUBMITER_DSP_NAME

br>

Document Number: &DOCUMENT_NUMBER

br>

Document Amount: &DOCUMENT_AMOUNT

&NOTE

2、常用隐藏按钮功能

(1)#HIDE_REASSIGN,可以隐藏标准的Reassign按钮

(2)#HIDE_MOREINFO,可以隐藏标准的Request Information按钮

(3)#HISTORY,可以隐藏标准的Action History

3、审批流程

(1)制作下面的审核流程

(2)流程说明

用PLSQL启动工作流

Create Table,启动工作流时,Insert初始资料

提交者、审核者的初始化放在Initialization节点执行

接收者,接到消息后,对于不同的回复,通过Function Update原来Insert的单据资料

单据ID是来源于Sequence,Item Key 、User Item Key都要通过Sequence自动获取

4、处理超时的Notifications

从Standard Funtion中把Loop Counter 拉到Process中,处理超时为处理的Notification

5、Form提交Workflow

开发Form画面,然后用按钮功能等启动工作流;

6、Workflow 提交Form画面

--格式'FUNCATION_NAME:PARAMETER=VALUE'

--Function_Name如果在系统中不存在,界面上就不会有那个链接

wf_engine.setitemattrtext(itemtype => itemtype,

itemkey => itemkey,

aname => 'OPEN_FORM_COMMAND',

avalue => 'FND_FNDSCAUS');

7、

五、


《Oracle Workflow实例解析教程》目录

计算机


python
AI人工智能
javascript
计算机网络/服务器
数据库技术
计算机F

考试教辅


考研考博
英语四六级

沪ICP备18046276号-5