ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Enhance Oracle SSHR with
Advanced Personalizations and
     OA FWK Extensions
     Ramesh Sannegowda
        02-Mar-2007
        SEOUC 2007
Overview

• Overview
  – Personalizations/Extensions, What’s the
    difference?
  – Where are personalizations/page meta data
    stored
  – Add new items to a page/region
  – Identify available fields via ‘About page’
Overview cont..

• Overview cont…
  – SPEL language for dynamic personalizations
  – Using JDR utilities
  – Custom Look & Feel (CLAF)
  – Extending Business Components
  – Deploying extensions
Personalizations/Extensions

• Difference between personalizations and
  extensions
  – Personalizations
    • Declaratively alter the UI to meet user/business
      need
       – Change Label, Show/Hide fields etc.
  – Extensions
    • Programmatically extend application functionality
       – Add business logic, Add new fields etc.
Personalizations/Extensions

• Difference between personalizations and
  extensions contd..
  – OAF components: Declarative and Programmatic
     • Declarative/UIX (page metadata): XML
     • Programmatic: Java
  – Personalizations
     • Global Personalize link
     • Region/Item level personalize link
  – Extensions
     • JDeveloper with OA FWK extensions available as patch on
       Metalink
Personalizations

• Where are personalizations/page meta data
  stored?
  – Source files
     • $PROD_TOP/mds/selfservice/<function>/webui
  – Seeded personalizations
     • $PROD_TOP/mds/selfservice/<function>/webui/customizations
  – Database MDS repository (user personalizations)
     • JDR_PATH
     • JDR_COMPONENTS
     • JDR_ATTRIBUTES
Personalizations
• Adding new items to page/region
Personalizations
• Adding additional items to page/region
Personalizations
• Adding additional items to page/region




                  OA.jsp?akRegionCode=
                  HR_PROCESS_PEOPLE_TOP_SS
                  &akRegionApplicationId=800
                  &language_code=US
                  &pDestination=HR_ACTIONS_SS&pCalledFrom=
                  &retainAM=Y&addBreadCrumb=Y
                  &pPersonId={!PersonId}
Personalizations
• Adding additional items to page/region
Personalizations
• Identify available fields via ‘About Page’
Personalizations
• Identifying available fields via About page
Personalizations
• Identifying available fields via About page
Personalizations
• Identifying available fields via About page
Personalizations
• Add new Region
Personalizations
• Add new Region
Personalizations

• Dynamic personalizations
  – SPEL language
    • Simplest Possible Expression Language
    • Used to set (true/false, yes/no)
       –   Read Only
       –   Rendered
       –   Required
       –   Disabled
    • ${oa.<viewObject>.<viewAttr>},
      ${oa.function.<functionName>},
      ${oa.FunctionSecurity.<FunctionName>}
Personalizations

• Dynamic personalizations (example)
  – Step 1: Create a function with a name that describes the rule
    you want to implement. For example, assume you have a text
    field whose Read Only property should be True if the user DOES
    NOT have access to the MANAGER_READ_ONLY function when
    logged in using the MANAGER responsibility.
  – Step 2: Create a grant for this function. In this example, we
    would create a function grant for MANAGER_READ_ONLY in the
    context of the responsibility MANAGER.
  – Step 3: Set the Read Only property using the following SPEL
    syntax:${oa.FunctionSecurity.<FunctionName>}
Personalizations

• Dynamic personalizations (example contd..)
  – The test will return False if <FunctionName> is
    granted to the current user/responsibility, otherwise
    True.
  – In this example, we would set the Read Only property
    to: ${oa.FunctionSecurity.MANAGER_READ_ONLY}
  – If the user is logged in to the MANAGER responsibility
    and has been granted access to this function, the OA
    Framework returns False in the function security test.
    When the Read Only property is set to False, the item
    is updateable.
Personalizations
• SPEL binding
Maintain Personalizations

