Personalization FAQ

This appendix covers the following topics:

Overview

This FAQ (frequently asked questions) document describes common problems and solutions related to personalizing OA Framework-based applications.

Customizing Look-and-Feel (CLAF)

Questions

  1. When I create a new Look-and-Feel extending Simple Look-and-Feel, there is no space between the global links. How do I fix this?

    (See answer)

  2. In customizing fonts using the CLAF UI, when I change the DefaultFont style to use a different font size, the settings don't take effect. How do I fix this?

    (See answer)

  3. How do I package a new LAF configuration for delivery to a customer?

    (See answer)

Answers

  1. When I create a new Look-and-Feel extending Simple Look-and-Feel, there is no space between the global links. How do I fix this?

    You need to redefine the style GlobalButtonText in your new custom look and feel with the following property-value pair:

    • Property: padding

    • Value: 5px (or whatever number of pixels you want to define as the space between the global links)

    Verify that your custom style sheet file has the following tag generated:

    <style name="GlobalButtonText">
    <property name="padding">5px</property>
    </style>

    You can use the CLAF UI to add this style, or you can manually insert the above set of tags in your custom style sheet.

    (Back to question)

  2. In customizing fonts using the CLAF UI, when I change the DefaultFont style to use a different font size, the settings don't take effect. How do I fix this?

    When you extend the Simple Desktop Look-and-Feel to create your custom Look-and-Feel, you also inherit browser- and locale-specific style sheets. The DefaultFont style is defined for the following combinations:

    • browser=ie

    • browser=ie, locale=windows

    Hence when you use the CLAF UI to define the DefaultFont, it gets written for the no-browser, no-locale case, and would be overridden by the definitions in any matching browser/locale style sheets.

    To fix this, you, in turn, need to override the most matching browser/locale combination. Currently, you have to do this manually by editing your custom style sheet as follows:

    <styleSheet locale="windows" browser="ie"> 
    <style name="DefaultFont"> 
    <property name="font-size">7pt</property> 
    </style> 
    </styleSheet>

    (Back to question)

  3. How do I package a new LAF configuration for delivery to a customer?

    Transferring a LAF to a different system requires these steps:

    1. The individual .xml, .xss, .uit and .gif files need to be separately source controlled.

    2. To make it easier to deliver to a customer, create a .zip archive of all of the relevant files and ship it to the customer.

      Make sure that you preserve the folder structure of the LAF configuration when creating and extracting the archive. The archive must contain the following files:

      • All custom LAF .xml files and metadata files generated in $HTML_TOP/cabo/lafs.

        Note: For every custom LAF you create, two .xml files are generated:

        • lookandfeel_id.xml

        • lookandfeel_id-metadata.xml

      • All of the style definition (.xss) files generated in $HTML_TOP/cabo/styles.

        Note: For every custom LAF you create, one .xss file is generated, named lookandfeel_id.xss.

      • All .uit files that you placed in the folder $HTML_TOP/cabo/templates/lookandfeel_id.

        Note: To customize the template renderer of each component, you must create a componentName.uit file and place it in $HTML_TOP/cabo/templates/lookandfeel_id.

      • All custom image (.gif) files that you placed in the folder $HTML_TOP/cabo/images/lookandfeel_id when you created the custom LAF by that ID.

        Note: To customize icons for a custom LAF, you must place its custom images in the folder $HTML_TOP/cabo/images/lookandfeel_id.

    3. To make the newly transferred LAF accessible on the customer's site, you must add lookandfeel_id as a lookup value to the APPLICATIONS LOOK AND FEEL lookup type. You can do this in one of two ways:

      • Extract the LDT file for the original APPLICATIONS LOOK AND FEEL lookup and the Oracle Applications Look And Feel profile, and apply the LDT to the customer site. This will add the value of the new lookandfeel_id to the customer's APPLICATIONS LOOK AND FEEL lookup type.

        For more information, refer to the Using Loaders appendix of the Oracle E-Business Suite Setup Guide, which you can find in the Oracle E-Business Suite Documentation Library.

        Warning: Although this is the preferred method, it will overwrite all of the existing lookup and profile values, including any that the customer has modified. To avoid this, use the following method.

      • Manually add the value of the new lookandfeel_id to the customer's APPLICATIONS LOOK AND FEEL lookup type. This method has the benefit of not disturbing any existing look and feel modifications on the customer's system.

        You need to use the developer form for Application Object Library Lookups. Access the APPLICATIONS LOOK AND FEEL lookup type, and add a new lookup entry with the same value as the name of the new LAF that you are implementing.

        For more information, refer to the section on Application Utilities Lookups and Application Object Library Lookups in the Additional Developer Forms appendix of the Oracle E-Business Suite Developer's Guide, which you can find in the Oracle E-Business Suite Documentation Library.

    (Back to question)

