Tuesday, January 11, 2022

Hiding Tiles

At a conference several years ago, a friend and I were discussing PeopleSoft Fluid. Fluid was new at the time, so my friend was sharing his vision for making Fluid better. One of his ideas was to dynamically hide tiles. For example, if an employee has an Onboarding event, show the onboarding tile. Likewise, if a student has holds or "To Do's," then show a tile. I thought this was a fantastic idea and came up with a few ways to make this happen. If you are using PeopleTools 8.54 through 8.58, here are some options:

  • Use Dynamic Role Rules to add/remove a role that grants access to the target tile. This is the easiest approach and the most adopted method for dynamic access to tiles. For this to work properly, a tile should be marked as required.
  • Use Event Mapping to hide a tile. The PeopleSoft tile homepage is a cleverly formatted Fluid DIV Grid. Each tile represents one row in a grid. Through PageActivate Event Mapping, we can selectively show or hide rows by setting a row's Visible property. As you iterate over the list of rows, evaluate criteria and set the row's visbility accordingly.

What about 8.59? Why did I recommend these strategies for 8.58 and earlier and not 8.59? There is a new PeopleTools 8.59 feature that lets you configure a tile's visibility. Tammy Boyles from Oracle Product Management shared about how HCM uses this new feature last month. Here are the steps:

  1. Create an App Class that extends PTGP_APPCLASS_TILE:API:TileAppFilter.
  2. Put your conditional logic in the IsTileVisible method, returning True to show or False to hide.
  3. Add the content reference attribute TILEAPPFILTER to your tile's content reference.
  4. Open the appropriate homepage content reference and mark the tile as required.

Once you configure a TILEAPPFILTER attribute, the tile will no longer show in the "Personalize Homepage" list of available tiles, so users may no longer add or remove this tile. Therefore, a tile that has a TILEAPPFILTER attribute must be marked as required.

Do you want to see an example? Join us on November 18th, 2021 for Configuration Day 2021 to see this and many other new 8.59 features in action.

At JSMpros, we teach PeopleTools topics like this every week. In fact, this specific topic is part of our continuously updated Configure, Don't Customize course. Be sure to check out our website for more information about this and many other PeopleTools topics.

2 comments:

thespinningdaisy said...

Hi Jim,

We're on 8.57 implementing fluid eProcurement Requisitions. In order to view existing requisitions, a user goes to the My Requisitions component/tile and after selecting a requisition to look at, gets transferred to the Create Requisition component (which also has its own tile) - essentially My Requisitions functions as a search page only.

We have users with read-only access to requisitions, so they need access to the Create Requisition component for details, but we want to hide the tile from them and force them to enter through My Requisitions.

I created an event mapping app class that looks at their roles and should hide the tile if appropriate. I also created the service definition, but I can't figure out how to map the service definition to PT_LANDINGPAGE. Thoughts?

Thanks,
Rebecca

Jim Marion said...

@Rebecca, the item you want to map to in Event Mapping is Fluid Structure and Content | Fluid PeopleTools | Fluid PeopleTools Framework | Fluid Homepage. In 8.59, you have to use Elastic Search to find that item.