Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Extensions in OAF


Published on

Webinar on Extensions in OA Framework (OAF), Oracle Application Framework

Published in: Technology, Education
  • Be the first to comment

Extensions in OAF

  1. 1. Extensions In Oracle Application Framework A Webinar
  2. 2. Agenda <ul><li>Where do we need Extension ? </li></ul><ul><li>Things you need to know for doing Extension </li></ul><ul><li>How to Extend a </li></ul><ul><ul><li>VO </li></ul></ul><ul><ul><li>AM </li></ul></ul><ul><ul><li>Controller </li></ul></ul><ul><li>How Personalization play a role in Extension </li></ul><ul><li>Deploying your extensions </li></ul>
  3. 3. Brief on EBS <ul><li>Installation </li></ul><ul><li>Configuration </li></ul><ul><li>Personalization </li></ul><ul><li>Extension </li></ul><ul><li>Customization </li></ul><ul><li>Deployment </li></ul>
  4. 4. Where do we need extensions ? <ul><li>System does not meet your Business need </li></ul><ul><li>Your requirement cannot be satisfied by personalizations </li></ul>
  5. 5. Where do we need extensions ? <ul><li>When the UI of the current system needs to be customized according to your needs </li></ul><ul><li>Extending the logic of the current system according to your business needs </li></ul>
  6. 6. What are the different terminologies needed to be known for extension <ul><li>What is a page and a region </li></ul><ul><li>BC4J Components </li></ul><ul><ul><li>Application Module (AM) </li></ul></ul><ul><ul><li>Entity Object (EO) </li></ul></ul><ul><ul><li>View Object (VO) </li></ul></ul><ul><li>Controller (CO) </li></ul><ul><li>Personalizations </li></ul><ul><li>Analyzing a Page : About the page </li></ul>
  7. 7. What are the different terminologies needed to be known for extension <ul><li>Example : </li></ul><ul><li>What should I do to add a column “Scaled Weight” which is different from the seeded “Weight” Column </li></ul><ul><ul><li>Knowing your application and the application path </li></ul></ul><ul><ul><li>Finding the AM your going to deal with </li></ul></ul><ul><ul><li>And if there is a VO attached to the element, what is it </li></ul></ul><ul><ul><li>The CO handling the page’s or region’s events </li></ul></ul><ul><ul><li>Now get these class and XML files from the server </li></ul></ul>
  8. 8. What are the different terminologies needed to be known for extension <ul><li>Understand the application path </li></ul><ul><li>Knowing the Controller with respect to the item </li></ul><ul><li>Knowing the Root AM and also nested AM’s if available </li></ul><ul><li>Knowing the VO and the attribute associated with that item </li></ul><ul><li>Here we can also find all the AM’s, EO’s, VO’s, and CO’s that are used in this page in the section “Business Component References Details” </li></ul>
  9. 9. Extending View Object (VO) : <ul><li>Make sure that the class files are present in the class path of your jDeveloper (otherwise you may experience a huge amount of errors on compilation) </li></ul><ul><li>The above images depicts the creation of a new View Object which will extend the seeded View Object </li></ul>Path of the seeded View Object
  10. 10. Extending View Object (VO) : Creation or updating attributes Updating SQL Statement List of Seeded and New Custom Attributes Generating Java Classes
  11. 11. Extending View Object (VO) : <ul><li>Now for replacing the functionality of the seeded VO with the extended VO we require to, </li></ul><ul><li>Substitution </li></ul><ul><li>Jpximport </li></ul><ul><ul><li>To reflect the substitutions into the MDS we call jpximport </li></ul></ul><ul><li>Deploying extended VO files to the server </li></ul><ul><li>To check whether your substitution is successful, use listcustomizations function which is present under jdr_utils </li></ul><ul><ul><li>Ex : jdr_utils.listcustomizations(’<path of the seeded VO>'); </li></ul></ul>Select the extended VO Select Seeded VO
  12. 12. Extending Controller (CO) : <ul><li>Extend if only your need cannot be satisfied via personalization </li></ul><ul><li>A controller may be extended to perform some custom functionality or rendering the UI elements to satisfy your business logic and so on…. </li></ul><ul><li>If oracle delivers a patch that modifies the code in original CO, yet your extension will still be upgrade safe, as your custom controller will continue to call current version of CO method via super() </li></ul><ul><li>Extending a Controller: </li></ul>Custom Region added to the seeded page, rendering(displaying) the textbox and performing the functionality depending on the selection
  13. 13. Extending Controller (CO) : <ul><li>First knowing the controller you need to extend </li></ul><ul><ul><li>May be a root controller or the particular region controller </li></ul></ul><ul><li>Getting the class files from the server to you local machine </li></ul><ul><li>Create a new java class with respective name and path </li></ul>Path of the Controller to extend Making sure to call the super, so the seeded functionality remains intact
  14. 14. Extending Controller (CO) : <ul><li>Rebuild and deploy your new class file to the server </li></ul><ul><li>Now via personalizations we need to reflect the extension </li></ul><ul><li>Navigate to the particular controller class in the personalization page hierarchy </li></ul><ul><li>You can view your extension via “About this page” link </li></ul><ul><li>Restart the middle tier (Bounce), to reflect the changes on the page </li></ul>Provide the extended controller path This will reflect your current CO been used
  15. 15. Extending Application Module (AM) : <ul><li>Not recommended </li></ul><ul><li>Remember you cannot extend the root AM </li></ul><ul><li>Follows the similar steps as done for extension of a VO or a EO </li></ul><ul><li>2 use cases </li></ul><ul><ul><li>Custom VO </li></ul></ul><ul><ul><li>Adding new business logic </li></ul></ul><ul><li>Following the previous steps as in Extending a VO or a EO, we would need to substitute the old AM with the extended one. </li></ul><ul><li>And import this jpx file to the system. </li></ul>Path of the seeded Application Module
  16. 16. Extending Application Module (AM) : <ul><li>This is a Custom region added to satisfy the current business logic </li></ul><ul><li>The text written in the textbox is stored into a custom table </li></ul><ul><li>For this customization I have created a custom VO </li></ul><ul><li>This custom VO should be added to the AM </li></ul><ul><li>How will my customization survive an up gradation ? </li></ul><ul><li>Nested AM </li></ul><ul><ul><li>Create a new AM, add this customized VO to this new AM </li></ul></ul><ul><ul><li>At runtime add the new AM to the root AM via the respective Controller </li></ul></ul>public void processRequest(OAPageContext pageContext, OAWebBean webBean) { super.processRequest(pageContext, webBean); OAApplicationModule rootAM = pageContext.getApplicationModule(webBean); OAApplicationModule nestedAM = (OAApplicationModule)rootAM.findApplicationModule(&quot;NegAM&quot;);if (nestedAM == null) nestedAM = (OAApplicationModule)rootAM.createApplicationModule(&quot;NegAM&quot;, &quot;;);}
  17. 17. Extending Application Module (AM) : <ul><li>Adding the VO to the seeded root AM at run time </li></ul><ul><li>We would need to extend the Controller, where we will add the code so that the VO is attached to the AM at runtime </li></ul><ul><li>Call of this code would add the custom VO to the seeded AM at run time </li></ul>private void processRequest (OAPageContext oapagecontext, OAWebBean oawebbean){ ResponseAMImpl am = getPageAM(oapagecontext, oawebbean); OAViewObject vo = (OAViewObject)am.findViewObject(&quot;xxCustomNonResponsiveVO&quot;); if(vo == null) { vo = (OAViewObject)am.createViewObject(&quot;xxCustomNonResponsiveVO&quot;,&quot; creation.server. xxCustomNonResponsiveVO&quot;); } }
  18. 18. How Personalization play a role in Extension <ul><li>OAF Personalizations means personalize the user interface (UI) of Oracle Self-Service Web Applications without modifying any underlying code </li></ul><ul><li>OA Framework extensibility is geared to enable customers to add new functionality and override or extend existing business logic </li></ul><ul><li>Why use OAF Personalization along with OAF Extension to meet the requirement ? </li></ul><ul><li>When adding a custom Region </li></ul><ul><li>Extending a Controller </li></ul>Region Path
  19. 19. Deploying your extensions <ul><li>Deploying during development </li></ul><ul><li>Deploying from one instance to another </li></ul><ul><ul><li>Configurations </li></ul></ul><ul><ul><li>Databases </li></ul></ul><ul><ul><li>Import Extended BC4J components and Pages </li></ul></ul><ul><ul><li>Deploy Java Classes </li></ul></ul><ul><ul><li>Export all Personalizations to your local machine and import the Personalizations to the destination machine </li></ul></ul>
  20. 20. Brief on Customization <ul><li>What is Customization </li></ul><ul><ul><li>New pages and respective BC4J components </li></ul></ul><ul><li>Various approaches to Customization </li></ul><ul><ul><li>APEX ( EBS 12.1.3) </li></ul></ul><ul><ul><li>ADF (Application Development Framework) </li></ul></ul>
  21. 21. Questions & Answers? Questions Answers
  22. 22. About iWareLogic: <ul><li>iWare Logic is a company specializing in Oracle Technologies. </li></ul><ul><li>iWare Logic is an Oracle Gold Partner providing IT Services in areas of Core and Apps DBA, Oracle Business Intelligence, Oracle E-Business Suite, OAF, Siebel and APEX. </li></ul><ul><li>iWare Logic offers Application Development delivery with focus on application customizations, workflows, integrations, and data conversions. </li></ul><ul><li>We also provide skilled resources for on-site/off-shore projects for Oracle Enterprise Applications' Implementations and Support. </li></ul><ul><li>For more information, email us at [email_address] </li></ul>
  23. 23. <ul><li>E-mail – [email_address] </li></ul><ul><li>Website – </li></ul>