Showing posts with label Activity Guides. Show all posts
Showing posts with label Activity Guides. Show all posts

Tuesday, November 19, 2024

Generating Activity Guide URLs

Creating Activity Guide navigation is challenging for two reasons:

  1. Simple Fluid Activity Guides all use the same component. This means we can't use a simple content reference. To use security to show or hide an Activity Guide content reference, we must use the URL type of PeopleSoft Generic URL. We must type a PeopleSoft URL fragment rather than leverage the traditional Content Reference fields (menu, component, market).
  2. Activity Guides with Runtime Context require dynamically generated URLs. These Activity Guides cannot leverage simple content references.

My PeopleCode for launching Activity Guides with Runtime Context usually starts with a GenerateComponentPortalURL to generate the base Activity Guide framework URL and then a bit of URL concatenation to assemble the Runtime context attributes. Here is an App Class I put together to make this easier.



Here is how you would use it:

import JSM_URL_UTIL:ActivityGuideURL;   
   
Local JSM_URL_UTIL:ActivityGuideURL &urlBuilder = create JSM_URL_UTIL:ActivityGuideURL("JSM_AWE_AG");
Local string &url;

&urlBuilder.addContextItem(Field.EOAWPRCS_ID, "FacilityAccessRequest");
&urlBuilder.addContextItem(Field.DESCR, "Facility Access Request");

&url = &urlBuilder.generateFluidURL();

The addContextItem method takes a key/value pair, both of which are strings (they will become part of the URL string). Since context IDs (keys) are fields, then using Field.FIELDNAME syntax is preferred so Edit | Find Definition References will locate your field usage.

We added one more convenience method: generateGenericPeopleSoftFluidURL(). Use this method to help you craft a PeopleSoft Generic URL to a static Activity Guide. This is a one-time-use method you would call at design time to create that static URL fragment required by a Content Reference. If you have a simple, static Activity Guide with no context, then you may want to create a Content Reference. However, typing all of the parameters correctly can be a challenge. Use this helper method to generate the full Generic PeopleSoft URL for you. We invoke this method from a design-time App Engine, but you may want to create a page for it instead.

Are you interested in learning more about PeopleCode Application Classes? Check out our two-day course available live virtual or on-demand!

Wednesday, May 08, 2019

Launching into the middle of a Fluid Navigation Collection

One of the greatest challenges to a successful Fluid deployment is Classic navigation and one of the most common solutions to this challenge is the Tile Wizard-based Navigation Collection. Tile Wizard-based navigation collections allow us to build business process-based navigation for our back-office users (back-office pages are primarily Classic). Let's say you have built some amazing Navigation Collections for your back-office users and now you want to drill from one collection or page to a specific target page in another Navigation Collection. You know you can easily craft a URL to a Tile Wizard Navigation Collection, but can you load a specific target component from that Navigation Collection? This is a great question that my PeopleTools Fluid course students ask me often. The answer is Yes!

When using the Tile Wizard to publish a Navigation Collection, PeopleTools uses a special Activity Guide template to display the Navigation Collection. This means that every Tile Wizard-based Navigation Collection is viewed as an Activity Guide. Each link is considered a step in the Activity Guide. Fluid Activity Guide steps have an id attribute called ptgpid. Once we find the ptgpid of a step, we can use that ID in a URL. When the Activity Guide is a Navigation Collection, the step ID is the Navigation Collection CREF Link ID. Note: this is not the base CREF ID, but the CREF link that was created by the Navigation Collection utility. If we inspect the HTML for a Navigation Collection, we can find the ptgpid in the HTML. Alternatively, we can find it in the portal registry under Portal Objects > Navigation Collections. Here is an example from the HTML:

To launch the highlighted item, copy the ptgpid and add the following to the end of the URL:

&ptgpid=<the id goes here>

For example, in the Portal Navigation Collection that is part of the PeopleSoft Developer homepage, appending the following to the URL will navigate directly to the Find Object Navigation item:

&ptgpid=HC_S201604180146095689166800

At jsmpros we believe that navigation is a critical component of a successful Fluid implementation, which is why we devote the first day of our Fluid 1 course to Fluid navigation. To learn more or to schedule a course, visit us online at jsmpros.com.

Wednesday, March 13, 2019

Do I have to use the Navigator?

Navigator exposed from the NavBar
I have seen several very clever Navbar customizations including:
  • Auto-expand the Navigator when expanding the Navbar and
  • Showing the breadcrumb path in the Navigator.
These customizations seem quite valuable to anyone that uses the Navigator. And who doesn't use the Navigator? It is the primary delivered navigation method for Classic content. But are we really supposed to depend on the Navigator? If so, should these customizations be incorporated into the product? Or are we missing the point of Fluid navigation? Does Fluid provide an alternative?

Let's start with a review of Self-Service. With a complete Self-Service Fluid rollout, do you need to use the Navigator to launch any Self-Service functionality? No. Every Self-Service transaction is available from a tile. Consider Personal Details. When an HCM Self-Service user launches Personal Details from a tile, PeopleSoft opens a WorkCenter-like experience, allowing the user to navigate through the Personal Details components using a left-hand sidebar. Again, did we need the Navigator for any of this functionality? No. But that was Fluid. What about Classic? In PeopleSoft HCM PUM 29 there are 400+ Fluid components and nearly 7,000 Classic components. How would you navigate to those 7,000 Classic components without the Navigator? Classic components predate Fluid and therefore aren't represented by tiles. Imagine if they were? How many homepages would you need to house 7,000 tiles? How many tiles would you have per homepage? Too many! So we use the navigator... but wait!

Let's review the list of Fluid navigation options:

  • Homepages
  • Tiles
  • Navigation Collections (published as tiles)
  • Related Actions
  • Activity Guides (Fluid, optimized as well as HCM ESS Activity Guides with categories)
  • WorkCenters (Enterprise Components Fluid WorkCenters or Classic WorkCenters)
  • Master/Detail
  • Side page 1
  • Two-panel layout

Many of these options are configurable and do not require Application Designer (Developer not required).

Fluid WorkCenter (Master/Detail) with Classic+ Components

Here is how I believe Fluid navigation should work. Keep in mind that Fluid navigation spans both Classic and Fluid components. Fluid navigation is not just for Fluid Components.


      Role-based homepage with business process-based tiles
    1. Homepages should be role based. My homepage collection should depend on the hats I wear in my organization.
    2. Within each homepage, I should have business process-based tiles. These tiles should launch WorkCenter-like Navigation Collections, Activity Guides, and so on. For example, if I am a PeopleSoft developer, then I should see a tile for managing security. When launched, that security tile will display a left-hand panel for navigating within the Security business process. If I manage payroll, then I might expect to find a tile labeled "Payroll WorkCenter USA" that includes navigation for all of the components associated with the Payroll business process. Remember, the items in the left-hand sidebar of a Navigation Collection or WorkCenter may be a combination of Classic, Classic +, and Fluid.
    3. From certain transaction pages, I should see Related Actions that allow me to drill from one transaction to a related transaction.
    Related Actions that drill from one component to another
    Done right, 95+% of my work will launch from tiles. The Navigator becomes my safety net. I reach for the Navigator once a year or every few years to complete some obscure configuration task reserved for implementation.


    What about the Navbar? We often think of the Navbar as an intermediate step used to launch the Navigator, but the Navbar is a homepage of tiles. Instead of a container for the Navigator, the Navbar is an always-present homepage with tiles I can launch from anywhere in PeopleSoft. Let's say you work in Procurement and often answer questions about Purchase Orders. You have your regular buyer and procurement duties, but you must be ready at a moment's notice to answer a question or solve a problem. To prepare for the inevitable interruption, you add your most common inquiry business process tiles to the Navbar. You are now two-clicks from the answer to any question.

    Now I ask you, "if you never use the Navigator, do you still desire a customization to automatically expand the Navigator when opening the Navbar?" I think not.

    How did we get here? I believe we are in an intermediate navigational state. Classic used breadcrumbs. Fluid uses business processes. I believe the problem is that our Classic content was moved into the Fluid navigation paradigm (PeopleTools 8.55) without usable business process maps (Navigation Collections, WorkCenters, and so on). We, therefore, must build our own business process maps using Fluid navigation tools to align Classic content with Fluid navigation.

    Building navigation is a critical phase of any Fluid implementation. Get it wrong and you may find yourself rolling back Fluid in favor of Classic (no joke, I have seen this before). When implementing Fluid we often focus on Self-Service, and rightly so. Self-Service comprises the majority of our headcount. But often Self-Service users are a minority of our actual time spent using PeopleSoft. Oracle has done a great job of building Fluid navigation for Self-Service users. What's missing? Fluid navigation for Classic. Today that is our job. As developers and business analysts, we must build that missing business process based navigation for our back office users.

    We believe that navigation is a critical component to a successful Fluid implementation and that is why we devote the first day of our Fluid 1 course to Fluid navigation. To learn more or to schedule a course, visit us online at jsmpros.com.