使用OracleMetadataServices構建可定制應用程序_第1頁
使用OracleMetadataServices構建可定制應用程序_第2頁
使用OracleMetadataServices構建可定制應用程序_第3頁
使用OracleMetadataServices構建可定制應用程序_第4頁
使用OracleMetadataServices構建可定制應用程序_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、使用 Oracle Metadata Services 構建可定制應用程序用實例介紹針對個性化和定制的 Oracle ADF 服務作者:John Stegeman2010 年 5 月發布下載:· Oracle JDeveloper Studio 版· 示例應用程序(需要安裝 HR 模式)· Oracle Database XE(如果需要)如今,應用程序用戶希望他們經常使用的應用程序能夠記住他們喜歡的工作方式,從而無需每次登錄時都重新設置應用程序。例如,用戶希望他們常用的搜索和屏幕布局日復一日地保持不變,以便他們更加輕松直觀地使用應用程序。利用 Oracle Met

2、adata Services 提供的基礎,Oracle Application Development Framework (ADF) 應用程序可以提供這樣的持久個性化。本文介紹如何配置您的 Oracle ADF 應用程序以允許最終用戶進行定制。桌面應用程序用戶習慣于能夠設置并保存他們的個人應用程序首選項。例如,Oracle JDeveloper 11 g 用戶可以重排應用程序窗口并設置其他首選項,并且認為當他們退出 Oracle JDeveloper 11 g 并在第二天返回時,他們的首選布局和其他選項不會發生變化,和退出之前一樣。通過以這種方式保存個

3、人首選項,用戶能夠以所需的工作方式來定制應用程序,從而提高工作效率。如今,許多應用程序是通過 Web 瀏覽器提供的,將有越來越多的用戶希望能夠對基于 Web 的應用程序進行同樣的定制。在新的應用程序中建立這樣的可定制性可能需要花費大量開發時間;開發人員需要構建一個框架將個性化設置保存到一個數據存儲中并在運行時對特定用戶應用這些個性化設置。對于復雜的企業應用程序(如 Oracle E-Business Suite),為構建這樣的框架而付出努力很可能是值得的;但對于較小的應用程序,這種努力常常是不值得的。幸運的是,對于使用 Oracle ADF 的開發人員來說,Oracle 已為個性化和定制創建了

4、服務并且已在 Oracle ADF 中集成了這些服務,這些服務稱為 Oracle Metadata Services (MDS)。Oracle E-Business Suite 版本 11i 和 12 使用了 Oracle MDS 的前身以允許用戶對自己的自助服務應用程序進行個性化設置,并允許應用程序管理員針對特定用戶群定制應用程序的各個方面。在 Oracle JDeveloper 11 g 中,開發人員可以利用這些功能為 Oracle ADF Web 應用程序提供同樣的功能。本文撰寫時使用的是 Oracle JDeveloper 11 g (11.1.

5、1.2)。如果您使用所提供的示例應用程序,您將需要更改 Application Navigator 中 Application Resources 面板中定義的 HR 連接的連接信息。另請注意,要運行示例應用程序,您應遵循本文所述任何所需配置步驟。一、 Metadata Services 概念Oracle MDS 將定制和個性化信息存儲在一個信息庫中。該信息庫可以存儲在數據庫中,也可以存儲在基于文件的存儲中;由于可伸縮性和可靠性以及其他方面的原因,我強烈建議使用數據庫存儲 MDS 信息庫(本系列的下一篇文章將介紹如何配置該信息庫)。對于開發/測試/調試周期,與 Oracle JDevelope

6、r 11 g 集成的 Oracle WebLogic Server 提供了一個本地 MDS 信息庫,這樣您就不需要為進行開發而單獨建立一個信息庫了。這個 MDS 信息庫可以存儲各種類型的定制數據及其他元數據,包括:· 用戶在運行時更改過的 Oracle ADF Faces 組件的特定屬性(例如,表中各列的順序)· 用戶保存的搜索條目(用 af:query 組件創建的)· 在設計時針對包括 Oracle ADF Faces、Oracle ADF 業務組件和 Oracle ADF 控制器(頁面流)在內的各種 Oracle ADF 內容開發的自定義設