• Maintain personalizations using JDR utilities
  –   jdr_utils.listcustomizations
  –   jdr_utils.printdocument
  –   jdr_utils.listcontents
  –   jdr_utils.deletedocument
       • Examples
          – jdr_utils.listcustomizations('/oracle/apps/per/selfservice/commo
            n/server/customizations/site/0/AsgSummaryVO');
          – jdr_utils.printdocument('/oracle/apps/per/selfservice/common/s
            erver/customizations/site/0/AsgSummaryVO');
          – jdr_utils.deletedocument('/oracle/apps/per/selfservice/common
            /server/customizations/site/0/AsgSummaryVO');
          – jdr_utils.listcontents('/oracle/apps/per/selfservice/personalinfor
            mation/webui/customizations/site/0');
Custom Look & Feel (CLAF)

• Components of LAF
  – Style Sheets (XSS)
  – Icons
  – Renderers (.uit)
• Create Custom LAF using
  – Base LAF
  – Simple LAF
  – Another Custom LAF
Custom Look & Feel (CLAF)

• Style Sheets
  – Control Font and Color of HTML components
     • OA_HTML/cabo/styles/<ClafId.xss>
• Icons
  – Control LAF of Web Beans
• Renderers
  – Controls how Web Beans lay out children and
    generate HTML
  – Defined declaratively (.uit extension)
     • OA_HTML/cabo/templates/ClafID/ClafId.uit
Custom Look & Feel (CLAF)
• CLAF User Interface
Custom Look & Feel (CLAF)
• CLAF User Interface
Custom Look & Feel (CLAF)
• CLAF User Interface
Custom Look & Feel (CLAF)
• CLAF User Interface
Custom Look & Feel (CLAF)
• Adding custom renderers
  – Edit $OA_HTML/cabo/lafs/ClafId.xml
    <renderer name="pageLayout">
           <template name="pageLayout.uit">
           </template>
    </renderer>
Custom Look & Feel (CLAF)
Custom Look & Feel (CLAF)
Extensions

• Extend VO to add new columns
  – Used to add new fields to a page using
    personalizations
• Extend VO to smart filter LOVs, Picklists
• Extend EO to add validation
• Avoid extending CO code
Extensions

• Extend EO/VO
  – Review ‘About this Page’ for the page/region that you
    want to add new fields
  – Determine the VO that you will be extending
  – Import the package that contains the VO into your
    JDeveloper project
  – Create new VOEx by extending the seeded VO
  – Add new attribute to the VOEx
  – Substitute seeded VO with VOEx in the JPX file
  – Use JPXIMPORT.bat to import the JPX file to database
Extensions
• Extend EO/VO
Extensions
• Extend EO/VO
Extensions
• Extend EO/VO
Extensions
• Adding validation to enforce business rules
Extensions
• Adding validation to enforce business rules
Extensions
• Adding validation to enforce business rules
Extensions

• Deploying Extensions
  – Do not replace the original object
  – Extend and Substitute
  – Move all the files and directories in your
    custom package to the middle tier
  – Run JpxImport utility to migrate the
    substitutions
  – Bounce Apache
24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extensions

More Related Content

24221030 Enhance Oracle Sshr With Advanced Personalizations And Oa Fwk Extensions

  • 1. Enhance Oracle SSHR with Advanced Personalizations and OA FWK Extensions Ramesh Sannegowda 02-Mar-2007 SEOUC 2007
  • 2. Overview • Overview – Personalizations/Extensions, What’s the difference? – Where are personalizations/page meta data stored – Add new items to a page/region – Identify available fields via ‘About page’
  • 3. Overview cont.. • Overview cont… – SPEL language for dynamic personalizations – Using JDR utilities – Custom Look & Feel (CLAF) – Extending Business Components – Deploying extensions
  • 4. Personalizations/Extensions • Difference between personalizations and extensions – Personalizations • Declaratively alter the UI to meet user/business need – Change Label, Show/Hide fields etc. – Extensions • Programmatically extend application functionality – Add business logic, Add new fields etc.
  • 5. Personalizations/Extensions • Difference between personalizations and extensions contd.. – OAF components: Declarative and Programmatic • Declarative/UIX (page metadata): XML • Programmatic: Java – Personalizations • Global Personalize link • Region/Item level personalize link – Extensions • JDeveloper with OA FWK extensions available as patch on Metalink
  • 6. Personalizations • Where are personalizations/page meta data stored? – Source files • $PROD_TOP/mds/selfservice/<function>/webui – Seeded personalizations • $PROD_TOP/mds/selfservice/<function>/webui/customizations – Database MDS repository (user personalizations) • JDR_PATH • JDR_COMPONENTS • JDR_ATTRIBUTES
  • 7. Personalizations • Adding new items to page/region
  • 9. Personalizations • Adding additional items to page/region OA.jsp?akRegionCode= HR_PROCESS_PEOPLE_TOP_SS &akRegionApplicationId=800 &language_code=US &pDestination=HR_ACTIONS_SS&pCalledFrom= &retainAM=Y&addBreadCrumb=Y &pPersonId={!PersonId}
  • 11. Personalizations • Identify available fields via ‘About Page’
  • 17. Personalizations • Dynamic personalizations – SPEL language • Simplest Possible Expression Language • Used to set (true/false, yes/no) – Read Only – Rendered – Required – Disabled • ${oa.<viewObject>.<viewAttr>}, ${oa.function.<functionName>}, ${oa.FunctionSecurity.<FunctionName>}
  • 18. Personalizations • Dynamic personalizations (example) – Step 1: Create a function with a name that describes the rule you want to implement. For example, assume you have a text field whose Read Only property should be True if the user DOES NOT have access to the MANAGER_READ_ONLY function when logged in using the MANAGER responsibility. – Step 2: Create a grant for this function. In this example, we would create a function grant for MANAGER_READ_ONLY in the context of the responsibility MANAGER. – Step 3: Set the Read Only property using the following SPEL syntax:${oa.FunctionSecurity.<FunctionName>}
  • 19. Personalizations • Dynamic personalizations (example contd..) – The test will return False if <FunctionName> is granted to the current user/responsibility, otherwise True. – In this example, we would set the Read Only property to: ${oa.FunctionSecurity.MANAGER_READ_ONLY} – If the user is logged in to the MANAGER responsibility and has been granted access to this function, the OA Framework returns False in the function security test. When the Read Only property is set to False, the item is updateable.
  • 21. Maintain Personalizations • Maintain personalizations using JDR utilities – jdr_utils.listcustomizations – jdr_utils.printdocument – jdr_utils.listcontents – jdr_utils.deletedocument • Examples – jdr_utils.listcustomizations('/oracle/apps/per/selfservice/commo n/server/customizations/site/0/AsgSummaryVO'); – jdr_utils.printdocument('/oracle/apps/per/selfservice/common/s erver/customizations/site/0/AsgSummaryVO'); – jdr_utils.deletedocument('/oracle/apps/per/selfservice/common /server/customizations/site/0/AsgSummaryVO'); – jdr_utils.listcontents('/oracle/apps/per/selfservice/personalinfor mation/webui/customizations/site/0');
  • 22. Custom Look & Feel (CLAF) • Components of LAF – Style Sheets (XSS) – Icons – Renderers (.uit) • Create Custom LAF using – Base LAF – Simple LAF – Another Custom LAF
  • 23. Custom Look & Feel (CLAF) • Style Sheets – Control Font and Color of HTML components • OA_HTML/cabo/styles/<ClafId.xss> • Icons – Control LAF of Web Beans • Renderers – Controls how Web Beans lay out children and generate HTML – Defined declaratively (.uit extension) • OA_HTML/cabo/templates/ClafID/ClafId.uit
  • 24. Custom Look & Feel (CLAF) • CLAF User Interface
  • 25. Custom Look & Feel (CLAF) • CLAF User Interface
  • 26. Custom Look & Feel (CLAF) • CLAF User Interface
  • 27. Custom Look & Feel (CLAF) • CLAF User Interface
  • 28. Custom Look & Feel (CLAF) • Adding custom renderers – Edit $OA_HTML/cabo/lafs/ClafId.xml <renderer name="pageLayout"> <template name="pageLayout.uit"> </template> </renderer>
  • 29. Custom Look & Feel (CLAF)
  • 30. Custom Look & Feel (CLAF)
  • 31. Extensions • Extend VO to add new columns – Used to add new fields to a page using personalizations • Extend VO to smart filter LOVs, Picklists • Extend EO to add validation • Avoid extending CO code
  • 32. Extensions • Extend EO/VO – Review ‘About this Page’ for the page/region that you want to add new fields – Determine the VO that you will be extending – Import the package that contains the VO into your JDeveloper project – Create new VOEx by extending the seeded VO – Add new attribute to the VOEx – Substitute seeded VO with VOEx in the JPX file – Use JPXIMPORT.bat to import the JPX file to database
  • 36. Extensions • Adding validation to enforce business rules
  • 37. Extensions • Adding validation to enforce business rules
  • 38. Extensions • Adding validation to enforce business rules
  • 39. Extensions • Deploying Extensions – Do not replace the original object – Extend and Substitute – Move all the files and directories in your custom package to the middle tier – Run JpxImport utility to migrate the substitutions – Bounce Apache