This is the final post in the series Fusion Concepts. Profiles is the way to manage user preferences and system configuration parameters. This helps in customizing the behavior of the application based on profile values. Profiles can be set at different levels based on how a profile is defined. End user can manage his profile however, depending upon the profile definition all the profile options may not be visible to the end user and all the visible options may not be updatable.
From the application administrators perspective profiles can be managed based on their level. Similar profiles can be searched and managed by the administrator. Fusion Applications support following hierarchy for the profiles
- Site (Lowest Level): This means profile is applied to all the users for the application instance.
- Product: This level is intended for the product owning the code module user is accessing.
- User (Highest Level): An individual user identified by their current userId for the session.
A profile can be set at more than one level and in that case higher level profile overrides the lower level profile setting. As profile values are defaulted from lowest to highest level so most of the profile options are set at the SITE level by administrators. This becomes the default profile for all the end users until they override those values at USER level.
Following tables are involved in implementing Profiles (FND Profiles)
FND_PROFILE_OPTIONS_VL view is created on the top of FND_PROFILE_OPTIONS_B & FND_PROFILE_OPTIONS_TL and serves as a base profile table. FND_PROFILE_OPTION_VALUES is a child table containing the values corresponding to profile names in the FND_PROFILE_OPTIONS_B table. FND_PROFILE_LEVELS This table defines available level of profiles. FND_PROFILE_OPTION_LEVELS this is an intersection between profile levels and hierarchy. For each profile/level combination, it records weather the profile is enabled and updatable by admin at a level. FND_PROFILE_HIERARCHIES This table lists the recognized profile hierarchies. FND_PROFILE_HIERARCHY_LEVELS This table This table records the sequential arrangement of profile levels within a hierarchy. This table is referred to determine the previous level for defaulting values to current level.
Following code can be used to access profile values programatically:
fndDiagnostics = Profile.get("AFLOG_ENABLED");
A more detailed explanation can be referred from the Fusion Applications Developer guide here