Creating Personalizations

Questions

  1. After upgrade, my function-level personalization does not take effect or I am not able to see the function in the Personalization Context of the Page Hierarchy Personalization page.

    (See answer)

  2. Do personalizations of OA Framework-based applications use Data Manipulation Language (DML) queries to manipulate the underlying business data?

    (See answer)

Answers

  1. After upgrade, my function-level personalization does not take effect or I am not able to see the function in the Personalization Context of the Page Hierarchy Personalization page.

    To correct this problem, perform the following steps:

    1. Identify the personalization document path of the page where the function-level personalization does not work after upgrade:

      1. Select the About this Page link for the page where the function-level personalization does not work. Copy the document path shown.

      2. Login into the database and run the following script in SQL:

        exec jdr_utils.listcustomizations(<path_to_doc>);

      3. Replace <path_to_doc> with the document path you just copied. For example:

        /oracle/apps/ben/selfservice/enrollment/webui/customizations/function/BEN_SS_BNFT_ENRT/FamilyMbrsPG

    2. Run the following script in SQL:

      exec jdr_utils.printdocument(<path_to_function_personalization_doc>);

    3. Search for the following string in the document content:

      developerMode="true"

    4. If the string is present, manually edit the document as follows:

      1. Export the personalization document to the file system using the XMLExporter command line tool or the Import/Export UI under the Functional Administrator responsibility.

      2. Remove the following string from the file:

        developerMode="true"

      3. Import the XML file into MDS using either the XMLImporter command line tool or the Import/Export UI under the Functional Administrator responsibility.

      Caution: Make sure you back up your exported XML file on the file system so you can revert your changes if you edit the personalization XML file incorrectly.

    Note: The reason why the string, developerMode="true", is present in the personalization document content is because the profile option FND_PERSONALIZATION_SEEDING_MODE is set to Yes. This profile should only be used by Oracle-internal product development and not by customers. Any personalizations created in earlier versions of Oracle E-Business Suite with this profile set to Yes will have this problem with function-level personalizations.

    (Back to question)

  2. Do personalizations of OA Framework-based applications use Data Manipulation Language (DML) queries to manipulate the underlying business data?

    No, personalizations of OA Framework-based applications do not use DML to manipulate the underlying business data. If you suspect a personalization is causing a data issue, you should debug it as follows:

    Suppose a database table called FOO (a product table that holds business data) is having data issues.

    1. Identify the SQL query that is populating data into the FOO table by reviewing the FND logs or by identifying the view object SQL query.

    2. In the controller of the page that you personalized, execute the query that you just identified so that you are in the same session as the application.

    For example, if a page has a data issue, add the following code to the page's controller processRequest method:

       Connection conn=pageContext.getRootApplicationModule().getOADBTransaction().getJdbcConnection();
       try
       {
        ResultSet rs = conn.prepareStatement("SELECT A,B,C,D from FOO where b=4");     
        while(rs.next())
        {
         System.out.println(rs.getString(1));
         ...
         System.out.println(rs.getString(4));            
        }
       }
       catch(SQLException e)
       {
        System.out.println(e.getStackTrace());
       } 

    If the above code example returns a result that is similar to what you see in the UI, then something other than the personalization is causing the data issue.

    (Back to question)