7、置· 對資源包的定制· 其他 Oracle 產品(如 Oracle B2B)的元數據· Oracle WebCenter 應用程序的元數據本文將介紹如何配置 Oracle ADF 應用程序以允許最終用戶在運行時進行定制,以及如何在開發環境下運行和測試可定制應用程序。本系列中的下一篇文章將介紹如何創建設計時定制,以及如何配置基于數據庫的 MDS 信息庫。二、 最終用戶定制需求為了讓一個 Oracle ADF Faces 應用程序允許最終用戶在運行時定制應用程序,您須執行以下幾個步驟:· 配置 Oracle JDeveloper 11 g 

8、;項目以允許最終用戶定制。· 配置默認的自定義類。Oracle JDeveloper 11 g 文檔未明確是否需要執行此步驟;但在實際中,我發現如果省略了此步驟則更改不會持久,并且我還在日志中觀察到如下錯誤: 圖 1 如果未指定自定義類,日志中會出現警告· 針對要啟用定制的 Oracle ADF Faces 組件配置 Oracle ADF 應用程序描述文件。· 為了在 af:query 組件中保存用戶查詢,要配置一個元數據命名空間(如 Oracle JDeveloper 11 g 版本說明中所述 如果您使

9、用的是 Oracle JDeveloper 11 g 11.1.1.3 版,則不必如此)。· 為了進行部署,您必須創建并注冊一個 Oracle MDS 信息庫(隨后的一篇文章將描述這一步驟)。另外,您的應用程序還必須符合以下要求:· 您的 Oracle ADF Faces 頁面必須以 XML 格式 (.jspx) 保存,并且必須為頁面中的每個用戶可定制組件指定一個 ID。之所以有這些要求,是因為 Oracle MDS 記錄用戶所進行的定制時使用的方式。· 您的應用程序必須啟用安全性。這一要求是為了讓 Oracle MDS 有一個身份,憑借這個身

10、份來保存用戶定制。實際上,您首次創建 Oracle ADF 應用程序時,執行所有要求的步驟是最容易的,因為 Oracle JDeveloper 11 g 會替您配置一些設置項(如自動以 XML 格式創建您的 Oracle ADF Faces 頁面)。1. 第 1 步:創建示例應用程序模型層為了演示如何配置和測試最終用戶定制,我將使用一個簡單的應用程序。為了開發和運行該示例應用程序,您需要訪問一個安裝了 HR 示例模式的 Oracle 數據庫。(您可以從這里下載 Oracle Database 快捷版 (XE),這是 Oracle Database 的一個免費版本。)首先,您

11、將創建該應用程序并創建一些默認的 Oracle ADF 業務組件。然后,在您創建任何 Oracle ADF Faces 頁面之前,您將配置該應用程序使其支持定制。最后,您將創建和測試一些可定制的頁面。您可以執行下面總結的步驟來創建該應用程序,也可以下載示例應用程序。如果您愿意親自創建該應用程序,請執行下面的步驟(我相信您已具備 Oracle JDeveloper 11 g 的一些基本經驗,因此這里提供的是簡要的步驟):1. 創建一個新的 Fusion Web Application (ADF),具體做法是從 Oracle JDeveloper 11 g&

12、#160;的 File 菜單中選擇 New,然后從 New Gallery 中選擇相應的選項: 圖 2 創建一個新的 Fusion Web Application為該應用程序指定一個名稱并接受所有默認設置,完成該應用程序的創建。2. 右鍵單擊 Model 項目,然后選擇 New,這將啟動 Business Components from Tables 向導。創建一個到 HR 示例模式的數據庫連接并創建以下 Oracle ADF 業務組件:a. EMPLOYEES 表的一個實體對象b. 一個基于

13、EMPLOYEES 實體對象的可更新的視圖對象c. 沒有只讀視圖對象(在向導的這一步只需單擊 Next)d. 一個默認的應用程序模塊(一旦到達向導這一步,您就可以單擊 Finish 了)如果您愿意,可以通過右鍵單擊該應用程序模塊并選擇 Run 來測試您創建的 Oracle ADF 業務組件。您應該能夠雙擊 EmployeesView1 視圖對象實例并滾動瀏覽數據庫中的員工。2. 第 2 步:配置應用程序使其支持用戶定制如本文前面所述,理想情況下,您應在開始創建任何 Oracle ADF Faces 頁面之前配置應用程序以使其

