What are Profile Options in Oracle Apps ?
|Profile Options provide flexibility to Oracle Apps. They are a key component of Oracle Applications, hence these much be understood properly. 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”, by using Profile Options.
Following that, if you still have questions regarding profile options, then leave a comment and I promise to respond. For the learners of Oracle Apps, understanding profile options is mandatory.
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 various countries and various companies can be different. Hence the profile options are delivered by Oracle in such a manner to avoid hard-coding of logic, and to let the implementation team at site decide the values of those variables. Enough definitions, give me some scenarios where profile options are used by Oracle…. 1. There are profile options which can turn the debugging on, to generate debug messages. Say one of 1000 users reports a problem, and hence you wish to enable debugging against just that specific user. In this case you can “Turn On” the debugging profile option “again that specific 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. Of course, the SQL in screen that displays list of employees will filter off the data based on “logged in users profile option value”. Let’s take an example. Let’s assume you are a developer in Oracle Corporation building a screen in ERP. Let us further assume that you are developing an Order Entry screen. Assume that business requirements for your development work is:- 1. Screen should be flexible to ensure that different users of the screen can give different levels of 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 hard-coding regarding the maximum permissible discount. 3. In the screen there will be a discount field. 4. When the discount value is entered in discount field, an error will be raised if user violates the maximum permissible discount. Here is how Oracle will code this screen 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’) THEN message( ‘You can’t 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 Oracle Order Entry will configure their system. 1. Navigate to System administration and click on system profile menu. 2. 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