Sub Functions In Oracle Application

Author

Name:

Archana

E-mail:

navya.rsk@gmail.com
 

Bookmark and Share   Email

This article show how to use various form functions in oracle applications

Overview:

           There are two types of functions: form functions, and non-form functions. For clarity, we refer to a form function as a form, and a non-form function as a sub function, even though both are just instances of functions in the database.

             Oracle Applications aggregates several related business functions into a single form. But all users should not have access to every business function in a form; Oracle Applications provides the ability to identify pieces of applications logic as   sub functions. When part of an application's functionality is identified as a sub functions, it can be secured (i.e., included or excluded from a responsibility).

          Sub function (Non-Form Function):

A non-form function (sub function) is a securable subset of a form's functionality. Sub functions are frequently associated with buttons or other graphical elements on forms. For example, when a sub function is created for a button in a form and if the created sub function is added to the particular responsibility, then only the corresponding button will be enabled in that responsibility, otherwise (if the created sub function is not added to responsibility) the button is disabled, even if the main function is added to that responsibility, and the user will not be able to access the button.

                                  The user can access the main function but not the sub function, if the sub function is not added to the responsibility, which means we can provide security to the part of the form functionality, using the function security mechanism through the sub function.


Diagrammatic illustration of the sub functions:

Steps to implement a Sub function in a form:

1: Open Template.fmb using Oracle form builder, save it with another name(XX_SUB_ FUNC.fmb)  and give the module name as “XX_SUB_ FUNC”.


2: Delete the following:

      “BLOCKNAME” from Canvas and Data Block

      “DETAILBLOCK” from Data Block

      “BLOCKNAME” from Window.



3: Create window (XX_SUB_ WIN), apply subclass information as “WINDOW” and give the title.


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


Give this window name in PRE-FORM trigger (Form Level) As Shown below


   Give this window name in APP_CUSTOM (PACKAGE BODY) as below  




 5: Create New Canvas


6:  Now create a new Data block (EMP) using Wizard or Manual, apply subclass information to the block as “BLOCK” and also apply subclass information to the items as “TEXT_ITEM”.





 Click on Finish..............until finish

 7:  Give the Subclass information for Block (EMP) As BLOCK


8: Create a Button(EXIT)  in Canvas and write your required functionality code in when button pressed trigger.


9: Give the Subclass information for ITEM (EMPNO) as TEXT_ITEM


10: Finally   move your form from our Local Machine to CUSTOM_TOP using WINSCP or any of your local tools.


11: Compile the Form using “f60gen”

In the UNIX environment, type the following command:

                            f60gen XX_SUB_ FUNC.fmb apps/apps



12: Connect to Oracle Applications:

1. Create a Form (Navigation: Application Developer->Application-> Form)

 Here give the following details and save the details.

                                      Form =>XX_SUB_ FUNC (.fmx )
                                      Application => xxmz Custom(Custom TOP Application)
                                      User Form Name=>Give any name


2. Create a function (Navigation: Application->function)

   Here give the following details:

Description Tab:

                     Function name: Any Name (XX_SUB_ FUNC_ FUNC)

                     User Function Name: Any Name (XX_SUB_ FUNC_ FUNC)


Properties Tab:

                         Type: Form

                          Maintenance Mode Support: None

                          Context Dependence: Responsibility 


 Form Tab:

                    Attach User Form  Name:XX_SUB_ FUNC


Create Sub Function (XX_SUB_ FUNC_ FUNC1) below the main function

 (Navigation: Application Developer=>Application=>Function)

Give the   User Function Name: XX_SUB_ FUNC_ FUNC: EXIT (User function name: button name)


  Properties Tab:

                      Type: Sub function

                      Maintenance Mode Support: None

                      Context Dependence: Responsibility 


13: Once again Switch to Form builder open the user form and go to Form Level Trigger 

 “WHEN_NEW_FORM_INSTANCE” and incorporate the function


14: Write the  Function ( Function name=>fnd_function.test) As

  Script:

             if fnd_function.test('XX_SUB_ FUNC_ FUNC1')then

             set_item_property('emp.exit',ENABLED<PROPERTY_TRUE):

  else

set_item_property('emp.exit',ENABLED,PROPERTY_FALSE);

END IF;


15: Save it and move the form to custom top using WINSCP like tools and compile the form again



16: Switch to Oracle application:

Switch to Menu

                  (Navigation: Application Developer=>Application=>Menu)

      Attach Main function to the Custom TOP menu

              User function name: XX_SUB_ FUNC_ FUNC


Switch to Custom Application Responsibility (XXMZ CUSTOM)        


 Execute the Function (Click on the Function name)

                 (Function name=>sub functions)


    The button will be disabled (because the sub function is added for the button and sub function is  not added to the custom menu)       


      Switch to Application Developer Responsibility


Attach Sub function to the Custom TOP menu without giving prompt.

     User sub function name: XX_SUB_ FUNC_ FUNC: EXIT


Again Switch Custom Application Responsibility(XXMZ CUSTOM)


 Click on Function name (sub functions)


The button will be enabled (because the sub function is added to the button and also to the custom menu)


kumar

commented on 10/16/2009 7:33:30 AM

can u give more examples on this

   

srinivas

commented on 10/16/2009 7:53:56 AM

Hi archana can please provide where to use the fnd_function example more,seems to be your good at forms

   

ivistutz

commented on 7/22/2010 3:57:32 PM

yahoo 1800s globe pattern

   

ramaraju

commented on 8/17/2010 4:29:00 AM

Hi archana,

   

rama raju

commented on 8/17/2010 4:31:26 AM

Hi Archana This is Raju i want information about how to create go button in oracle apps using forms please help me urgent and post me to my mail
Thanks& Regards
T V Rama Raju

   
1
Comments Box

Name:

Email: