Classic UI for Administrative Users

A common desire among organizations that adopt the Fluid user interface (UI) is the ability to keep the Classic UI for administrative users. The loudest argument backing the need for the Classic UI for admins is that the Fluid UI does not have breadcrumbs. The response to this argument is that the adoption of Fluid is more than just mobile-enabling the application, but it also entails leveraging the new Fluid navigation paradigm which means using homepages, tiles, navigation collections, search, etc., to give users an avenue to perform the transactions that they need to perform.  A proper adoption of the Fluid UI means leveraging these tools to “create your own navigation” for not only self-service users, but admin users as well.  While I don’t necessarily have a dog in this fight, I would like to provide a proof-of-concept example on how one can go about keeping administrative users Classic in a Fluid environment.

This solution is going to involve a couple of pieces: Role-Based Branding, and Event Mapping. The Role-Based Branding is going to be used to conditionally assign a Classic branding theme for users based on their PeopleSoft roles. The Event Mapping piece is to redirect admin users from the Fluid homepage to the Classic homepage. To get a rundown of each of these functionalities, then I suggest reading Sasank’s Role Based Theme Assignment/Override post as well as his Event Mapping Framework Introduction post.

First, we can tackle the Event Mapping piece of this solution. This will entail writing a simple piece of Application Class PeopleCode to redirect admin users to the Classic homepage.

Redirect_Code

import PT_RCF:ServiceInterface;

class ClassicHomeAdmin implements PT_RCF:ServiceInterface
 method execute();
end-class;

method execute
 /+ Extends/implements PT_RCF:ServiceInterface.execute +/
 /* Take admin users to classic home */
 If IsUserInRole("PAPP_SYSTEM_ADMIN") Then
 Local string &cUrl = GenerateScriptContentURL(%Portal, %Node, Record.WEBLIB_PTBR, Field.ISCRIPT1, "FieldFormula", "IScript_StartPage");
 %Response.RedirectURL(&cUrl | "?HPTYPE=C");
 End-If;
end-method;

This code checks if the user has an admin-type role using the isUserInRole function and then redirects the user to the start page IScript. The URL parameter HPTYPE with the value of “C” will tell the start page IScript to load the Classic homepage for the user. This code will need to be mapped to the Fluid Homepage component (PT_LANDINGPAGE) using Event Mapping. Note: I am using the PAPP_SYSTEM_ADMIN role to signify an admin user.  You can use any role name(s) that you want to signify admin users in your system. Be sure to keep track of the role names that you are using here because you will need to reference them later.

To use Event Mapping to map the Application Class PeopleCode, then a Related Content Service definition must be created. Head over to the Define Related Content Service page and add a new Service by providing an arbitrary Service ID.

New_Related_Content

Populate the required fields and be sure to select Application Class for the URL Type field and input the reference to the Package, Path, and Class Name to the Application Class PeopleCode that was written in the previous step.

Related_Content_Defn

Now navigate to the Manage Related Content Service page, click on the Event Mapping tab, and select the “Map the event of the Application pages” link.

Event_Mapping

This will bring up a list of the Content References for the Portal. Be sure to check the “include hidden Crefs” checkbox and drill down to the “Fluid Home” Content Reference.  This should be found under: Fluid Structure Content > Fluid Pages > PeopleSoft Applications > Fluid Home.

Fluid_Home_CREF

Clicking the Fluid Home link will bring up the page to map a Related Content Service to the component level events of the Fluid Homepage (PT_LANDINGPAGE component).  We are going to want to select Pre Build for the Event Name, the newly created Service ID for the Service ID, and Pre Process for the Processing Sequence.  Save the Component.

Map_Event

At this point if an admin user (a user with the PAPP_SYSTEM_ADMIN role) logs in or clicks the home button, then they will be taken to the Classic homepage.

Classic_Home

However, the admin user still does not have access to the Classic style theme that has the drop-down, breadcrumb navigation. We can use the User Attribute Based Theme Assignments in the Branding Framework to enable a Classic theme for admin users.

Head over to the Assign Themes page to assign a theme for the Portal that you are logged in on. On this page, there is a section where we can override the default theme that is applied to the Portal for a given role-based audience.

Classic_Theme

Since I want a Classic theme to show for admin users, I will specify a theme assignment for the role name PAPP_SYSTEM_ADMIN.   You will want to specify the same role name(s) that you are using to identify admin users in the redirection PeopleCode. For this assignment, I specified the Classic style theme named DEFAULT_THEME_TANGERINE, but you can specify any Classic theme that you want.  You will also want to ensure that the value you specify for the Priority # field for the assignment is set so that it is the highest priority, unless you want other theme assignment to take precedence.

Theme_Assignment

A browser cache clear and web server restart/cache clear might be needed for these changes to work. Now when an admin logs in or clicks the home link, they are presented with the Classic homepage with the drop-down, breadcrumb navigation. The breadcrumb navigation header will stay with the admin user as they navigate around the system.

Classic_Theme_Home

This is all of the setup that is needed to enable admin users to use the Classic UI in a Fluid environment.

It is worth mentioning that the choice of implementing this sort of solution will most likely bear support implications as it goes against Oracle’s intended usage of the application. Organizations that want to adopt Fluid need to first consider how the delivered Fluid navigation techniques can be leveraged to support all of the navigation use cases before resorting to a custom solution.

Comments

Colton Fischer

Thanks Sasank! I really like how Fluid has enabled major application elements to be component-based. This allows for us to use the event mapping hooks to achieve nice bolt on functionality.

Mamuka Khantadze

Hi. I have a feeling that the answer to my question below will most likely be ‘YES’ but I’ll ask it anyway: Can the same approach be taken to implement reverse functionality that disable the fluid for everyone but enable only for specific role? Basically, what I’m trying to accomplish is to roll out fluid in phases to select few users only. After those users have been trained and are ready to adopt the fluid UI, they’ll be added to the role ‘Fluid_User’ and from thereon they’ll use fluid UI while rest will still be on classic.

We have set the default option for HPPC to Classic and defined our Branding System Options>Default Branding Theme to Default_Theme_Swan, Theme Style Type to Swan (PT8.52 default), Default Style Sheet Name to PSSTYLEDEF_SWAN and idea would be to override these to fluid for ‘Fluid_User’ role members.

I wonder what would be fluid value of The URL parameter HPTYPE instead of the value of “C”. Is it “F”?

Colton Fischer

For the most part, I believe your proposed use case will work. The only problem is that if you set the HPPC PeopleTools Personalization Option to Classic, then you lose the ability to use Event Mapping to inject the redirection code into PT_LANDINGPAGE Component. If you set the HPPC value to Classic, then when any user clicks the Home link I believe they will be taken to the Classic Homepage (Something Like …/EMPLOYEE/HRMS/h/?tab=DEFAULT). I am not sure how you would be able to conditionally redirect a Fluid user to the Fluid Homepage at that point.

Instead, I would recommend setting the HPPC value to Fluid and then using the demonstrated Event Mapping technique to redirect the Classic users to the Classic Homepage. This may not be desirable if the majority of users are “Classic Users”, but it should work nonetheless. Also, you are correct in that the HPTYPE URL parameter would be “F” instead of “C” if you want to land someone on the Fluid Homepage instead of the Classic one.

Please let me know if you have any more questions and I will be happy to help you out.

Leave a comment

Your email address will not be published. Required fields are marked *

Loading...