Wednesday, August 16, 2017

Diving Into Deep Links

I had another one of those eye-opening customer experiences recently.  I was engaged in a web conference with an Oracle customer discussing some UX extensibility features that come out of the box with HCM Cloud Applications.  During the conference, we got into a brief demonstration that included utilization of some deep links. Went over pretty well, people got excited, we had a rousing exchange on the benefits of deep linking and I was feeling pretty good about where we were going. right up to the end of the session, which was reserved for Q&A.  That’s when somebody asked “Could we revisit deep links for a minute?  Help me understand what a deep link is and how it works.”  

Popped my little balloon of pride in a job well done right away…I’d demonstrated nifty features without explaining the basics.  I suspect this happens in a great many demos, where people smile and nod about things they don’t understand - and are often afraid to ask about (kudos on this point to the person who asked the question during my demo) - while the demo speeds on through the script.  Yeah, really...happens more often that one would expect.  It pays to take time with the fundamentals.  So back to my specific experience, let’s eliminate any lack of knowledge about deep links by going through a layman’s explanation right here.

Within the context of enterprise applications, a deep link is a URL that opens and directs a user to a specific point in an application other than the application’s home page.  The general idea is to reduce the number of mouse clicks needed to perform a task that requires functionality found in another application or location.  Fewer clicks = greater ease of use = user does what you want them to do more quickly and/or more often.  So, if I wanted to look up information about deep linking on Wikipedia, rather than linking to a home page (http://en.wikipedia.org) and searching for information on deep links, I would link directly to the page discussing deep links (https://en.wikipedia.org/wiki/Deep_linking).

In Oracle HCM Cloud, the deep links are a bit more complicated only because each link includes more information.  But the same concept still applies.  For example, if you were on the Person Management screen the link that would show in your browser would like something like this: 

https:///hcmCore/faces/FndOverview?fnd=%3B%3B%3B%3Bfalse%3B256%3B%3B%3B&fndGlobalItemNodeId=itemNode_workforce_management__person_management&_adf.no-new-window-redirect=true&_adf.ctrlstate=1b532wjs56_5&_afrLoop=6435279788503&_afrWindowMode=2&_afrWindowId=xkhwjhcv9#

Yeah, I know what you’re thinking right now…”good grief, that’s a load of technical gobbledygook that I don’t want to deal with.  Forget this!”  But just hang with me for a minute while we quickly break this mess down.  

First, we care about the base URL:  https:///hcmCore/faces/FndOverview? This essentially calls out the hierarchy or scheme for the application.  

Next we care about the parameter:  fndGlobalItemNodeID.  This essentially indicates that the link should include a page id value.  

Just as you might expect, next we include the page id value:  itemNode_workforce_management_person_management.  

All the remaining hooey you see in the original link is session data that will be automatically generated once the user has authenticated…so we don’t need it for our deep link.  

So, combining our base URL with our parameter and our parameter value, we come up with the following bookmarkable URL to Person Management:  https:///hcmCore/faces/FndOverview?fndGlobalItemNodeID=itemNode_workforce_management_person_management.  

Ta da!  There’s our deep link (note that a user who has yet to log in will be redirected to an authentication screen aka login screen).

So now you know the details of how a deep link works and how to build one manually.  But wait…there’s more!  One of the Simplified UI Extensibility tools that comes with Oracle HCM Cloud Applications provides a point-and-clink method of creating deep links.  You can follow this deep link to learn about that.

No comments: