Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1311726
  • 博文数量: 416
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 4258
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-23 22:13
文章分类

全部博文(416)

文章存档

2015年(7)

2014年(42)

2013年(35)

2012年(14)

2011年(17)

2010年(10)

2009年(18)

2008年(127)

2007年(72)

2006年(23)

2005年(51)

分类: Oracle

2013-06-26 10:42:07

转自:http://blog.csdn.net/rfb0204421/article/details/7602105
前言:

有时候,因某些需要,必须知道Oracle的Form被使用的情况,以方面我们做出决策;
例如,如果某个Form被使用的次数非常多,那么,这个Form的相关SQL代码就应该优先处理,以减少服务器负荷,从而提供系统运行速度。
或者,(特别是)在系统要升级的时候,这些数据就显得非常重要了:决定哪个Form应该留,哪个Form应该拿掉。
当然,这个信息只是做出决策的参考数据而已。

1.        在Oracle EBS上进行Form跟踪的技术方法:
Oracle EBS的一个Profile 提供此功能:
User_Profile_Option_Name = 登录:审计层(Sign-On:Audit Level)
View_Name = FND_SIGNON_AUDIT_VIEW
此Profile有4个可选值:
‘无’:不跟踪--A
‘用户’:只跟踪到哪个用户登陆
‘职责’:只跟踪到哪个用户以哪个职责登陆
‘表单’:跟踪哪个用户以哪个职责登陆后,运行哪个FORM--D
启用此Profile后,可以在FND_SIGNON_AUDIT_VIEW中查询到相关数据
通过PID或PROCESS_SPID与 v$process/v$session 关联

2.        系统Profile设置:登录:审计层
“登录:审计层”允许您选择审计登录至 Oracle 应用产品用户的层,并增加了四个审计层的功能:无、用户、责任和表单。 
“无”是默认值,
表示不审计登录到 Oracle 应用产品的任何用户。 
在“用户”层的审计线索: 
登录至您的系统的用户 
用户登录和退出的时间
占用的终端 
在“责任”层审计执行了“用户”层审计功能和线索: 
责任用户选择 
用户使用每个责任的时间量 
在“表单”层审计执行了“责任”层审计功能和线索: 
用户选择的表单 
用户使用每个表单的时间 
系统管理员在所有层均可进行查看、更新。 
用户无法查看或更改此预置文件选项。 
此预置文件选项在全部四个层均可查看和更新。 
层         是否可查看         是否允许更新 
站点         是         是 
应用         是         是 
责任         是         是 
用户         是         是 
此预置文件选项的内部名称为 SIGNONAUDIT:LEVEL。 
参考连接:
系统配置实例:
(见文档)


3.        如何监控客制化的Form: 
标准功能的Form,都会被只要设定Profile值,都会被监控的;
但是,客制开发的Form,如果想被系统记录其使用情况和使用次数,必须写代码:
在Pre-Form(或者WHEN-NEW-FORM-INSTANCE)正确输入下面语句,就可以记录每次User登录Form的信息(登录时间,次数等)了:
FND_STANDARD.FORM_INFO('$Revision: 120.0 $', 'From_Name', 'Application_Short_Name',
                       '$Date: 2010/11/02 23:25  $', '$Author: Sam.T $');

例如,Form名称是:XYG_WIP_MOVE_SCH_QY
注册的模组的简称是:XYG
FND_STANDARD.FORM_INFO('$Revision: 120.0 $', 'XYG_WIP_MOVE_SCH_QY', 'XYG',
                       '$Date: 2010/11/02 23:25  $', '$Author: Sam.T $');


只要User登录这个Form,就会被记录下来,方便以后统计Form的被使用次数等信息。
逻辑是:只要在同一个权限登录一次Form,就会被记录一次。
同时,用DB工具也可以方便查看目前用户使用Form的信息。

例如,我打开一个Form下面这个Form:
(见文档)


Form信息:
(见文档)



4.        相关脚本文件:
---记录Form的使用次数:
SELECT A.*, B.FORM_NAME, B.DESCRIPTION
  FROM FND_LOGIN_RESP_FORMS A, FND_FORM_VL B
WHERE A.FORM_ID = B.FORM_ID

---实时查看User的使用Form情况:
SELECT * FROM FND_SIGNON_AUDIT_VIEW

---记录相关信息的PKG:FND_SIGNON
-向Form使用次数的表格塞记录:
/*
INSERT INTO FND_LOGIN_RESP_FORMS(LOGIN_ID
                                ,LOGIN_RESP_ID
                                ,FORM_APPL_ID
                                ,FORM_ID
                                ,START_TIME
                                )
   SELECT AUDIT_FORM.LOGIN_ID
         ,AUDIT_FORM.LOGIN_RESP_ID
         ,A.APPLICATION_ID
         ,F.FORM_ID
         ,SYSDATE
     FROM FND_FORM F, FND_APPLICATION A
    WHERE F.FORM_NAME = AUDIT_FORM.FORM_NAME
      AND F.APPLICATION_ID = A.APPLICATION_ID
      AND A.APPLICATION_SHORT_NAME = AUDIT_FORM.FORM_APPLICATION;
*/
阅读(1850) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~