Search In This Blog

Monday, April 20, 2009

Customizing Self Service Applications using Personalizations

Release 11.5.10 provides a feature called Personalize Page, which gives us the ability to customize the look and feel of the Self Service Applications.

Self_Service_Applications_Personalization_OA_Framework

Setting the Profile option Personalize Self-Service Defn to "Yes", enables this feature. If it is set to "No", the Personalize Page link will not be seen prohibiting you from customizing the self-service page.

There are other profile options that need to be turned on depending on the personalizations required.
FND: Personalization Region Link Enabled = Yes
FND: Personalization WYSIWYG Enabled = Yes

Personalizations allow you to make changes at various levels:
Function: One can define functions and can define granular level personalization based upon these functions.
Site: Personalizations that affect all users with access to the given application component.
Operating Unit: Personalizations that affect all users with access to the given operating unit.
Responsibility: Personalizations that affect all users with access to the given responsibility.

Some of the customizations that can be achieved using Personalization:
In all our examples we will be considering iExpense self –service Application.

1) To remove the Cash and Other Expenses Link from the Navigation train (Road Map) on
General Information Entry Page

  • Navigate to the General Information Entry Page

Self_Service_Applications_Personalization_OA_Framework

  • Click on "Personalize Page" on the right hand corner of the page (shown in the above screenshot).

  • You will see the following page come up. Select the Complete View Radio button.

Self_Service_Applications_Personalization_OA_Framework

  • Scroll down to the "Location" Section

Self_Service_Applications_Personalization_OA_FrameworkSelf_Service_Applications_Personalization_OA_Framework

  • Click the Pencil Icon next to "Link: Cash and Other Expenses"
  • Set the Personalization Property "Rendered" to "False" at the Responsibility Level

Self_Service_Applications_Personalization_OA_Framework

  • Click on Apply to save the changes.
  • On returning back to the Application, you will see that the Cash and Other Expenses link is hidden from the Navigation Train.

Self_Service_Applications_Personalization_OA_Framework

  • Add the below Text to Cash and Other Expenses page:

Cash, Mileage and other out of pocket expenses will not be processed for payment
in iExpenses after December 17th, 2008. Please use SAP system to enter such
expenses.

  • Navigate to the Cash and Other Expenses Page and click on "Personalize Page" on the right hand corner of the page.
  • You will see the following page come up. Select the Complete View Radio button.

Self_Service_Applications_Personalization_OA_Framework

  • Scroll down to the "Page Layout" Section and click on Create Item Icon next to it.

Self_Service_Applications_Personalization_OA_Framework

  • Enter the Following information:

Select the Item Style as "Formatted Text".
Specify a name for this item in the field ID.
Enter CSS Class as OraErrorNameText to display the text in Red Color.
Text as Cash, Mileage and other out of pocket expenses will not be processed for payment in iExpenses after December 17th, 2008. Please use SAP system to enter such expenses
Self_Service_Applications_Personalization_OA_Framework

  • Click Apply to save the changes.
  • Reorder an item: By default, the above text would be displayed at the bottom of the page. To bring it to the top, click Reorder icon next to "Page Layout"

Self_Service_Applications_Personalization_OA_Framework

  • Select the Personalize Radio button under Responsibility section

Self_Service_Applications_Personalization_OA_Framework

  • Move the item that has been created to the first position using the Arrow to the right

Self_Service_Applications_Personalization_OA_Framework
Self_Service_Applications_Personalization_OA_Framework

  • Click Apply button to save the changes.
  • On returning to the application, you will see the text is displayed as seen below,

Self_Service_Applications_Personalization_OA_Framework

  • Hide the Receipt Based Expenses table to prevent the user from entering any expenses in this section.
  • Navigate to the Cash and Other Expenses Page and click on "Personalize "use this table to enter receipt-Based Expenses" under the Receipt-Based Expenses Header.

Self_Service_Applications_Personalization_OA_Framework

  • You will see the following page come up. Select the Complete View Radio button. Click on the Pencil icon next to the "Table: Use this table to …"

Self_Service_Applications_Personalization_OA_Framework

  • Set the Personalization Properties "Rendered" to False at the responsibility level.

Self_Service_Applications_Personalization_OA_Framework

  • Click on Apply to save the changes.
  • On returning to the application, you will see that the Receipt based Expenses table is hidden

Self_Service_Applications_Personalization_OA_Framework

Similarly anything could be hidden (Buttons, column etc) by setting its property "Rendered" to "False".

  • To Make the field "Expense Cost Center" Read only in the General Information Page:
  • Navigate to the General Information Entry Page

Self_Service_Applications_Personalization_OA_Framework

  • Click on "Personalize Page" on the right hand corner of the page (shown in the above screenshot).
  • You will see the following page come up. Select the Complete View Radio button.

Self_Service_Applications_Personalization_OA_Framework

  • Scroll down to the Name "Message Text Input: Expense Cost Center" and click on the Pencil icon next to it.

Self_Service_Applications_Personalization_OA_Framework

  • Set the property "Read only" to True at the responsibility level. Click on apply to save the changes.

Self_Service_Applications_Personalization_OA_Framework

  • Upon returning to the application, you will see that the Expense cost Center filed has been made Read only making it non-updatable.

Self_Service_Applications_Personalization_OA_Framework

  • To change the Field Name Purpose to Expenses Justification in General Information Page.
  • Navigate to the General Information Entry Page