14、支持最終用戶定制。要配置該應用程序,執行以下步驟:1. 在 Application Navigator 中雙擊 ViewController 項目以顯示項目屬性。選擇 ADF View 節點,通過選擇對應的選項在會話上啟用用戶定制,然后單擊 OK: 圖 3 在 ViewController 項目中啟用用戶定制2. 使用 Application Navigator,展開 Application Resources 部分,雙擊 adf-config.xml 文件(該文件位于 Descriptors&

15、#160;文件夾的 ADF META-INF 子文件夾下): 圖 4 找到 adf-config.xml 文件3. 為了讓運行時更改真正地持久生效,必須至少注冊一個自定義類。單擊 Add 圖標添加一個自定義類。在 Edit Customization Class 對話框中,指定 oracle.adf.share.config.UserCC 作為該自定義類的名稱(這是 Oracle ADF 提供的默認自定義類;這里不使用該 UserCC 自定義類的功能,但為了讓個性化生效,必須指定一個自定義類),

16、然后單擊 OK: 圖 5 指定自定義類4. 指定哪些 Oracle ADF Faces 11 g 組件應允許最終用戶定制。為此,選擇 adf-config.xml 編輯器的 View 部分,然后使用 Add 按鈕添加特定組件。對于我們的示例應用程序,我們將允許用戶定制表中各列的順序、大小及其他(通過對列組件啟用定制來實現),并且允許用戶定制是否顯示特定的面板框(通過對 panelBox 組件啟用定制來實現): 圖 6 將 panelBox 添加到可定制組件列表中。當您將 column

17、和 panelBox 這兩個組件添加到可定制標簽列表之后,該編輯器應如下所示:圖 7 adf-config.xml 編輯器顯示 column 和 panelBox 為可定制標簽如果您愿意,還可添加其他組件并指定這些組件的哪些特定屬性將持久保存。有關默認情況下可持久保存的 Oracle ADF Faces 組件及其屬性,可參閱此文檔。5. 如 Oracle JDeveloper 11 g 版本說明中所述,為了對用戶保存的查詢啟用持久性(針對 af:query 組件),您必須手動更改 adf-config.xml 文件的配置;如果您使用的

18、是 Oracle JDeveloper 11 g 11.1.1.3 版,則不必進行手動更改。為了進行更改,單擊 adf-config.xml 編輯器的 Source 選項卡以顯示該文件的 XML 源代碼。找到 cust-config 元素,將版本說明中的代碼粘貼過來(我還想添加一條 XML 注釋以便能記住添加該代碼的原因)。完成此步驟之后,您的 adf-config.xml 文件的 adf-mds-config 元素應類似如下所示: 圖 8 手動更改后的 adf-config.xml 文件的 a

19、df-mds-config 節3. 第 3 步:創建示例應用程序視圖層對于示例應用程序的視圖層,您可以隨意創建任何 Oracle ADF Faces 頁面。在我的示例中,我選擇創建兩個頁面:一個頁面上包含一個 af:query 組件,這樣我可以對用戶查詢保存功能進行測試。另一個頁面上包含一個 af:table 組件和一些 af:panelBox,這樣我可以對重新排列表列順序的功能和顯示/不顯示面板框的功能進行測試)。要記住的關鍵事情是(如前所述),要確保您的 JavaServer Faces (JSF) 頁面以 XML 格式 (.jspx) 保存并且您希望允許用戶進行定制的組件已設置了 ID

20、屬性。如果您已執行了至此為止的上述配置步驟,這兩件事情會自動完成。下面我們來執行創建查詢頁面的步驟:1. 右鍵單擊 ViewController 項目并啟動 New 向導創建一個新的 JSF 頁面。 圖 9 創建一個新的 JSF 頁面2. 為這個新頁面指定一個名稱,確保選中了 Create as XML Document (*.jspx) 選項,然后再單擊 OK: 圖 10 指定 JSF 頁面名稱3. 在 Application Navigator 中展開 Data Controls 

21、部分。展開 EmployeesView1 視圖對象實例,在 Named Criteria 文件夾中找到 All Queriable Attributes。將 All Queriable Attributes 項作為一個 ADF Query Panel with Table 拖放到 JSF 頁面上: 圖 11 創建 ADF 查詢面板4. 保留 Edit Table Columns 對話框中默認選中的選項,單擊 OK。您可以仿照這一過程創建另一個包含 af:table 和 af:

