How to restrict functions and menus available to a user in menus

Hello Friends, Using this article, i wanted to give brief on how we can exclude some forms/ function as security in oracle applications. plz see i am trying to use two different way to get the same functionality.
There are two possibilities:
A – Restrict an existing menu:
1) Log in as System Administrator responsibility
2) Find the name of the appropriate menu      Navigator: Application -> Menu
3) Create a new responsibility       Navigator: Security -> Responsibility -> Define
4) Assign the appropriate menu to the new responsibility
5) Enter functions in the Function and Menu Exclusions section of the form Responsibilities
6) Save
7) Assign the new responsibility to the appropriate user

Example:  Restrict a user to be able to do only Assignments in the Asset Workbench.
1) Log in as the System Administrator responsibility
2) Find the name of the appropriate menu:
Description: %Asset%
2) Create a new responsibility: ASSET – assignments
3) Assign the menu FA_TRANSACTION to the responsibility ASSET – assignements
4) Enter all functions from the LOV in the Function and Menu Exclusions
section except of the Responsibilities form except “Asset Workbench” and
5) Save
6) Assign the responsibility ASSET – assignments to the appropriate user

B – Create a new menu:
1) log in as System Administrator responsibility
2) Create a new menu: Navigator: Application -> Menu      The new menu should contain only the functions and menus which should be accessible for the user.
3) Create a new responsibility       Navigator: Security -> Responsibility -> Define
4) Assign the appropriate menu to the new responsibility
5) Save
6) Assign the new responsibility to the appropriate user

Example:  Restrict a user to be able to do only Assignments in the Asset Workbench.
1) Log in with the System Administrator responsibility
2) Create the new menu menu:
Navigator: Application -> Menu
User Menu Name: FA Assignement
Description: FA Assignement
Seq: 1 Navigator Prompt: Assignment Function: Asset Workbench
Seq: 2 Navigator Prompt: Assignment Function: Assets:Assignements
3) Create a new responsibility: ASSET – assignments
4) Assign the menu FA_ASSIGN to the responsibility ASSET – assignements
5) Save
6) Assign the responsibility ASSET – assignments to the appropriate user

Please share your feedback and also if you think this article is helpful for you. or if this is difficult to understand and use, so i can improve on my future articles. thanks – Shivmohan Purohit

Oracle Applications – Basics – Part 1

Hello Friends, here i am posting some of basic oracle applications questions , will try to collect more and put in future posts, here i am putting quite easy and basic questions. If you like to know Questions of any specific area or modules, plz communicate so i will post those as well.

What are Oracle Apps API?

Where APIs are physically store? n What is the latest version of API?

They are Application Program Interfaces, which are standard stored procedure, package or functions created for performing specific activities in the Oracle Apps E-Business Suite.

Ex: The Order Import API when called would create orders corresponding to the record in the Order Interface tables.

How to attach reports in Oracle Applications?

The steps are as follows:

1.          Design your report.

2.          Generate the executable file of the report.

3.          Move the executable as well as source file to the appropriate product’s folder.

4.          Register the report as concurrent executable.

5.          Define the concurrent program for the executable registered.

6.          Add the concurrent program to the request group of the responsibility.

How to attach Forms in Oracle Applications

1. Develop the form in Developer 2000.

2. Save the FORM and move it to UNIX. [Form to be moved to $CUSTOM_TOP/forms/US]

3. Define the FORM in Application Developer

4. Define FORM as FUNCTION.

5. Identify MENU, where the FORM to be attached. [SysadminResponsibilityDefine]

6.Copy the above MENU and go to Application Developer and query on MENU tab

What is the difference between Customization and Personalization?

Customization is done by making the changes in the cutom.pll whereas the Form Personalization is done through the Front End in Oracle Apps.

Difference between Key and Descriptive Flexfield?

key flex fields are used to identify particular entity like(accounts,objects) supoose take debit cards each debit card contain unique number to identify them. eg; 100-023-323 key flex fields are used to store this number along with description.

Unique Identifier

Key Flexfield are stored in segment

For key flexfield there are flexfield Qualifier and segment Qualifier

