What are Profile Options in Oracle Apps ?
|This article is under edit. Real life like examples and screenshots remain to be added.|
Profile Options provide flexibility to Oracle Apps. They are a key component of Oracle Applications, hence these much be understood clearly. I will be taking multiple examples here to explain what profile options mean. I will also try to explain by stepping into Oracle shoes "How will you design a program that is flexible".
Following that, if you still have questions regarding profile options, then leave a comment and I promise to respond. For a learner of Oracle Apps, this step is a must and not be skipped.
What is profile option?
The profile option acts like a Global Variable in Oracle.
Why does Oracle provide profile options?
These are provided to keep the application flexible. The business rules in different countries and
different companies can be different. Hence, the profile options are delivered by Oracle in such a manner to avoid hardcoding of logic, and to let the implementation team at site decide the values of those variables.
Give me some scenarios where profile options are used by Oracle
1. There are profile options which can turn the debugging on. Say one out of 1000 user reports a problem, and hence you wish to enable debugging against that specific user. In this case you can Turn On the debugging profile option "Again that user".
2. There are profile options that control which user can give discount to their customers at the time of data entry. You can set profile option "Discount Allowed" to a value of either Yes or No against each Order Entry user.
3. Lets assume an Organization has department D1 and D2. Managers of both the Departments have "HRMS Employee View" responsibility. But you do not want Manager of D2 to be able to see the list of Employees in Organization D1. Hence you can set a profile option against the username of each of these users. The value assigned to such profile option will be "Name of the Organization" for which they can see the employees.
Lets take a example. Lets assume you are a developer in Oracle Corporation building a screen in ERP. Let us say you are developing an Order Entry screen.
The requirements are:-
1. Screen should be flexible to ensure that different users can give upto different discounts. For example, a clerk Order Entry User can give no more than 5% discount. But Sales Manager can enter an Order with 15% discount.
2. There should not be any hardcoding regarding the maximum permissible discount.
3. In the screen there will be a discount field.
4. When the discount value is entered inn discount field, an error will be raised if user violates the maximum permissible discount.
Here is how Oracle will code this screen(link will be provided for screenshots)
1. They will define a profile option named "OEPASSI Maximum Discount Allowed".
2. The short name of this profile option is "OEPASSI_MAX_DISCOUNT"
2. In the when-validate-item of the discount field(assuming oracle forms), following code will be written
IF :oe_line_block.discount_value > fnd_profile.value('OEPASSI_MAX_DISCOUNT')
'You cant give discount more than '
|| fnd_profile.value('OEPASSI_MAX_DISCOUNT') || '%' ) ;
raise form_trigger_failure ;-- i mean raise error after showing message
END IF ;
Here is how, the client implementing Order Entry will configure their system.
Navigate to System administration and click on profile menu.
for Clerk User(JOHN), set value of profile "OEPASSI Maximum Discount Allowed" to 5
For Sales Manager User(SMITH), set value of profile "OEPASSI Maximum Discount Allowed" to 15