尋找資料來源的方法

來源:互聯網
上載者:User

關於在Oracle EBS環境下如何尋找資料來源的文章幾年前就已經開始整理,但是其中關於OAF方面的一直沒有整理,導致這份文檔一直殘缺不全,

有很多次同事都向我索要相關文檔都未能如願以償,新的一屆培訓工作再次啟動,為了自己也能夠“一勞永逸”,將相關內容整理髮出。

在Oracle E-Business Suite 環境下進行二次開發,要求技術顧問對EBS系統的結構和實現有一定的瞭解,同時熟悉系統的關鍵流程,進而掌握背景表結構設計,尋找資料來源需要達到的兩個目的是:

  1. 到對應的資料庫物件:視圖或表
  2. 找到介面中欄位對應背景表列

本文先介紹如何尋找Form介面對應的資料來源,快速找出FOrm介面後台對應的表/視圖以及對應的列,

Form本身特有的特點,致使尋找Form介面所對應的後台資料來源變得相對簡單方便。

 

一、使用“查看—> 記錄”功能

“曆史紀錄”可以找出資料區塊對應的後台資料庫物件,並不能找出欄位所對應的資料庫列。

適用場合:適用於基於資料庫塊的資料來源尋找

前提:游標停留在需要查詢資料來源的資料區塊中,並按某個條件查詢出資料

步驟:

  1. 選擇菜單:Help –> Record History(協助 –> 曆史紀錄)
  2. 查看快顯視窗中Table Name的值,這個值便是游標所在資料區塊對應的後台資料庫檢視或資料庫表

執行個體(尋找使用者所對應的後台資料庫物件):

  1. 游標定位於User Name欄位
  2. 執行查詢,查詢出SYSADMIN使用者資訊
  3. 選擇菜單:Help –> Record History
  4. 彈出如下視窗,其中Table Name的值:FND_USER,既是後台資料庫物件

限制:曆史紀錄”的方式只適用於基於資料庫塊的查詢;而對於非資料庫塊的後台查詢沒有辦法使用,不能使用的地方會彈出如下的訊息:

 

二、使用“查看 —> 診斷 –> 檢查”

通過檢查功能可以尋找出欄位對應後台資料庫列資訊,因此使用此方法的需要先找出對應的資料庫檢視或者表

步驟:

  1. 游標停留在Form介面中的一個欄位
  2. 選擇菜單:Help —> Diagnostics –> Examine
  3. 在彈出的視窗中輸入資料庫使用者APPS的密碼,確定
  4. 快顯視窗中Field對應的值既是Form所對應的欄位,一般情況下,此值既是資料列的列名

執行個體(尋找出User Name欄位所對應的後台資料庫列):

  1. 游標停留在User Name欄位中
  2. 選擇菜單:HelpàDiagnosticsàExamine
  3. 彈出如下視窗,輸入資料庫使用者APPS的密碼,確定
  4. 彈出如下視窗,Filed的值:USER_NAME就是User Name欄位所對應的後台資料庫列,因此本欄位為:fnd_user.user_name

注意事項:使用此方法來尋找資料列時,我們得到的只是Form欄位的名稱,很多使用Form欄位的名稱和所對應的資料來源列一致,但是在少數情況下,Form欄位名稱和後台資料庫列名存在差異,這個使用此方法就無法100%適用,而需要通過名稱等進一步推測確認。

 

三、使用”Last Query”功能

使用最後查詢可以找出在Form中最後執行查詢的SQL語句,從而得知對應的資料來源以及相關資料庫列資訊

適用場合:同時適用於基於資料庫塊和非資料庫塊的資料來源尋找

步驟:

  1. 在Form中進行資料查詢
  2. 游標停留在Form介面中的一個欄位上
  3. 選擇菜單:Help –> Diagnostics –> Examine
  4. 在彈出的視窗中輸入資料庫使用者APPS的密碼,確定
  5. 快顯視窗中,選擇Block為:SYSTEM,Field為:LAST_QUERY
  6. Value中的SQL語句既是Form中最後查詢的語句

