0% found this document useful (0 votes)
140 views40 pages

OAF Training Manual

OAF Training Manual

Uploaded by

Amit Shrivastava
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
140 views40 pages

OAF Training Manual

OAF Training Manual

Uploaded by

Amit Shrivastava
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 40
Framework is a process in which software providing generic functionality can be selectively changed by user code, thus providing application specific software. The Framework is collection of templates or classes or software libraries providing a defined application programming intertace (API)... The designers of software frameworks aim to facilitate software development by allowing designers and programmers to devote their time to mecting software requirements rather than dealing with the more standard low-level details of providing a working system, thereby reducing overall development time. For example, a team using a web application framework to develop a banking web-site can focus on the operations of account withdrawals rather than the mechanics of request handling and state management. Frameworks contain key distinguishing features that separate them from normal libraries: > Framework makes it easier to work with complex technologies. > Ina framework, unlike in libraries or normal user applications, the overall program's flow of control is not dictated by the caller, but by the framework > A framework has a default behavior. This default behavior must actually be some useful behavior and not a series of no-ops. > The framework code, in general, is not allowed to be modified. Users can extend the framework, but not modify its code. However, once a framework is learned, future projects can be faster and easier to complete; the concept of a framework is to make a one-size-fits-all solution set, and with familiarity, code production should logically rise. Oracle application framework-(OAF) is mainly come into the picture to replace d2k forms. It came because to meet some new requirements from oracle corporation. Till now we have three kinds of applications. > Form based. > Self web applications based > Mobile devices applications. Form based applications mainly based on the client/server technology ‘As wo know wo were using the tool Form Builder 61/91 and database as oracle > In case of self service web based applications we should use oracle database only and not any one. This is mainly based on MVC architecture > In turn it is inherited trom j2ee architecture. Here we can use the terminology like pages instead of forms. Here we use the tool J-Developer Si vv What is OAFramework? (OA Framework or OAF is a framework developed by Oracle Corporation for application development within the Oracle E-Business Suite (EBS) The Oracle Applications Framework (OA Framework) is a development and deployment platform used for Oracle Applications (Apps) HTML-based screens. In other words, OA Framework is the standard approach for building and launching Apps web pages. This includes the "i" modules, such as i-Receivables, i-Procurement, etc. The framework contains the design rules and components that include the look-and-feel tor web pages, so any custom- built pagos will havo a prosontation idontical to Oraclo-developed pages. Why should we use OAF? Advantages > Open through web browser. > Light weight component compares’ to forms, > Look and feel is very good compares’ to forms, Disadvantages > Only oracle database should use. > No drag & drop option Let us discuss some difference in OAF pages and Oracle Forms. The below table lists out the difforences between OAF and Oracle Forms. OAF Oracle FORMS OAF pages are light weight components Forms are not light weight OAF Pages can send through mobile devices Cannot send to mobile devices ‘OAF Pages can connect in Oracle Apps Local Machine Cannot (NOT APPLICABLE) Look and Feel is good Not better when comparing to OAF OAF pages are integrated with the Java Top Forms are integrated with Application Top Commit always takes piace in the Application Module’s (AM) Java code. When a commit takes place, the data from OA Framework Cache is transferred to the databaso. A page is divided into regions. Regions contain fields, buttons, tables, and other components. ‘The COMMIT_FORM or DO_KEY(‘COMMIT_FORM') commands can be invoked from any trigger that allows restricted procedures. A form is divided into blocks; blocks contain the fields, buttons, and other components. How to find correct version of JDev? > Refer Note 416708.1 into metal ink 1) When you log in oracle applications type in http:///OA_HTML/OAInfo.jsp 2) Then you get the Oracle Apps version you working on like below: OA Framework Version Information: Version (OA Framework Version 17.5.10.2CU. MDS Version 9.0.5.4.81 (build 481) UIX Version 2.2.18 BC4J Version 9.0.3.13.51 3) So my version of apps (OAF) is 11.5.10.2CU 4) Go to METALINK and search for Doc ID: Note: 416708.1 ‘There you find the below in form of a TABLE. Here you can select the PATCH as per your version of OAF in u r Oracle Apps. ‘The work comes in terms of > Development of new pages > Customization of oxisting pages (extensions) > Pages personalization (Some limitations). Personalization - What is possible? ‘Add extra field in a region or LOV. Can be done only at Site level. Display / Hide a field/region in a page. Make a fiold read-only. Display / Hide DFF in a region. You can also specify default editable/viewable DFF contexts. > Conditionally display/hide fields. Need to know SPEL (expression language) for this viv Personalization Levels > Site: Usually set for adding field/region item which can be done only at site level > Organization: refers to operating unit > Responsibility: refers to Responsibility > Function: If you define same OA page as two different menu functions then you can personalize both differently Extension - When? > Add a new region to existing standard oracle page > Add a field that belongs to custom table column or a column that is not part of existing VO (query) associated with region > Add custom validation for fields on page > Modify LOV on a field. Change search criteria, display fields in LOV page What are the pre-requisites for learning OA Framework? > You need to have an Oracle Apps 11/ or higher environment to play around with > Basic knowledge of java is needed. Rather | would say basic knowledge of OOP [Object Oriented Programming] is needed. | mean just the concepts. > Basics of XML, which can be learnt within an hour from w3schools link > Understand MVC as a concept [not in depths as you are just getting started] Installations Steps 1) First we receive the patch file from client 2) Unzip the zip file. 3) Throo folders got croatod ¥ Jdevbin: Includes an extended version of the Oracle JDeveloper 10g executable and OA Framework class libraries. ¥ Jdevdoe: Contains documentation. ¥ ddevhome: Includes the OA Framework Toolbox Tutorial source and developer working area 4) Greate the environment variable: 21x Petomance Visual elects, processor scheduling, memo ‘User Peles Deskiopsetinge ested to your gon Slap and Recovery System satu sptem fae, end cebuscing | ea Conspec CCAWINDOWSI5ystemszomd.exe FP_NO_HOST_C.. NO HOWE CCfDocuments and Setrigs/adninktretor NUMEER_OF P... 1 A te |__ ee | _ootte_| ok Cancel 5) MyComputer> a. Properties» i. Advanced> ii, EnvironmentVairable> a. Now Y Variable Name : JDEV_USER_HOME ¥ Variable Value : F:/OAF/jdevhomo/jdov 6) Get the DBC file a. DBC file contains the details of Host, Port & SID. Which helps in validating the sossion? We can get the DBC file from server in FND top ¥ D:\oracie\visappl\tnd\ 11.5.0\secure\VIS_apps\vis.dbe 7) Paste in below path Y F:\OAF\jdevhome\jdev\dbe_files\secure\vis.dbc 8) Create Short Cut ¥ You can find in below location: ¥ FAOAF\jdevbin\ jdov\bin\jdovW 9) To Desktop. Tool Box The Toolbox Tutorial application is a sample application accompanied by extensive examples with step-by-step instructions that demonstrate the usage of business objects and Ul components to build OA Framework based application pages, against a simple Purchase Order type application schema, installed on your 11i instance, The Toolbox includes a specific tutorial lab on Extending OA Framework Applications. By default it comes with patch file, whenever we unzip the file we can soe 8 folders ¥ Jdevbin: Includes an extended version of the Oracle JDeveloper 10g executable and OA Framework class libraries. Y Jdevdoc: Contains documentation. Y Jdevhome: Includes the OA Framework Toolbox Tutorial source and developer working area. Under JdevHome folder you can find My Projects folder where source code will be saved. Here you can see ToolBox.jws, open the file from JDeveloper. Note To Create a page or open any Existing code in Oracle Apps Framework (OAF) we need to follow basic steps listed as, if already there no need of creation i) Create Data base connection li) Create .JWS (Java Work Space) iil) Create .JPR (Java Project) i) Create Data base connection: Open JDeveloper, after opening we will find Application Navigator if not then select it from View >> Connection Navigator (ctr! + shift + 0). Right click on Database and then select New Data Base Connection Weleoneto be Cente Database Conreton Wizard everson nean sacri wae ep Sedeieatans ie orvcaryiay ye wend Export Connections... Inport Connections... Tapplcations Navig, ‘onpectons C x ay 28 Connections lS Aeplation Server You ve canted tg he crreten {Ga ovt Registry | | [=1-GiB Rule Engines [= [3 Ga webvav server Open the existing ToolBox.jws file, here we are not creating new project our aim to see the existing project. i.e Toolbox Replace with Page Setup... eo © Dole Apeications > [B] Labsolttions 1B) sonplettrary a faopkceion Sources (2-9 Web content =) Cte OAF is designed by the simple MVC-(Model-View-Controller) architecture design pattern The MVC paradigm is way of breaking an application into three parts: > Model > View > Controller MODEL EO: Entity Object VO: View object |AM: Application Module (CO : Controller UL: User Interface Page 1-Model > The Model is where the application Implements its business logic. All the BC4J components in OAF comes under Model like AM (Application Module), VO (View Object), EO (Entity Object), VL (View Link) & AO (Association Object). > In order to develop any OAF Application you need to know few concepts before doing any kind of development. The concepts are basically the Business Components for Java (8C4J) compononts. > Model component is Implemented using BC4J where 8C4J is Business Component for Java > Model will Implement all the Data Base transactions. As wo already know To Croato a page or open any Existing code in Oracle Apps Framework (OAF) we need to follow basic steps listed as, it already there no need of creation i) Create Data base connection 10 li) Create .JWS (Java Work Space) iil) Croate .JPR (Java Project) i) Create Data base connection: Refer page no: 7 ) Create .JWS (Java Work Space) & iii) Create .JPR (Java Project): Open JDeveloper, after opening we will find Application Navigator if not then select it trom View >> Application Navigator (ctr! + shift + A). Right click on Applications and then solect Now OA Workspace... the same scenario is shown in the below figure: (iDeviievtometderimeprjects | [_Bronse. [adds new oaPrcject —C]Oneninniew Navigator | Adc to Applications... ‘Make ‘cues FO) Rebuild Anshun kone be Oace Arlt Foft Wise acetone — Teneo Gap * descr Lolcapreb ye Sn cars ans wiperesoanrreseg ‘pata nee Se @ scevolakemeainte "1 E © ——— aa) nD al eal ‘ee (men i "tities sete | tr eae j ae o~ — Entity Object (EO) View Object (VO) Association Object (AO) > > > Application Module (AM) > > View Link (VL) Now let us see the description of each component Entity Object (EO) Entity Objects represents a row in a database table. EO object based on Table or View or Synonym or snapshot. EO encapsulates the business logic and rules, EO's are used for Inserting, Updating and Deleting data > Also this is usod for validating across the applications. > Developer automatically creates methods for insert, update and delete of records whenever an EO is created Each entity objects represents a single row. Contains altributes representing data base column Central point tor business logic and validation related to a table vvv viv 12 > Can contain custom business methods. Standards > Base your Eos on the ALL tables rather than on organization level -restricted views > Always generate assessors (setters/getters to VGTrove performance} Features > Validation, locking and posting order of children > Handled by composite associations >» Who columns (Record history) > Set automatically during EO create () or doDML () EO should have following attributes (Who columns’) Creationdate Createdby LastUpdatedDate LastUpdatedBy LastUpdateLogin < KAR 8 ity objects files > Each Eo should have > EO.xmi Y Declarative information about EO > EOImpl.java(optional) ¥ Add create (), remove (), validateEntity (), setter and getter methods Y Entity objects that you create subclass of the > oracle.apps.ind.framework.server.OAEntitylmpl class ¥ BC4J package: xx.oraclo.apps.gl.comp.schoma.sorver format Orga Impors Reactor eter fom Loca Hate, 13 ie Csvronvre ——C]Materisized views To populate the databace object IEi, sect the appropriate schoma cbjoct type rrboves het nn itn avant oe tycoon 14 View Object (VO) vVvVVVYY v View > > > Note: Represents a query result. It can be either based on the Entity object or plain SQL query (Read only VO) Can also construct from a SQL statement Can be based on any number of entity objects It is used for selecting data. Contains attributes representing data base column View Objects can be created declaratively or prgrammatically.Which ever way you create it, you need an application module contain it View objects are not an appropriate home for business logic: we should not be writing validation rules in our view objects. objects java files Create VO java class (Volmpl) it needed VO's should not contain business or validation logic, expect transient attribute logic Always create View Row java class (ViewRowImpl) and accessory (setters/getters) The ViewRow! mpl class should always be created for 2 reasons Qne: It is the iterator that allows you step through the individual rows of the VO. Two: It generates the get/set methods for the VO.Morely creating the set/get methods doesn't gain anything, but it does allow othors to extend those methods should the need rise. View > v objects files VO.xm! Declarative information about VO VOlmpl.java(optional) Add initQuery() method if needed VORow! mpl.java( Required) Contains assessors (setters & getters) for vo attributes Behind the scenes, these accessors call corresponding methods in your Eolmpl.java View objects that you create subclass the oracle.apps.{nd. tram ework.server.OAViewObject! mpl class BC4JPackage: xx.cracle.apps.gl.comp.server 15 Screen Shots: EO Based VO: aac ee wo se se 8 stm 8 sew CB Newt obec, “BE vow ounsn 5 Newco 1 ew ven tink. New pen Mee, BD ow eee View De. Ncw seve Aepcin Mot New Suir Corgan Fon Ti NewotOau Mo Conponet Ssuttsnbininiterdentmvencte Ut antenna. Breestcwrasa E Banus 16 aad, testcase casa attedynrines a etch ok eet ie emamtssenea om eee ey odes trade ae ein eon Set a ; techni Tlemest ner eae es Caper ieaddcrati Ce a> Bae al 3) 1 potnesal 231 potnesavo ‘yatstudentAo ‘YotstudeniHeaders nse nee et ad uso arte ldnese icra Bl same (rece stig Sere pete Firssumtes genes esse : erik oan ace an] 7 Screen Shots: Read-only VO: BB apleatinsay | | arated Mile owen il anova GG}osnto = bee ___ansare_ picatinsog eat coi BG owes Opraebmpts cotaeo 1B BRecuces fe GB Webctet | pets fm Lec eo Welore te Crete View Objet Waar There tcl nro Pe cies asiasrn tars nt attra ea Negetemad pe ypaar wrest teen Tever ti weeny Tole dsc ert ap, anlage bali eal lod ob en re ca oir "er itty tds “overt ate eaten Lisette te an @ (Sipe Sh ace OavPauethopentih atta, cident rede vrebetiraon? Grappa ot oy Sree 18 Phone No: +91-8801873267 = 6 — Jomasqaradry isan ioyatieaeskca re Femdets oboe mae acome. vert nb rt im anemones ek (tu spoons neers BRAS map Sle te pid iB Applications 4 Timers iret: [ceo nara oc ene | BBB Application Sources ete 1B vot.cracle.epps my Application Module (AM) Application Modules serve as containers for related BC4J components. The pages are related by participating in the same task. It also defines the logical data model and business methods needed. They provide the transaction context and also used for establishing database connection. > Application module a logical container that manages and provides access to related BC4J module objects. > Container of the view objects and view links. > An application module may be a root application module or a nested application module. > Aroot application module is not contained in another application module. > It provides transaction context for all objects it contains. > Root application module also maintains the database connection > Handles transactions, > view objects are identified by view instance names which names referenced by Ul framework > AM communicate with controller's and VO's > While the AM holds all the EOs, the EO and EO related objects are not explicitly declared as belonging to the AM, unlike VOs that explicitly declared. Application modules fi Each AM should have > AM.xm! ¥ Declarative information about AM > AMImpl.java ¥ Add methods to invoke assign VOs initQuery methods if needed. Application modules that you create subclass of the Oracle.apps. fnd. framework. server.OAApplicationModule! mpl class BC4JPackage: xx.oracie.apps.gl.comp.server Beserenctoe a — Some Make cuesnasa | ebuild avin = Porat cor Orgerie Ingots rie Refactor Beste femLac try. {ih eT PI nc Sse ken ecbbe eis ere ad Sar wocietsmtntesumae 50s Treen nee terme (pe) Ss toe | Tee) ese eee nese wet one ‘io ei nena i pen dates teseribaedarene, eee ‘Gentiosel Ce oe fers] te eK] (es) ‘You have finished the Create Application Module Wizard. Med hare deters dew onto reat oka wr Name ud AHIR Nae: vot.oracle.epps.po.std.server.VgtMainaM {ig bata Model (Gd View Object Instances: —& None 2B Viow Uk tnstances: $B Mone E-LEa Application Modules Bp none When you cick Finch, the application module wll be created, 2 Association (AQ) ‘An association is created where we need to link 2 Entity Object's. A Association can be created by providing the source and destination Eo and source and destination attributes. > Define relationship between entity objects > Consist of a source (master) and destination (detail) entity Ex: Mastor/Detail create page Berteamcoge fon Beene Bowe ble cera fel sno a a = = Orgeizelnorts cura fear , estore om Loca isto. wena he Cc fmt Wea 22 <2 —|— a] leetadiinae 1 Poieadersal Peteaderavo Wiew Link (VL) ‘A view link is created where we need to link 2 view objects. A view link can be created by providing the source and destination views and source and destination attributes. Ex: Master/Detall view page vvvy View link is an active link between view objects you can create view links providing the following: source and destination views source and destination attributes it (open on 1B toot oe i tertyon, 53 Newco, {8 tin De. [steel Ceres {8 te aniceven oie. to ance Beate Secs ‘kone ne enn ed eee yietnattnns a |) 24 Sao a8 lations Bi oaworkspacez tect he p ee E03 Aoplcaton Sources Pie © BB vot orade.sops =. @ “es, © 68) potines¥o {iy Resources Bi Web content 2-View View means output of the xmi page. It is responsible for the output of the model. When you design a page, you store page definition in XML format on local machine. > The View is where the application Implements its user interface > View means the Ul (User Interface) that is visible to the Users, > When deploying to our system/server, we load this XML file into MDS repository using XML Import.statements. When the user run the page in the browser, the page definition is fetched from the MDS repository and is converted into the XML file by the MDS engine. > BC4JPackage:xx.oracle.apps.gl.comp.webul 25 ee a TB voteny 0H 1 ewdaron, Nea tsocieon, Cire 8B New iewLi. 0 new aptsn ge 8 vewseuie ewe, Hse Service Applicaton Module, see sie tusme: aTicudenttieaders= 9 Pee or ace. apps po std water [Baccactene incomes) Ba 088 aap Be B® votorecl.epps 3-Controller ‘The Controller is where the application handles user interaction and directs business flow Controller is a simple java class file that contains methods for initial page request and post back request. Controller that you create subclass of the: 26 Oracie.apps.ind.framework.webui.OAControllerImp! class BC4JPackage: xx.cracle. apps.gl.comp.webui > Process Request > ProcessFrom Request > ProcessFormData ProcessRequest, ‘This phase is invoked on page load (when page is rendered) By dofault it contains OAPageContext and OAWeb8ean class, super processRequest (pageContext, webBean); method Ex: (On page load if you want display the data .will write the code in process Request ProcessFormRequest ‘This phase is invoked after page load or Event based actions performed in this. By default it contains OAPageContext and OAWebBean classes and super.processForm Request (pageContext, webBean); method Ex: After page opens if you want to handle any event like submit or next button will write the code in processForm Request. ProcessFormData Fires by the system, when form submits happen Rarely will write custom code in this phase. If exceptions are thrown during this phase, the process form request phase Is skipped and the page re-displayed. Ex: EO level exceptions or BROOR wo ot 2 @ server i varaineer Lad vatananingt ove BB votPotteadersvo Usages (OAPageContext and OAWebBean) OAPageContext > > To got and set values of the fields. ¥ pageContext.getParameter and pageContext.putParameter Navigate from one page to another page ¥ pagoContoxt. set ForwardURL Got handle of Application module in CO ¥ pageContoxt.gotApplicationModula() ‘To write debug messages ¥ pageContoxt.writeDiagnostics We can got the profile value OawebBean > > To get the handle of the webbean ¥ wobBoan.tindChildRecursive (); To sot wobBean (item) properties at run time. ¥ webBean.setReadonly (); BC4J Naming standards (Business components for java) BC4J packages also corresponds to directory paths > E0-related (business logic)_java and xml files in ¥ .oracle.apps. . .schema.server AM and VO java and .xml files in ¥ .oracle.apps.< application short name>. .server Poplist .java and .xml files in ¥ .oracle.apps.. poplist.server lov java and .xm| files in ¥ .oracle.apps. < application short namo> . .lov.server 28 Note: Naming standards are not enforced on customers.These standards are simply what oracle uses. Like any standards, they evolve over time.if you encounter objects that don't adhere to any given naming standard, chances are those are older objects adhering to an older naming standard, chances are those are older abjects to an older naming standard that is no longer used. We know it means Mota Data Servico, We also know that it has something to do with web page displayed in OA Framework. Let's try to understand the basics of MDS. > Meta: - In technical world, Meta work symbolizes dictionary. Think of a web page broken into small units which are fields, buttons, and list boxes. These small individual units [ficlds, buttons ete] are stored in a dictionary, in the databaso, Thoso units whon combined together, they become a webpage that gets renderad on the browser. > Data: - Those Meta pieces are not stored as binary files, but as data in tables. Those tables bogin with JDR, for oxamplo JDR_ATTRIBUTES, JOR_ATTRIBUTES TRANS, and JDR_COMPONENTS & JDR_PATHS. Tho dofinition and relationship of cach field/region/component is stored in these JDR tables. OA framework reads that data when you request a page. The page structure is then built based on Metadata > Service: - Mota Data is available as a sorvico (plain sorvice not web service). The data is there in JDR tables, but all such data has to be co-rolated, all fields, regions, buttons ote have to be clubbed into a meaningful manner to make a web page. You can say that MDS provides service to store & return page definitions. MDS collates those definitions in components/tields in a meaningful manner to build a page. ‘The View formats the data and presents the data to the user. In OAF View is Implemented using the UIX. UIX uses XML to describe the components and hierarchy that make up an application ago. UIX also provides runtime capabilities to translate that metadata into HTML output so that it can be shown on a Browser or a mobile device. The metadata used to describe the UI is loaded into a database repository, called Meta Data Services (MDS), at deployment time and optionally at design time as well. Pages are developed declaratively using the Oracle $i J- Developer OA Extension. Pages are made up of hierarchy of regions and items. Each UI widget corresponds to one or more Java objects (beans). And these java beans are used to create the HTML at runtime. When you design a page, you store “page definition” in XML format on your local machine. When deploying to our system/server, we load this XML file into MDS repository using the xml Import.statements. When the user run the page in the browser, the page definition is fetched from the MDS repository and is converted into the XML file by the MDS engine, Each component in XML is translated into the Java web bean abject. And this web bean is rendered by the OA Framework. Page definition is cached in to the memory, and if it is there, framework will not go to MDS repository to got the page dotinition 29 ooooood HTML Page- HTML Response View Controlled By Data IL Request Controller Actions ee ee Interaction between model, view and controller Model “AN-Application Module *VO-View Object *EO-Entity Object 30 Controller class (CO) User takes an action oe Browser sends request to Controller MVC Architecture fF ‘Onion Architecture of OAF > OAF can be extracted into a series of concentric layers, like as onion > Each layers only ‘knows’ about the layers below it. dataflow up stack (pull) dataflow down stack (push) Rogion is a part of an Oracle Apps Framework page which acts as a container for the items ‘or components, By default the top most level of an OA Framework page has to be of the “page Layout" region type In OA Framework or OAF tho regions can be nested so as to provide tho desired layout to the OAF page. Each region is a java bean which acts as a container for the sub-regions or items in any Oracle Application Framework page. Regions which are parallel in the bean hierarchy, in an OAF page, are called as Siblings and the regions inside a region in an OAF page are called Child regions. The same nomenclature Is also applied for Items in OAF. Hence, by default all the regions that you create become the child regions of the page Layaut region as mentioned earlier that the page Layout region is the top most region in any OA Framework page. Also every region in OAF has specific properties which can be given some values while creation of the OA Framework page e.g. rendered property which allows the region to be displayed onto the OAF page, as per Oracle Application Framework guidelines (called as OAF standards) this rendered property can have 2 values namely true(visible) or talse(hidden) If tho region in an OAF page is sot to be hidden then all the childron rogions/items will by dofault be rendered false once that OAF page is rendered on to screen. Even these proportios can be changed at runtime using a Java controller, but that needs an understanding on how to Import.the region beans and then how to create handle of the bean and then how to set properties. However this is not so much ifficult to do but still some Java concept and Java 32 programming knowledge is needed to achieve this. This is callod as runtime control of the bean in OAF and is explained in detail for every region in the corresponding region type. Every region has a specific way of representing the data onto the screen once the oA Framework page is rendered. Hence while creation of a OAF page we have to very cautious in choosing the type of regions. E.g. a defaultDoubleColumn type of region will create two columns and will automatically render all the components created inside it in these two columns once the ‘OAF page is rendered to screen. There aro various types of regions available in OA Framework. ‘The below figure shows what is Main region and what are child regions in OAF page. ‘vec Da sen Ss 7 = ~ ‘The complete list of all the regions provided by Oracle Application Framework is given below advancedTable bulletedList cellFormat contentContainer contentFooter detauitDoubleColumn detaultFormStack detaultSingleColumn dotaultStack tlexibleGontent tloxibloLayout tlowLayout footer Gantt graphTable header vvvvVv VY VV Y 33 HGrid hideShow hideShowHeader labeledFieldLayout listOtValues messageComponentLayout navigationBar pagoButtonBar pageLayout query rowLayout shuttle stackLayout subTabLayout switcher table tableLayout train treo vvvvvvvVVV YY > advancedTable: It was earlier that OA Framework used OATableBean to render tables but now things have changed and OAAdvancodTableBoan extends OATableBean. The best part of this is that with advancedtable provides declarative support for the functionalities which required programming with simple table. ‘The magic doesn’t ends here, OAAdvancedTableBean also provides declarative support to many of the new features that were not available with OATableBean, just for an example features like column span in a table column header were not available with OATableBean but is now declaratively supported by OAAdvancodTabloBean, Advanced table has many rich features, some of which can be like a table can now have an Instruction text and even a tip, also table can have a navigation bar, selection column, add rows button, control bar, recalculate and many mare. Advanced table even allows you to brand the table so that it looks more beautiful once it's displayed. The branding options include: +. RowBranding 2. ColumnBranding 3. NoBranding By default? NoBranding? Option will be active. Row Branding: Once you sot the branding style in the property palette of advancedTable region and run the page, you will note that the alternative rows of the table are in grey bands of color. Even you have the option to choose the branding interval, by default the branding interval is 1 and hence alternative row is displayed in grey brand color, if you choose 2 as branding intorval thon tho groy band row will appear after ovory 2 rows. Column Branding: This is similar to row banding except that now rather that rows the columns of your advanced table will be in the grey band branding style. 34 No Branding: This is the default branding style that's selected if you don't choose other styles, in this style neither rows nor columns will be branded and all the rows and tables of the advanced table will be displayed as mentioned in Oracle BLAF. ‘Some more features of advanced table are: Text: This is the text that will be displayed on the top of the table once the OA Framework page is rendered, Records Displayed: This proporty can limit the number of records that can be displayed on the screen once the advanced table is rendered. Be default the number of records displayed is 10 Width: this is another VGTortant property of advancedtable. Here as the name suggests you can enter the width of the table once the table is rendered. You can either enter the width in pixels or in percentage. In order to enter the width of the table in pixel enter 500 or 800 in the proporty palotte. In ordor to entor the width of the table in porcontago enter 70% or 80% in the palette. Once you enter the width of table to be 100% the navigation links (Next and Previous) will be displayed on top of the table. These links allow you to navigate to the other rows, apart from those being displayed on the OA Framework page currently Controller Class: This is an optional property. If you want to perform some runtime action then only you need to create a controller class where you will be handling the events and navigations performed on the advancedTable. Admin Personalization: Set to true if you want the admin to be able to personalize the advancedTabie region else false User Personalization: Set to true if you want the user to be able to personalize the advancedTable region else false. Corresponding web bean: OAAdvancedTableBean > bulletedList: In oracle application framework page the OAF BulletedList appears with a bullet prefixed to any item present in this region For example - Suppose you have 3 items placed inside the BulletedList region type in an Oracle Application Framework page, then all the 3 items will have a bullet attached as profix when the OA Framework page renders. But the only condition that OAF applies for making the bullet as prefix is that each of the items should have its Rendered property set as true. Hence, if bullet region is having 4 items in an Oracle Application Framework page and out of these 4 items, 2 items have the rendered property as false then you will find only 2 items with bullet attached to it once the Oracle Apps Framework page renders on the browser, Gonerally, Oracle Application Framework uses BulletedList to hold plain texts or links, but this doosn't mean that it cannot hold other regions or itoms. Oracle Apps Framowork gives you tho freedom to add any other regions or items inside the BulletedList region style. Oracle Application Framework allows you to specity the whether you want to show all the items in columns or in the apps framework you can also set the number of rows that you expect to be displayed at runtime. To achieve tho above montioned functionality Oracle Application Framowork provides you the Height attribute property of the BulletedList. Let's consider one more example - 35 ‘Suppose you have 10 items that have to be displayed in 2 columns when the Oracle Apps Framework page is rendered. To make this happen all you need to do is to just set the height property value as 2 in the Developer Tool property palette. This makes the items 1-5 to come in one column and the items 6-10 to be displayed in the second column. But there is a restriction to the number of columns that you can create with the above approach. AS per Oracle Application Framework you cannot exceed the number of columns by 3, this means that you cannot have more than three columns for a BulletedList region in an OAF page. Corresponding web bean: OABulletedlistBean How to create BulletedList Item in OAF page?’ Creating a BulletedList on an Oracle Apps Framework page is sImple. Just follow the steps given below 1. Create a rogion on an OAF page using JDoveloper 2. Set the style property to BulletedList 3. Sot the properties of the newly created BulletedList region according to the requirement and the standards of Oracle Apps Framework, 4, Greate items of any item style as children in this region > gellFormat: In oracle application framework page the OAF CellFormat region is used inside RowLayout region. CeliFormat region is a container of regions or items. It VGTarts the properties like columnSpan, rowSpan, vAlign, hAlign, otc. Suppose you have rows and 2 columns in a table. Now you want to merge 2 columns of first row. For this you can use rowSpan property of cell and will get the first of resulting in only one column, i.e. now when you run OAF page, table will have total of 5 cells in It CollFormat allows you to control the vertical and horizontal alignment of item present in it. You can achieve tho same using vAlign and hAlign: Suppose there is cell consisting of messageTextInput in it, messageTextInput should be top justified and at the end of the cell in the Oracle application framework page. For this, set the valign (Vertical alignment) property of cellFormat as top and hAlign (Horizontal Alignment) property of cellFormat as right Note - It will not take care the alignment of the text of the webbean present in it. Like, in a mossageToxtInput there is @ toxt of VARCHAR data type, it will be only loft aligned. Corresponding web bean: OACellFormatBean How to create cell Format Region in OAF page? Creating a cellFormat region on an Oracle Apps Framework page is simple. Just follow the steps givon bolow 1. Create a region on an OAF page using JDeveloper 2, Sot the style property to celiFormat 3. Set the properties of the newly created celiFormat region according to the requirement and the standards of Oracle Apps Framework. 4. Create items or regions of any stylo as childron in this rogion 36 > gontentContainer: In oracle application framework page the OAF ContentContainer region is used to display additional information of the OAF page in Oracle BLAF (Browsor Look and Feo!) ContentContainer is having special features which will help it to differentiate fram other content of the OAF page. Example: It can have different background color which can be different from the standard background color of oracle apps framework page. This can be done by using Background Shade property of the ContentGontainer It can have border to it to identify it as a separate region. Content Container can have items and regions of any style in it. To add this into oracle application framework page, create a shared region in the OAF page for ontentContainer. Generally, BulletList region is placed in it, as we use ContentContainer to display additional information, and that will be displayed pointwise. In the BulletList we can add further items or regions in it as per the requirement GontentContainer will be generally displayed at the end (right side) of the Oracle Apps Framework page. Corresponding web bean: OAContentContainerBean How to create contentContainer Region in OAF page? Creating a contentContainer region on an Oracle Apps Framework page is simple. Just follow tho steps given below. 1. Create a shared region for the contentContainer 2. Create a region on an OAF page using JDeveloper 3. Sot the style property to contontContainor 4, Set the properties of the newly created contentContainer region according to the requirement and the standards of Oracle Apps Framework. 5. Create items or regions of any style as children in this region > ContentFooter: In oracle application framework page the OAF ContentFooter region was used to hold buttons (links) at the bottom level of the Oracle Apps Framework page. It displays as a bottom line which is separated from the page footer with the content of the oracle application framework page and also known as "ski" It Is deprecated style. Page buttons should be used instead of ContentFooter to hold buttons in it Corresponding web bean: OAContentFooterBean (deprecated) > defaultDoubleColumn: In oracle application framework page the OAF DetaultDoubleColumn region was used to hold items in two columns. Prompt of items will be right justified and the input fields will be left justified. But it was not fulfilling the Oracle BLAF (Browser Look and Feel) U! requirement/ guidelines Hence, it is deprecated and messageComponentLayout should be used for better serving the purpose of placing items in OAF page along with header region which is called before messageComponentLayout in the OAF page. 37 Along with DefaultDoubleColumn layout, there was one more region known as DefaultSingleColumn layout was present DefaultSingleColumn severs the requirement of placing items in one column; it is also deprecated due to the same reason of not serving the purpose of Oracle BLAF Ul Gorresponding web bean: OADefaultDoubleGolumnBean (deprecated) > defaultFormStack: In oracle application framework page the OAF DefaultFormStack region was used to hold regions or items in a stack format i.e. it was used when each region or items needs to come in Oracle apps framework page one under another (stacked) either to the loft side of the page or right or center as per the requirement. It is a deprecated region style. ‘StackLayout should be used instead of DefaultFormStack in current scenarios. Corresponding web hean: OADefaultFormStackLayautBean (deprecated) > defaultSingleColumn: In oracle application framework page the OAF DefaultSingleColumn region was used to hold items in a single column. Prompt of items will be right justified and the input fields will be left justified. But it was not fulfilling the Oracle BLAF (Browser Look and Feel) Ul requirement/ guidelines. Hence, it is deprecated and messageComponentLayout should be used for better serving the Purpose of placing items in OAF page along with header region which is called before messageComponentLayout in the OAF page. Along with DefaultSingieColumn layout, there was one more region known as DofaultDoubleColumn layout was present. DefaultDoubleColumn severs the requirement of placing items in two columns; it is also deprecated dus to the same reason of not serving the purpose of Oracle BLAF UI Corresponding web bean: OADotaultSingleColumnBean (deprecated) » defaultStack: In oracle application framework page the OAF DefaultStack region was used to hold regions or items in a stack format i.e. it was used when each region or item needs to come in Oracle apps framework page one under another (stacked) either to the left side of the page or right or center as per the requirement. It is a deprecated region style. StackLayout should be used instead of DefaultStack in current scenarios, Corresponding web bean: OADefaultStackLayoutBean (deprecated) > flexibleContent FlexibleContent region is used to identify content that can be placed in a flexibleLayout region. ‘The content can also be specified by referring to it. It represents available content which may or may not be made use of; and thus acts as a resource to the page designer. Corresponding web bean: OAFlexibleContentBean 38 > flexibleLayout: ‘The tlexibleLayout region can be used to define a customizable layout, as flexibleLayout regions can be nested to form a customizable layout and can be positioned anywhere in the page. A page can have a number of ‘top-level’ flexibleLayauts; they de not have to be nested. Corresponding web bean: OAFlexibleLayoutBean > flowLavout: In oracle application framework page the OAF DefaultStack region is used to hold buttons or images in a horizontal line. ‘Suppose you have a table or advancedTable in oracle application framework page and you want to define table actions to the table region, as soon as you create table action by default flowLayout gets created as a child of tableActions. Region style can be changed to rowLayout or can have the same flowLayout attached to it. In case you want table actions to be performed only by using buttons then it's better to use flowLayout instead of rowLayout. If table action involves other item style i.e. OAMessageCheiceBean or OAMassageTextBean then use rowLayout, because if you use flowLayout Is used then Oracle BLAF (Browser Look and Feel) of UI will get hampered, i.e alignment won't be proper. Whenever you create page Status region in pageLayout region flowLayout will also be get created automatically in it as a child, In flowLayout region there can be any region or item attached to it as child of it Corresponding web bean: OAFiowLayoutBean How to create flow Layout Region in OAF page? Creating a flowLayout region on an Oracle Apps Framework page is slmple. Just follow the stops. given below. 1, Create a region on an OAF page using JDeveloper 2. Set the style property to flowLayout 3. Sot tho properties of the newly created flowLayout region according to the requirement and the standards of Oracle Apps Framework, 4. Greate items or regions of any style as children in this region > footer: In oracle application framework page the OAF Footer region is used to hold links which are for top-level applications, buttons (global), copyright information, privacy information (optional) and About this page link (optional) components in It. It is a child of pageLayout region It Is shown at the end of the OA Framework page in the BLAF Ul. If we want to attach a "Return to?" link i.e. a back navigation it will also get added in the footer region. Corresponding web bean: OAFooterBean > Gantt: In oracle application framework page the OAF Gantt region is used to hold create Gantt charis. It retrieves the data from the BC4J objects. 39 It is mostly used for the project planning and scheduling information It is like a matrix Le. it is having a vertical axis and a horizontal axis. ‘Suppose you want to use Gantt for project planning then Project will be at the vertical axis and the time period will be placed in an horizontal axis. It inherits the properties of the HGrid region by extending it, only the width property of HGrid we cannot change thru the Gantt region, Corresponding web bean: OAGanttBean > graphTable: In oracle application framowork page, through OAF GraphTable region you can draw graphs. GraphTable may not use all the columns present in the GraphTable to plot the graph. It there are multiple graphs depending on one GraphTable then each graph may use different set of columns to plot in the OAF page. GraphTable is based on the tableLayout region and inherits all their property. We need to set a property of GraphTable named as Graph Render Style property as either graph or both, When we set the value as graph that time we can view one or more graph elements. And when we sot the property as both then we can view both the table data and the corresponding graph below the table, and if you have multiple graphs then below the table there will be pop list item in the OAF page from which we nood to choose the graph which wo want to display. Corresponding web bean: OAGraphTableBean > header: In oracle application framework page we create an OAF Header region to give separate title of the page to give the information of the page functionality to the usor By using Header region, page content and tho header region gots soparatod/partitionod for more clear information display. Header region is also used for some VGTortant message display on the Oracle application framework page like Error, Warning, Information, etc at the top of the page. By uso of Header region, the page level action buttons/links will be displayed both at the top of the page and the bottom of the OAF page. Note: Header element does not support style Class attribute Corresponding web bean: OAHeaderBean > HGrid: As from the name HGrid itself, it suggests hierarchy grid. In an oracle application page OAF HGrid region is used when the data needs to be represented In a hierarchical/tree structure. You can use the Tree region to represent the tree structure but tree region in OAF emphasis on the relationship of the objects of the hierarchy. You can use HGrid to display the hierarchical structure along with the detail information of each row/node. It gives the privileged of modifying the hierarchy by performing the action as add, delete, update, ete. HGrid has 2 special columns: 1, Focus Column. 2, Object Hierarchy Column. 40 Corresponding web bean: OAHGridBean > hideShow: In orace application framework page, to provide the functionality to hide and show the items and (or) regions we use HideShow region, i.e. all the items or region, which should be displayed or hidden, should be a child of a region which will have a hide/show control By using hode/show control we can hide or show a part of the section of intormation or the entire section. Suppose you want to hide or show details of a particular object in an OA framework page, hide/show region can be used. You can use hide/show region when you want to hide or show the graph, which is present in an OAF page. You can use this even when a row of a tablo needs to hide and shown on some action on OAF page. Hidei show region can only provide its functionality on a single page at multiple parts. Nesting can also be done. Corresponding web bean: OADefauitHideShowBean > hideShowHeader: In oracle application framework page, to provide the functionality to hide and show the items under a header we use HideShowHeader region. In both the case of toggling i.o. hidden or shown header toxt will remain as itis. In HideShowHeader region we can add items as we add in Header region. Please refer Heador region for more information on tho propertios of Heador region. Corresponding web bean: OAHideShowHeaderBean > labeledFieldLayout: ‘The labeledFieldLayout region lays out its children in columns; one column is for the “labels” and the other for the "fields", with a gap in between The children are laid out across and down, the first child in cach row takes the “label” position and the second child takes the “field” position. The contents of each row are centered in the available space. The "labels" are always right aligned, and the "fields" lett aligned. With multiplo columns, the childron continue to be layed out across and down. For examplo, with two columns, the third child will be used as the label for the first row and second column It also has support for the inline messaging beans where each inline messaging bean will automatically occupy both a "label" and “field” position. Corresponding web bean: OALabeledFieldLayoutBean Note: The laboledFieldLayout_ component has been deprecated; use the messageComponentLaycut component instead. Please refer to the messageComponentLayout section for information about messageComponentLayout > listotvalues: A listOtValues region is rendered in a separate modal dialog containing a complex list of possible values that can be selected as a valid value for an entry field on a transaction page or a field within a table. Refer to the messageLavinput section for information on the properties of messagelovinput, 4 A listOfValues region is rendered as a popup of separate OAF page region containing 4 list of possible values, any of which can be selected as a valid value for an entry field on a transaction page or a field within a table. Corresponding web bean: OALIstOtValuesBean > messageComponentLayout: In oracle application framework page OAF messageComponentLayout is the most widely used region to hold components. It is restricted to message components, and it does not allow other regions to become its child. Tho compononts, which aro child of OAF messageComponentLayout region, will have, prompt of the component will be right (end) aligned and the text field will be left aligned. It serves the multiple column display of components in an OA framework page and also satisfies the standard Ul! guidelines. It is recommended that we should not display more than 3 columns in respect to follow the Ul guidelines, In the OAF messageComponentLayout the spacing between the components is according to the Oracle BLAF UI guidelines. Corresponding web bean: OAMessageComponentLayoutBean > navigationBar: In oracle application framework OAF NavigationBar is used to navigate to the next or previous sot of records. ‘You might have mostly saw NavigationBar attached with the table or advance table. Suppose you have run a BC4J VO query that retrieved more than 10 records to be displayed in a table, Then a NavigationBar will appear at the top and bottom of the table. By using the NavigationBar link you can display the next 10 records, which are retrieved from tho query. NavigationBar can also be seen in the HGrid region, in case we expand a node and the child retrieved are more than the record limit, that time we have to use NavigationBar link. Note: No need to declare NavigationBar functionality explicitely. Corresponding web bean: OANavigationBarBean > pageButtonBar: In oracle application framework, OAF pageButtonBar is used when a set of buttons/action links needs to be created at the page layout level PageButtonBar is the child of pageLayout region Buttons/action links will be displayed bath at the top of the page Just below the page title and below the page footer line. Corresponding web bean: OAPageButtonBarBean > pageLayout: ‘The pageLayout region is the highest-level layout element. It acts as a template for the entire page. It, by default, has to be the top most region of the page. It supports several other regions, and navigation areas so as to maintain the Oracle Application Framework Standards. Corresponding web bean: OAPageLayautBean 42

You might also like