Creating Activity Guide navigation is challenging for two reasons:
- 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).
- 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!