執行個體(找出並發管理器對應的後台資料來源):

  1. 進入並發管理器介面,並進行查詢(自動查詢),使用“曆史紀錄”方法無法得到表
  2. 選擇菜單:Help –> Diagnostics –> Examine,在彈出的視窗中輸入APPS使用者密碼
  3. 快顯視窗中,選擇Block為:SYSTEM,Field為:LAST_QUERY
  4. 取得Value為:
?[Copy to clipboard]View Code SQL

12345678910111213141516
SELECT ROWID,       row_id,       concurrent_queue_name,       user_concurrent_queue_name,       target_node,       max_processes,       application_id,       concurrent_queue_id,       control_code,       manager_type  FROM fnd_concurrent_queues_vl WHERE enabled_flag = 'Y' ORDER BY decode(application_id, 0, decode(concurrent_queue_id, 1, 1, 4, 2)),          sign(max_processes) DESC,          concurrent_queue_name,          application_id

 

這樣可以取得資料庫檢視:FND_CONCURRENT_QUEUES_VL

限制:由於Last Query中查詢到的SQL語句是Form中最後一次查詢的語句,因此如果需要尋找像主從關係中主塊資料來源就沒有辦法適用

 

四、使用SQL Trace功能

使用SQL Trace功能,可以知道在Form操作過程中,對資料庫系統進行了哪些查詢、DML和DDL操作,可以全面的查看與資料庫有關的操作和效能統計資訊。

此方法是這些方法中功能最強大,同時也是最複雜的一個,而且它經常成為效能調試中的一個得力工具。

步驟:

  1. 啟動Trace模式
  2. 在Form中進行操作,並保證操作有查詢、插入、更新或刪除動作
  3. 關閉Trace模式
  4. 登陸資料庫伺服器
  5. 使用Tkprof工具格式化Trace結果檔案輸出
  6. 查看被格式化過的Trace檔案
  7. 推測驗證資料來源

執行個體(定義一個使用者時,找到後台所進行的DML操作,進而找到後台資料來源):

  1. 開啟Form介面進入輸入狀態,還是以上面使用的User介面為例
  2. 選擇菜單:Help –> Diagnostics –> Trace –> (Regular Trace, Trace with Binds, Trace with Waits, Trace with Binds and Waits)
  3. 記下Trace檔案路徑及名稱
  4. 在介面上操作,輸入資訊,儲存
  5. 選擇菜單:Help –> Diagnostics –> Trace –> No Trace,失效Trace功能
  6. 使用資料庫作業系統使用者Telnet到資料庫伺服器,切換到$ORACLE_HOME/admin/<SID>_<hostname>/udump(上面所顯示的路徑)
  7. 使用Tkprof命令格式化Trace輸出:tkprof demo_ora_21088_SYSADMIN.trc demo_ora_21088.out
  8. 下載並查看輸出檔案:demo_ora_21088.out

 

五、查看Form原始碼

對於Form應用來說,如果上面的方法還不足以滿足需求的話,可能就需要採用最徹底的辦法了,直接查看Form的原始碼,我想這個方法是最能夠解決問題的方法了,但是由於需要查看原始碼,對於查看的人員就需要熟悉Form的開發,因此一般情況下不先推薦使用它,但是對於如果希望完全搞清楚Form應用後台邏輯的情況下,也只能採用這種方式。

此方法在此就不做介紹了,此方法可以說只適合Form開發人員使用。

 

上面的方法是Oracle EBS二次開發中最常用最有效方法,在Form相關的開發和應用中,掌握的以上的方法基本上能夠解決絕大多數的問題。

轉載:http://oracleseeker.com/2009/08/11/how_to_find_the_table_view_of_form_application_in_oracle_ebs/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.