22、panelBox 組件(以及任何其他您想測試的組件)的示例頁面。我創建了一個頁面并將一個面板組布局從組件模板拖放到這個頁面上;然后,我在該面板組布局中添加了一些面板框并將一些輸出文本組件放入到這些面板框中。最后,我從數據控件模板中將 EmployeesView1 視圖對象實例作為一個 ADF 表拖放到我的頁面上。我的頁面最終如下所示:圖 12 第二個 Oracle ADF Faces 示例頁面4. 第 4 步:對應用程序啟用 Oracle ADF 安全性最后,在您可以對最終用戶定制結果的持久性進行測試之前,需要對您的應用程序啟用安全性以便 MDS 能夠識別進行定制的用戶;至少,您的應

23、用程序需要進行身份驗證配置。 OTN 的 ADF 代碼角區域有一些涉及 ADF 安全性設置的教程(參見“ADF 代碼角互聯網電視”)。然而,為了進行演示,我們將對示例應用程序進行非常簡單的安全設置。幸運的是,Oracle JDeveloper 11 g 提供的安全向導使我們可以相當容易地進行這個簡單設置。要在示例應用程序中進行安全配置,執行以下步驟:1. 從 Application Navigator 的應用程序菜單啟動 ADF Security 向導: 圖 13 啟動 ADF Security 向導2. 對于我們的簡單測試

24、,選擇 ADF Authentication 并單擊 Next: 圖 14 只選擇 ADF Authentication3. 此時,您可以只單擊 Finish 來結束該向導,如果您愿意,也可以單擊 Next 經歷每個不同的步驟以查看您可以使用的各個選項。4. 完成該向導后,Oracle JDeveloper 11 g 會顯示一條消息告知您安全基礎架構已創建,并且提供一個可獲取詳細信息的鏈接: 圖 15 安全基礎架構已創建5. 為了對這個啟用了安全性的應用程序進行測試,您應使用 Orac

25、le JDeveloper 11 g 的 jazn-data.xml 編輯器創建一些用戶。您可以通過 Application Navigator 的菜單訪問該編輯器,如下所示: 圖 16 打開 jazn-data.xml 編輯器6. 現在,您可以使用 Add 按鈕在配置中添加一些用戶。在我的測試中,我添加了兩個名為“john”和“josephine”的用戶,每個用戶都用“weblogic1”作為口令。由于我們的測試應用程序只有身份驗證(而沒有授權),您不必為這些用戶分配任何角色: 圖 17 創建用戶5. 第 5 步

26、:在集成的 Oracle WebLogic Server 中測試 Metadata Services現在,您可以使用 Oracle JDeveloper 11 g 中集成的 Oracle WebLogic Server 對最終用戶定制結果的持久性以及保存的查詢的持久性進行測試了。您不必建立和注冊一個 MDS 信息庫,因為集成的 Oracle WebLogic Server 使用一個本地 MDS 信息庫進行測試。您可以配置這個模擬的信息庫,使其在每次重新運行應用程序時保留或刪除最終用戶的定制信息(默認情況下將保留最終用戶的定制信息)。為了配置此項設置,可以從 Applicat

27、ion Navigator 的菜單中選擇 Application Properties:圖 18 配置應用程序的屬性MDS 信息庫的配置信息位于 Run 節點下面的 MDS 區域:圖 19 MDS 信息庫的配置信息我們首先來測試 SampleControls 頁面(內含面板框和表)。根據至此我們已進行的配置,我們認為用戶對面板框的 disclosed/undisclosed 狀態或表中各列的順序所進行的任何更改應能保存下來,即使在用戶退出后再次返回到該應用程序時也是如此。為了對此進行測試,我們現在運行該示例頁面:右鍵單擊該頁

28、面并選擇 Run。應用程序啟動后,會提示您輸入登錄信息登錄該程序。首先我們以 john 用戶身份登錄。由于您以前未以 john 用戶身份運行過該程序,該頁面顯示默認的設置(所有面板框都顯示出來,表中各列以默認順序排列):圖 20 默認設置下的 SampleControls 頁面對該頁面進行一些更改,如關閉第二個面板框、縮小 EmployeeId 列的寬度、將 LastName 列拖到表中第一列的位置:圖 21 進行一些用戶定制之后的 SampleControls 頁面如果您自己的定制結果滿意,則可通過關閉瀏覽器退出該應用程序(確保關閉您的瀏覽器的任何打開的實例,這樣不會緩存憑證)。在 Oracle JDeveloper 11 g 的 Log 窗口中,單擊 Target URL 再次運行該程序:圖 22 在 L

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論