Wednesday, April 15, 2020

Fluid Navigation Collection Tile Parameters

The Fluid navigation paradigm starts with role-based homepages and usually finishes with business process-based tiles. And, the most common way to build a business process-based tile is with a Navigation Collection published through Tile Wizard. Now I'm going to ask a question with an obvious answer. OK, so here goes, Do you build them in Dev, Test, or Production? And, I'm sure you answered, "Development, of course." Nicely done! What about migration? Here's the really cool thing: Navigation Collections are just portal registry structures, so we can migrate them just like any content reference: add them to a project. I've seen several comments and posts discussing this.

Now, perform a quick search for PTPPB_GROUPLET. Did you find anything interesting? Here, let me summarize: PTPPB_GROUPLET is an ADS used to migrate Tile Wizard metadata. Next question: Do you need to migrate Navigation Collection Tile Wizard metadata? There is a bit of debate around this one, but the real answer is: It depends. Many Tile Wizard data types depend on Tile Wizard metadata at runtime, but Navigation Collections do not. Tile Wizard is just a tool we use to create the Navigation Collection's content reference. A Navigation Collection Tile Wizard tile is actually processed through a special Activity Guide template, not through a Tile Wizard runtime. So to answer the question, no, you don't need to migrate Navigation Collection Tile Wizard metadata for a Navigation Collection Tile to work properly.

I'm going to ask you another question: Do you think you might want to use Tile Wizard to maintain your Navigation Collection tile? If yes, then you may want to think about migrating Navigation Collection Tiles through PTPPB_GROUPLET. Why? Most of us periodically copy Production over Dev. If we want our Dev resources to persist, we must migrate them to production. Otherwise, we'll lose the ability to maintain Tile Wizard metadata post copy. So no, you don't need to copy Navigation Collection Tile Wizard metadata for Navigation Collection tiles to work. But Yes, you should copy Tile Wizard metadata if you want to be able to maintain your Navigation Collections going forward.

OK, so maybe it is too late, and you now find yourself with Navigation Collection Tiles with no Tile Wizard metadata. Can you still maintain them? While reviewing CS PUM 16, I found myself in this exact situation. It appears that CS includes several Navigation Collection tiles in a "demo" category, but no Tile Wizard metadata. Fortunately, all Navigation Collection Tile metadata is stored with the content reference. All we have to do is manually update the content reference. Here is a list of the parameters, values, and descriptions of each. First, let's start with a sample content reference Portal URL:

c/NUI_FRAMEWORK.PT_AGSTARTPAGE_NUI.GBL?CONTEXTIDPARAMS=TEMPLATE_ID:PTPPNAVCOL&scname=ADMN_TILE_ADMINISTRATION&PanelCollapsible=Y&PTPPB_GROUPLET_ID=JSM_TILE_MAINT&CRefName=ADMN_NAVCOLL_1

This URL starts pretty normal, listing the Fluid Activity guide component as the starting point. Next, like any Activity Guide, we see the Activity Guide template ID. Everything after that is the domain of the Tile Wizard. Here is a list of URL attributes we can change to alter the behavior of our Navigation Collection tile:

TEMPLATE_ID
PTPPNAVCOL for "optimized" and PTPPNONOPT for "non-optimized"
scname
Navigation Collection ID (the real "name", a folder CREF ID)
PanelCollapsible
Y: Include the collapsible button beside the left panel.

The rest of the URL doesn't seem to matter.

Each week, you can find Jim Marion teaching a PeopleTools class somewhere on planet earth. Register for one of his upcoming classes at jsmpros.com.

12 comments:

Siddharth said...

Hi Jim,

I am currently, looking in a Fluid Workcenter issue. I would want to know your thoughts/suggestion on the same.

Issue: In a fluid workcenter (made via Configure Pagelets), on the landing page of the "My Work" section there is a custom grid. In the grid there is a hyperlink, under which PeopleCode command "Transfer" is used. Earlier, when the link was clicked it use to open the information in a New Tab. Now, post the upgrade - Its opening up in the same window.

The fluid component has the "Master/Child" relation.

Earlier Tools Version: PT 8.57.05
Upgraded Tools Version: PT 8.57.13

So, I think it could be a Tools issue? But, any suggestions or work around.

Regards,
Sidd

Jim Marion said...

@Sidd, that is a very different issue. You are right, all "WorkCenters" use Master/Detail. I have to think about the New Window vs same window issue though. It seems the same window functionality would be more correct.

Siddharth said...

Hi Jim.

Thank You for your response.

I tried to resolve the issue using the "GenerateComponentPortalURL" and "ViewContentURL" combination.

But, now - it seems by using this approach the Workcenter looses the context of the page and workcenter fails to operate.

What amazes me is how a simple thing can break the complete Workcenter functionality?

Do you think of any other idea which I can use for this?

A side note, I am a subscriber to your YouTube channel and find your videos as interesting and informative as your blogs have been for years. I really liked the "Spartan Coding" example which you had shared - I never new "Marie Kondo principle" of tidying up can be coding too. :)

Regards,
Sidd

Jim Marion said...

Hi Sidd,

I see what you are saying. That is correct. Just launching the content URL will move you out of the Navigation Collection/WorkCenter. WorkCenters are built on the Master/Detail framework, so you have to view it in that context. Unfortunately, I don't know of a good way to generate a link to a specific item in a WorkCenter.

Jim Marion said...

@Sidd, thank you for the compliments!

Rajani Day said...

Very helpful - thank you so much. What are the content reference attributes when you are using an app class to display dynamic tile content? I would like to bypass Tile Wizard and create the content references directly if possible so I can tie the app class code to a content reference that points to a Generic URL. When viewing delivered content references that use app classes I see the dynamic tile content area on the content reference shows a page created for this purpose. When using Tile Wizard I don't need to create a page so this is confusing. Any help is appreciated - thanks again for creating useful content!

Jim Marion said...

@Rajani, great question, but I don't think it is possible because the App Class data type uses the Tile Wizard runtime and Tile Wizard metadata to generate the face of the tile. In other words, the App Class isn't in the content reference, it is in the Tile Wizard metadata. You bring up a good point, though. It would have been cool if Tile Wizard used CREF attributes instead.

Ruby said...

hi,
I need one help on navigation collection and tile wizard.
I am trying to access a page of a HRMS through interaction hub(peopletool 8.58) using navigation collection and tile wizard.

if I login in CFR in interaction hub and access the HRMS link, the page is shown in CFR as expected.I want to show the page in English even if the user logged in CFR.

is it possible?

Jim Marion said...

This is going to be challenginge. Have you looked at the SetLanguage PeopleCode function?

Soham said...

Hi Jim,

Thank you for blogging and sharing your development tips! Is there any way to display a warning message upon clicking a navigation collection tile and not open the target content until the user has dismissed the warning message by clicking the OK button. The tile is on the ESS home page.

Thanks,
Soham

Jim Marion said...

@Soham, great question! There isn't a setting for this, but it is definitely possible. One way, I believe the simplest way, would be to have the tile target a warning message component/iscript, etc. You would then redirect to the real target after dismissing the warning. If this is a one-time, save the result and always redirect thereafter. Another way is to use component PreBuild to redirect, and then back when certain conditions are met.

Soham said...

Thanks Jim for your response. I will give it a try.