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