DFF’s are used to capture additional informtion required for our organization without any programming.

To capture extra information
Stored in attributes
Context-sensitive flexfield is a feature of DFF. (descriptive flexfield)

What is the difference between data conversion and data migration?

Data Migration is upgrading from one version to another version fro e.g. from 11.5.9 to 11.5.10.. Data Conversion is receiving data from a legacy system or receiving data from another module ( e.g. PA), validating it and converting it to ur our the target module using the standard import program.

What is the difference between Organization_id and Org_id ?

OrgId: Org Id is an unique ID for the Operating Unit.Organisation Id: The Organisation Id is an ID for the Inventory Organisation which is under an Operating Unit.

What are _ALL tables in Oracle Apps?

_all tables will store information about multiple oraganizations. these table contain ORG_ID column that  picks particular organizations from multiple organizations. _all tables will be created when we install multiorg.

What is one full life cycle implementation?

Full Life Cycle means implementing a project from the begining to the production and maintenance stage.

(1) System Planning:

(Scope & Budget of the Project)

(2) Business Analysis:

(Business Requirements, Mapping & GAP Analysis)

(3) System Analysis & Design

(Design Conceptual & Functional Data Models)

(4) System Development

(Programming & System/Integration/Validation Testing)

(5) System Implementation

(Data Conversions, Interfaces, Extensions,User Manuals & User Training)

(6) System Maintenance & Support

Thanks – Shivmohan Purohit

Oracle Applications – Interview Questions (All Modules)

Oracle Applications – Interview Questions (All Modules)

Question: What are the key benefits of forms personalization over custom.pll?
Answer: Multiple users can develop forms personalization at any given point in time.
It is fairly easy to enable and disable forms personalization.
–>A programmer is not required to do simple things such as hide/disable fields or buttons.
–>Provides more visibility on customizations to the screen.

Question: Tell me some limitations of forms personalization when compared to CUSTOM.pll?
–>Can’t create record group queries, hence can’t implement LOV Query changes.
–>Can’t make things interactive, i.e. can’t have a message box that gives multiple choices for example Proceed or Stop etc.

Question: How can you import invoices into Oracle Receivables?

You can either use AutoInvoice by populating tables RA_INTERFACE_LINES_ALL, RA_INTERFACE_DISTRIBUTIONS_ALL & RA_INTERFACE_SALESCREDITS_ALL.Alternately you may decide to use API ar_invoice_api_pub.create_single_invoice for Receivables Invoice Import.

Question: In OA Framework, once your application has been extended by substitutions, is it possible to revert back to remove those substitutions?

Answer: yes, by setting profile option “Disable Self-Service Personal%” to Yes, keeping in mind that all your personalizations will get disabled by this profile option. This profile is also very useful when debugging your OA Framework based application in the event of some error. By disabling the personalization via profile, you can isolate the error, i.e. is being caused by your extension/substitution code or by Oracle’s standard functionality.

Question: For a PL/SQL based concurrent program do you have to issue a commit at the end?

Answer: The concurrent program runs within its own new session. In APPS, the default database setting enforces a commit at the end of each session. Hence no explicit COMMIT is required.

Question: What is the difference between running Gather Stats and “Program – Optimizer[RGOPTM]” in Oracle General Ledger?

Answer: “Gather Stats” will simply gather the stats against existing tables, indexes etc. However Gather Stats does not create any new indexes. But “Program – Optimizer[RGOPTM]” can create indexes on GL_CODE_COMBINATIONS, provided accounting segment has the indexed flag enabled,

Question: How do you know if a specific Oracle patch has been applied in apps to your environment?

Answer: Use table ad_bugs, in which column bug_number is the patch number.

SELECT bug_number ,to_char(creation_date, ‘DD-MON-YYYY HH24:MI:SS’) dated

FROM apps.ad_bugs

WHERE bug_number = TRIM(‘&bug_number’) ;

Question: How to make concurrent program end with warning?

Answer: If the concurrent program is of type PL/SQL, you can assign a value of 1 to the “retcode” OUT Parameter. For a Java Concurrent program, use the code similar to below ReqCompletion lRC; //get handle on request completion object for reporting status IRC = pCpContext.getReqCompletion(); lRC.setCompletion(ReqCompletion.WARNING, “WARNING”);