Self_Service_Applications_Personalization_OA_Framework

  • Click on "Personalize Page" on the right hand corner of the page (shown in the above screenshot).
  • You will see the following page come up. Select the Complete View Radio button.

Self_Service_Applications_Personalization_OA_Framework

  • Scroll down to the Name "Message Text Input: Purpose" and click on the Pencil icon next to it.

Self_Service_Applications_Personalization_OA_Framework

  • Change the Property "Prompt" to "Expenses Justification" at responsibility level and click on Apply to save the changes.

Self_Service_Applications_Personalization_OA_Framework

  • Upon returning to the application, you will see that the field name is changed.

Self_Service_Applications_Personalization_OA_FrameworkSelf_Service_Applications_Personalization_OA_Framework

Similarly, the display name could be changed for buttons and other objects too.








Thanks & Regards ,
Kamlesh Nikhade

Develop the Query_Find form in Form Builder

Develop the Query_Find form in Form Builder

 

 

  • Step 1: Open Template.fmb with form builder save it with another name(XXMZ_Query_Find.fmb)  and give the module name as "XXMZ_QUERY_FIND".

Query_find_form

  • Step2 : Delete  "BLOCKNAME" from Window,Canvas and Data Block and delete "DETAILBLOCK" from Data Block.

Query_find_form

Step 3: Create window(DEPT_WINDOW) apply subclass information as "WINDOW" and give the title.

Query_find_form

  • Step 4:  Give this window name in PRE-FORM trigger (Form Level) and give this window   name in in APP_CUSTOM  body   Program_Unit( in place of window name).

Query_find_form

Compile and Close The Window.

Query_find_form

Compile and Close The Window.

  • Step 5: Create Canvas(DEPT_CANVAS) apply subclass information as Canvas.

Query_find_form

  • Step 6:  Now Create Data block(DEPT)  with Wizard or Manual ,apply subclass information to the block as "BLOCK"   and also apply subclass information to the items as "TEXT_ITEM".

Query_find_form

Query_find_form

Query_find_form

  • Step 7:Step 5: Drag "QUERY_FIND" Object Group from "APPSTAND.fmb" to Our Form(XXMZ_Query_Find.fmb) Object Group. Here we get  window,canvas,datablock will come automatically  with the name "QUERY_FIND".

Query_find_form

Query_find_form

Query_find_form

Query_find_form

Step 8: Apply subclass information to Window,Canvas as well as Block. And drag these to first position   as shown in below.

Query_find_form

  • Step 9:  In "QUERY_FIND" data block we get 3 buttons(Clear,New,Find) with 3 Triggers.

        Give Block name as "DEPT" in   WHEN-BUTTON-PRESSED trigger of New and Find Button. Compile and close.

Query_find_form

Query_find_form

Query_find_form

  • Step 10: Next create  Control item in the Query_Find Block apply subclass information as "TEXT_ITEM"  and attach that item to the  QUERY_FIND canvas.

Query_find_form

Query_find_form

  • Step 9:

           Next drag the QUERY_FIND trigger from "APPSTAND.fmb" and Place it in "DEPT" block  level trigger.

Query_find_form

             Syntax:            APP_FIND.QUERY_FIND('<results block window>', '<Find window>', '<Find window block>');

         And write the following code in that trigger:

          APP_FIND.QUERY_FIND('DEPT_WINDOW', 'QUERY_FIND','QUERY_FIND');

Query_find_form

  • Step 10:

             Next Create "PRE-QUERY" trigger in the block level(DEPT)

Syntax:        

IF :parameter.G_query_find = 'TRUE' THEN
COPY (<find Window field>,'<results field>');
:parameter.G_query_find := 'FALSE';
END IF;

Write the following code

IF :parameter.G_query_find = 'TRUE' THEN
COPY(:QUERY_FIND.DEPTNO, 'DEPT.DEPTNO');
:parameter.G_query_find := 'FALSE';
END IF;

Query_find_form

  • Step 11: In the form module(XXMZ_Query_Find) give the first navigation block as "QUERY_FIND". In the  QUERY_FIND datablock give next navigation block as "DEPT".

Query_find_form

Query_find_form

  • Step 12:   Finally Save and move your form from our Local Machine  to CUSTOM_TOP using WINSCP tool.

Query_find_form

  • Step 13:  Compile the Form using "f60gen"

               
In the UNIX environment, type the following command:

                            f60gen XXMZ_QUERY_FIND.fmb apps/apps

Query_find_form

Now "XXMZ_QUERY_FIND.fmx " should be generated in the CUSTOM_TOP.

  • Step 14:

           Connect to Oracle Applications. Create a Form
(Navigation:Application Developer->Application-> Form)

             Here give Form =>XXMZ_QUERY_FIND(.fmx )
Application => xxmz Custom(Custom TOP Application)
User Form Name=>Give any name

Query_find_form

  • Step 15: Create a function (Navigation: Application->function)

Query_find_form

Query_find_form

  • Step 16:Attaching Form to the Function shown in below.

              Attach that function to the Custom TOP menu

Query_find_form

Query_find_form

Query_find_form

Query_find_form

Query_find_form

Click on Find Button

Query_find_form

 

 

 
 
 
 
 
 
 
 
Thanks & Regards ,
 Kamlesh Nikhade