標籤:
前言:
有時候,因某些需要,必須知道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。
參考串連:http://www.onejava.com/article/oracle/fnd/adupapp.htm
系統配置執行個體:
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;
*/
如何啟用Oracle EBS Form監控