Question: Which table is used to provide drill down from Oracle GL into sub-ledger?


Question: You have just created two concurrent programs namely “XX PO Prog1” & “XX PO Prog2”. Now you wish to create a menu for Concurrent Request submission such that only these two Concurrent Programs are visible from that Run Request menu. Please explain the steps to implement this?


a) Define a request group, lets say with name “XX_PO_PROGS”

b) Add these two concurrent programs to the request group “XX_PO_PROGS”

c) Define a new Form Function that is attached to Form “Run Reports”

d) In the parameter field of Form Function screen, enter REQUEST_GROUP_CODE=”XX_PO_PROGS” REQUEST_GROUP_APPL_SHORT_NAME=”XXPO” TITLE=”XXPO:XX_PO_PROGS” e) Attach this form function to the desired menu.

Question: Which responsibility do you need to extract Self Service Personalizations?
Answer:Functional Administrator

Question: Can you list any one single limitation of Forms Personalization feature that was delivered with 11.5.10
Answer:You can not implement interactive messages, i.e. a message will give multiple options for Response. The best you can get from Forms Personalization to do is popup up Message with OK option.

Question: This is a very tough one, almost impossible to answer, but yet I will ask. Which Form in Oracle Applications has most number of Form Functions?

Answer: “Run Reports”. And why not, the Form Function for this screen has a parameter to which we pass name of the “Request Group”, hence securing the list of Concurrent Programs that are visible in “Run Request” Form. Just so that you know, there are over 600 form functions for “Run Reports”

Question: How will you migrate Oracle General Ledger Currencies and Sets of Books Definitions from one environment to another without Keying? Will you use FNDLOAD?

Answer: FNDLOAD can not be used in the scenario. You can use migrator available in “Oracle iSetup” Responsibility

Question: How can an end-user be given control to run a script developed by a developer, given that an end user will never have access to apps password (and rightly so)?

Answer: This script can be attached to a Concurrent Program via a concurrent program executable. The user will then be given access to this Concurrent Program.

Question: But how will the end user or Oracle Apps make this script run every 10hours daily?

Answer: A concurrent program can be scheduled to run at desired intervals. The schedule is defined at the time of submission.

Question: What are the basic steps when defining a concurrent program?

Answer: Broadly speaking there are three steps when developing a concurrent program in Oracle Apps Step 1. Make Oracle Apps identify the executable Step 2. Provide a handle to the executable by means of defining a concurrent program Step 3. Make this concurrent program accesible to selected users via their responsibility.

thanks - shivmohan purohit

Oracle Applications – Technical Interview Questions

Hello Friends, Upon requests on some of my friends, i am posting few more generic oracle applications’ questions. hope this will give you overview of generic features. do share your feedback if these are good n useful.

what is a flexfield qualifier ?

Oracle Applications products use flexfield qualifiers to identify certain segments used for specific purposes. eg: segment named ‘Account’ is qualified as ‘Natural Account’so that it identifies Accounts, similarly a segment named ‘Company’ can be qualified as ‘Balancing Segment’, i.e, for these segment values B/S can be brought out in Accounting Flexfield in GL.

A flexfield is made of segments and oracle identifies if particular segment in the accounting flexfield is an account segment or a company segment, based on some predefined values called as flexfield qualifiers which are assigned to the segments to look meaningful for defining the accounting flexfield. Eg: Account segment uses Natural Account segment and the company segment uses Balancing segment are mandatory for defining the accounting flexfield. Other values are Cost center segment, Inter company segment, secondary tracking segment

What is the difference between configuration, conversion, and customization?

Conversion ,customization and configuration are part of an oracle implementation project they come in this order

1. configuration/set up

2. Customization

3. Conversion

Configuration is setting up customer specific requirement which generally exist in oracle apps customization is filling the gap between oracle apps and Customer requirement by developing some extension and solution design

Customization is relatively different thing, something that is not a part of oracle apps core product but the client requirement demands it we go for Customization. If the functionality demanded by the client exists in the application, it is to be configured according to his needs by taking some data, this is called configuration

