1. 程式人生 > >Oracle EBS Form個性化開發

Oracle EBS Form個性化開發



   Form個性化開發內容不是很多,在國內的專案上客戶化介面上基本用不上,相關開發文件有的講解的很詳細,有的講解太過簡練,希望通過這個文件可以給我們這些剛開始做個性化的新手快速完成需求,不要再這方面花費過多的時間,我們都做過Form開發,可以把Form個性化的開發都用類比Form開發去理解就很快能上手。

    Form啟動時,所有與當前Function相關的個性化規則都會被載入到記憶體,當Form觸發特定的Event時候,系統會搜尋相應的個性化規則並進行匹配,得到匹配的規則,再按照規則序號從小到大一次執行對應的個性化效果。執行完畢後,將該Event會傳到Form,執行Form原先定義的處理程式碼。所以這裡注意的是,Form個性化的規則是加在在Form原先定義的程式之前的,如果針對同一個事件,個性化和Form原先定義的程式都處理了,那麼個性化的效果就會被Form原先定義的程式所覆蓋,看不到個性化效果,這一點需要注意。

1. 基於Form介面的個性化開發

  對標準介面簡單的個性化開發可以直接在開發介面上進行一些修改,無需修改標準的CUSTOM.pll檔案,避免對標準介面產生較大的影響。如果當前看不到幫助選單的診斷功能的話,在介面上做個性化開發之前需要修改兩個配置檔案的值,分別是:

公用程式:診斷    是

隱藏診斷選單項    否

1.1個性化介面介紹


注意事項:

1.     介面上頂部的有當前的表單名和功能名,如果是基於CUSTOM.pll檔案的個性化,通常檢測的都是當前的Form名稱而不是功能 。

2.     除錯模式:關閉,顯示除錯資訊,逐步。

關閉:不使用除錯模式,即當Action的型別為Message,Message的Message Type 為“除錯“ 的時候,在開啟Form介面的時候並不顯示“除錯”型別的訊息。

顯示除錯資訊:允許顯示活動(Action)為Message,Message Type為“除錯”的訊息

逐步:設定為這個模式可以很方便的檢視設定的個性化在哪一步起作用了,設定完成個性化之後,每次開啟應用介面滿足個性化條件的時候都會顯示滿足那個個性化規則。

3.     對一個介面所加的個性化序號在1到100直接,個性化的執行順序按照需要的大小的順序,序號可以是小數。

4.     執行該個性化的條件中的觸發器時間,對於Form介面上只能用到五個觸發器,並不像在Form Builder 開發工具中使用到很多的觸發器,因為個性化效果是在Form程式碼之前載入的,這五個觸發器分別是

WHEN-NEW-FORM-INSTANCE

WHEN-NEW-BLOCK-INSTANCEWHEN-NEW-RECORD-INSTANCEWHEN-NEW-ITEM-INSTANCEWHEN-VALIDATE-RECORD

還有其它的SPECIALLn(總共45個,最終的結果是在選單欄的下拉列表中新增一個選單項,SPECIAL115是在Tools選單下,1630是在Reports選單下,3145Actions選單下,需要注意的是,一般Actions選單不顯示,因為它下面沒有選單專案,沒有顯示的意義,只有在這個選單下建立了選單項才會有顯示出這個選單,MENUn15個)觸發器。

有時候我們在個性化的開發中往往不能選準觸發器,觸發的時間過早會導致介面上相關欄位的取值不能取到,觸發的時機過遲會導致達不到效果。我們可以把介面設定成顯示自定義狀態,然後在介面上試著操作,找到我們對應的觸發時機,需要打開個性化程式碼中的“顯示自定義選項”的單選框。使用完成後需要關閉。

還需要注意的是,基於Form介面的五個WHEN觸發器,不一定在所有的介面中都有,比如說個性化希望加在一些標準介面的查詢介面,希望在點選查詢按鈕的時候對輸入的資料經行校驗,因為個性化不能載入在按鈕上,所以我們想把資料的校驗載入在when-validate-record上,但是查詢介面並沒有儲存記錄,更新記錄,驗證記錄的要求,也不存在這個觸發器。

5.   處理模式,也屬於一個個性化執行條件,主要是指定個性化是否需要在查詢狀態下使用,或者僅在查詢狀態下使用。

6.   層,行業,地點,職責,使用者,表示限制個性化的產生效果的範圍,但是這裡的效果並不像配置檔案中的使用者層設定覆蓋職責層,職責層覆蓋地點層,層級之間是相互覆蓋和重寫的的關係。而是或的關係,一條個性化規則只要符合其中一條層級限制,這個個性化規則就會產生作用

7.   介面下端的兩個按鈕。“插入‘獲取’表示式”,“插入專案值”是兩個不錯的按鈕,通過這個按鈕可以快速和準確的取得介面上物件的值。