Oracle EBS Form CUSTOM.PLL詳解 |
發(fā)布時間: 2012/8/26 15:23:56 |
編寫CUSTOM 庫 CUSTOM庫是一個OracleForms Developer PL/SQL 庫,它允許你充分使用Oracle Forms Developer直接整合你的代碼到Oracle 應用程序而不必改變Oracle Application 的代碼。 什么時候使用CUSTOM庫 在一些主要的情況下,可以使用CUSTOM庫。 Zoom Zoom 通常會打開另一個form并且可以傳遞參數到達開的form中。 通用事件的邏輯 在確定的通用form事件中,增強Oracle 應用程序的邏輯例如: WHEN-NEW-FORM-INSTANCE 或WHEN-VALIDATE-RECORD你可以使用通用事件來改變區(qū)域的提示和其他的屬性,隱hide區(qū)域,添加驗證和其它 產品特殊事件的邏輯 在確定的產品特殊事件中增強或替換Oracle 應用程序邏輯實現業(yè)務邏輯。 客戶定義菜單 在Oracle 應用程序form中添加條目到special菜單中,例如一個打開客戶化form的條目。 設置視覺屬性 使用CUSTOM庫在運行時來改變視覺屬性,使用Oracle Forms內建程序 SET_VA_PROPERTY 來設置CUSTOM1 – CUSTOM5的視覺屬性,并使用APP_ITEM_PROPERTY2.SET_PROPERTY在運行時來應用視覺屬性。 編寫Zoom Zoom允許用戶調用在每一個塊中調用邏輯,例如,你可能希望在輸入采購訂單form時打開供應商form,你可以在這一個塊上使用Zoom并且當用戶調用它,你可以打開供應商form 11i版本Zoom的行為: Oracle 應用程序提供一個菜單項和工具欄中的一個按鈕,用戶可以調用Zoom,只有當這個塊在CUSTOM庫Zoom邏輯定義后,菜單項和按鈕才可用。 當光標在form中改變到不同的塊中,form調用CUSTOM庫中的ZOOM_AVALIABLE 方法。如果這個方法返回TRUE,ZOOM條目和按鈕可用,如果返回FALSE不可用。 如果Zoom條目是可用的,這是當用戶調用Zoom時調用CUSTOM中的ZOOM方法。你基于當前form和塊編寫這個事件的方法。 在CUSTOM庫中編寫Zooms 1. 添加一個CUSTOM.ZOOM_AVALIABLE方法只是form 和塊什么時候可以啟用Zoom 2. 添加在ZOOM事件中添加CUSTOM.EVENT過程。 支持一個塊中的多Zoom時間。 11i版中Oracle應用程序為Zoom提供一個LOV和相應的參數: u LOV:APPCORE_ZOOM u 參數:APPCORE_ZOOM_VALUE 使用LOV和參數當這個塊含有多余1個的ZOOM時提供給用戶一個LOV。 編寫ZoomLOV到CUSTOM庫中。 在CUSTOM庫中(包括Zoom事件代碼) 1. 創(chuàng)建一個記錄組合,并填充可用的Zoom名字和值 2. 添加記錄組到APPCORE_ZOOM LOV中 3. 調用show_lov來顯示LOV給用戶 4. 如果用戶選擇一個Zoom,將返回值給APPCORE_ZOOM_VALUE參數 5. 得到參數的值選擇不同的Zoom 編寫通用Form事件 你可以編寫邏輯,在特別的form并在塊的特別的事件中觸發(fā),你可以編寫邏輯在一下的事件中: • WHEN–FORM–NAVIGATE • WHEN–NEW–FORM–INSTANCE • WHEN–NEW–BLOCK–INSTANCE • WHEN–NEW–RECORD–INSTANCE • WHEN–NEW–ITEM–INSTANCE • WHEN–VALIDATE–RECORD • SPECIALn (n 是1 到 45之間的一個數) • ZOOM • EXPORT • KEY–Fn (n 是1 到 8之間的一個數) 一些Oracle 應用程序forms例如多數的Oracle人力資源模塊的form可能提供附加的事件調用CUSTOM庫,這些附加事件被列在擁有這個form的產品的文檔中。你可以編寫邏輯在CUSTOM庫中以相同的方法在通用時間中編寫邏輯。 在CUSTOM庫中為通用的form時間編寫邏輯: 1. 在CUSTOM.EVENT過程中為特別的事件添加一個分支。 在分支內部,指定你希望你的邏輯觸發(fā)的form 和 塊并添加邏輯到你希望發(fā)生的事件到這些塊中。 編寫產品指定的事件: 為了編寫產品指定的事件邏輯到CUSTOM庫中: 1. 為特殊的產品的指定的事件添加分支到CUSTOM.EVENT過程中 在分支中添加邏輯。 2. 如果要支持客戶化的執(zhí)行類型,添加分支到CUSTOM.STYLE方法來指定執(zhí)行類型。 添加客戶化條目到special菜單中。 為了在CUSTOM 庫中添加邏輯到special菜單中的條目 1. 在CUSTOM.EVENT過程中添加分支事件WHEN-NEW-FORM-INSTANCE 在這個分支中指定你希望添加邏輯的form和塊,添加邏輯到Special菜單中 2. 將特別的SPECIALn事件添加分支到CUSTOM.EVENT過程。 在這個分支中,指定邏輯發(fā)生的form和塊。添加邏輯到你的Special菜單中。如果是你開發(fā)的form你應該添加邏輯到用戶命名的SPECIALn觸發(fā)器中。 Oracle應用對象庫中產品特別的事件。 Oracle 應用對象庫提供可以使用CUSTOM庫使用的產品特別事件。 WHEN-LOGON-CHANGED 事件 使用WHEN-LOGON-CHANGED事件在用戶使用”File-> Log On as a Different User”立即觸發(fā)來驗證。這個方法是只是對基于Oracle Forms Developer開發(fā)的form有效。而對基于HTML或Java 的from是無用的。 你可以使用FND_PROFILE.GET方法得到新的用戶名和其他預置文件值 如果因為一些原因在這個時間中的代碼拋出form_trigger_failure的異常,用戶將返登錄界面。 WHEN-RSPONSIBILITY-CHANGED 事件 使用WHEN-RESPONSIBILITY-CHANGED事件當用戶使用“Fiel->SwitchResponsibility”來切換職責時觸發(fā)進行驗證。這個方法只對基于Oracle Forms Developer 開發(fā)的forms有效。 你可以通過FND_PROFILE.GET 方法得到新的職責名稱和其他預置文件的值。如果因為一些原因在這個事件中的代碼拋出 form_trigger_failure的異常,用戶將返回如同選擇了一個錯誤的職責的值列表界面。 CUSTOM 包 CUSTOM包包含了下列的方法和過程 CUSTOM.ZOOM_AVALIABLE CUSTOM.STYLE CUSTOM.EVENT CUSTOM.ZOOM_AVAILABLE function custom.zoom_available return BOOLEAN; 如果對于這個塊Zoom是可用的,則返回TRUE,否則返回FALSE,通常用于測試form和塊。 通常這個方法返回FALSE CUSTOM.STYLE function custom.style(event_name varchar2) return integer; 這個方法允許你決定執(zhí)行的類型。你可以選擇代碼的執(zhí)行為,之前,之后,或替代。注意的是一些產品特定事件是不支持所有的執(zhí)行類型的CUSTOM.STYLE不對通用form事件或Zoom起作用。 下列的包變量以用作返回值: Custom.before Custom.after Custom.override Custom.standard 作為默認值,這個方法返回custom.standard CUSTOM.EVENT procedurecustom.event(event_name varchar2); 這個方法允許你在指定的事件中執(zhí)行你的代碼。通常測試事件名稱然或測試form和塊。 作為默認這個方法應該返回null; 本文出自:億恩科技【mszdt.com】 |