Conversion is structural change of customer data in a form which is compatible with oracle database best of luck. Conversion is the process of mapping the tables from a legacy system to apps system. Sometimes conversions can be from one version to other

Where we can check the status of PO.

In po_headers_all authorization_status coloumn is their we can find through this coloumn

What is back order in OM

There are few reasons that a scheduled order could be Backordered during pick release process.

1. In-sufficient onhand

2. Order might be put as ‘Pick release hold’

3. If it’s a lot controlled item being involved then some of the factors will be checking at picking rule setup (like Lot- expiration date, etc) and tured to ‘Backordered’ incase the criteria does not meet.

Where we find the status of order information.

Order header status is in oe_order_headers_all table reference with flow_status_code column and order line status would be oe_order_lines_all table reference with flow_status_code column.

What are the tables of auto invoice?


For report i have to parameters those are from_date and to_date ,so to_date should be greater when compare to from_date ,if we are giving to_date is less then it must shows some error how we will make it.

While defining Parameters you can set range option(in concurrent prog parameters window). Select low for from_Date and high for to_Date.Then it will not allow for from_date > to_date.

How to find the custom directory in front end.

From Application Developer responsibility, navigate to Application –> Register. Query for the custom application name. The value in the field Basepath, is the OS system variable that stores the actual directory info.

What are the execution methods in oracle apps?

1. Host

2. Immediate

3. Java Stored Procedure

4. Java Concurrent Program

5. Multi Language Function

6. Oracle Reports

7. Request Set Stage Function

8. Pl/Sql Stored Procedure

9. Spawned

10. Sql*Lodar

11. Sql*Plus

12. Perl Concurrent Program

What are APIs

API stands for application program interface. Oracle has its own api facility to transfer data from a external source to oracle base table so api is an standard oracle tool to transfer data to oracle database. It is a very simple method and a person with no technical background also can use api. Example-uploading journal and budget data through API.

Thanks – plz share questions if you have more in this area. also share your comment/feedback. Shivmohan Purohit

SQL to determine what request groups and concurrent program

hello, a very useful small piece of sql, quite useful whilte troubleshootings.

What is the SQL to determine what request groups and concurrent program is assigned to?

select request_group_name from FND_REQUEST_GROUPS where REQUEST_GROUP_ID =(SELECT request_group_id

thanks – Shivmohan

Profile Option values for all levels using SQL*Plus.

How to list E-Business Suite Profile Option values for all levels using SQL*Plus.

Connect to the eBusiness Suite database using APPS schema name

select p.profile_option_name SHORT_NAME,

   n.user_profile_option_name NAME,

   to_char(v.last_update_date,‘DD-MON-RR’) “Last Updated”,


    10001, ‘Site’,

    10002, ‘Application’,

    10003, ‘Responsibility’,

    10004, ‘User’,

    10005, ‘Server’,

    10007, ‘SERVRESP’,

  ‘UnDef’) LEVEL_SET,


    ‘10001’, ,

          ‘10002’, app.application_short_name,

          ‘10003’, rsp.responsibility_key,

          ‘10005’, svr.node_name,


          ‘10004’, usr.user_name,

          ‘10007’, ‘Serv/resp’,

                ‘UnDef’) “CONTEXT”,

  v.profile_option_value VALUE

  from fnd_profile_options p,

     fnd_profile_option_values v,

     fnd_profile_options_tl n,

     fnd_user usr,

     fnd_application app,

     fnd_responsibility rsp,

     fnd_nodes svr,

     hr_operating_units org

  where p.profile_option_id = v.profile_option_id (+)

  and p.profile_option_name = n.profile_option_name

  and upper(n.user_profile_option_name) like upper(‘%&profile_name%’)

  and    usr.user_id (+) = v.level_value

  and    rsp.application_id (+) = v.level_value_application_id

  and    rsp.responsibility_id (+) = v.level_value

  and    app.application_id (+) = v.level_value

  and    svr.node_id (+) = v.level_value

  and    org.organization_id (+) = v.level_value

  order by short_name, level_set;


Thanks – Shivmohan Purohit