Skip to Content

The SAP Portal creates the navigation for a user based on the assigned roles. In a standard installation of the portal the navigation is divided into the Top Level Navigation (TLN) and the Detailed Level Navigation. When a user accesses the portal the presented navigation is created based on the assigned roles, entry points, merge IDs and sub navigation. As an example TLN:

image

When the user navigates to “A – Sub 2” the URL of the portal (ex: /irj/portal) isn`t changing. The navigation occurs inside the portal.

    

 SAP Help: Navigation

In other portals or web pages the navigation triggers also a change in the browser`s URL. So how is the SAP Portal executing the navigation? When looking at the source code of the TLN iView, you`ll see the Javascript used:

 

 

 

gNavTree = new NavNode(“Top”, “Top”, 0, 0, 0, 0, ”,new NavNode(“navurl://6c6f82ee02a75195cce82eca6f0c2fb6“, “Role A 1st Level“, 0, “DefaultExternal”, 0, 0, “”,new NavNode(“navurl://8397ca2e7d7ed7076dcb81c7632072bf“, “A – Sub 1“, 0, “DefaultExternal”, 0, 0, “”),new NavNode(“navurl://f35c1c5d56eac512b17e856fd615614d“, “A – Sub 2“, 0, “DefaultExternal”, 0, 0, “”)));

    

 

For each human readable and shown link there is a corresponding navurl value. When you are using the Light Framework, you’ll have already seen this navurl. The portal always uses the navurl to navigate between navigation points. The portal uses a parameter called NavigationTarget to resolve the new navigation. In the normal framework this is hidden because the portal uses the EPCM to do the navigation. In the HTML code for A – Sub 1 this looks like:

 

image

The onclick=”doMouseClick(2,0;)” Javascript executes the navigation action. In the doMouseClick function we find EPCM Javascript for the navigation:

        EPCM.doNavigate(curNode.name,1, winFeatures, curNode.windowName);

 

When the user clicks on the link in the TLN, the portal triggers a Post request:

image

 

The browser submits the navigation target parameter (NavigationTarget = navurl://f35c1c5d56eac512b17e856fd615614d) in this POST request. The navigation target parameter consists of 2 parts:

  1. A keyword: navurl://
  2. A hash value: f35c1c5d56eac512b17e856fd615614d

The hash value determines the underlying role of the navigation target. To see and know all hash values go to:

System Administration -> Navigation -> Short URLs

image

 

For every PCD role you can find the corresponding Short URL. It is possible to filter for a specific short URL:

image

The Short URL is the shortened value for the real location in the PCD. This also means that instead of using the Short URL the original value it can also be used the PCD path:

http://www.sdn.sap.com/irj/portal?navigationtarget=roles%3a//portal_content/location/…/role_a_1st_level/a_sub_2

      SAP Help: Navigation

 

This will navigate us directly to A – Sub 2

image

You also can deactivate the use of the hash value navurl.

System Administration -> Navigation -> Short URLs

image

The TLN navigation is now not any longer using the navurl://hash for the navigation. The above Javascript has changed:

 

 

 

gNavTree = new NavNode(“Top”, “Top”, 0, 0, 0, 0, ”,new NavNode(“ROLES://portal_content/location/… /role_a_1st_level“, “Role A 1st Level”, 0, “DefaultExternal”, 0, 0, “”,new NavNode(“ROLES://portal_content/location/…/role_a_1st_level/a_sub_1“, “A – Sub 1”, 0, “DefaultExternal”, 0, 0, “”),new NavNode(“ROLES://portal_content/ location/…/role_a_1st_level/a_sub_2“, “A – Sub 2”, 0, “DefaultExternal”, 0, 0, “”)));

    

 

Now the navigation target gets calculated by the portal using the PCD path and not the shortend URL. It is ROLES://… and not anymore navurl://… If you are using merge IDs in your roles, this gives you an easy overview about what role from the PCD is really getting used as the navigation node. If the intended navigation point isn`t displayed, you`ll have to verify the merge ID and priority settings.When the user clicks on the navigation link, the browser no longer is submitting navurl as the navigation target parameter but the ROLE:

image

 

By default the portal will use the navurl as the standard navigation target. If you are encountering errors when creating a new navigation, you can deactivate the navurl and see if the portal is maybe using a wrong role.

To report this post you need to login first.

8 Comments

You must be Logged on to comment or reply to a post.

  1. Deepak Salokhe
    hi

    it is a nice blog and gives nice information about navigation.
    can you tell me the significance of the keyword used for navigation i.e. “navurl://” and why has it been replaced by “ROLES://” now?

    (0) 
    1. Tobias Hofmann Post author
      Hi,

      the paramter NavigationTarget is used to pass the navigation the user selected. Navurl is the Short URL of the Role (see the part: “For every PCD role you can find the corresponding Short URL”).

      When you are using the ROLES:// value, than it is because the usage of the Short URL is deactivated.

      br, Tobias

      (0) 
  2. Andrew Jabbitt
    Is it possible to selectively deactivate the hyperlinks in the detailed navigation tab?

    We want to be able to control when a particular link can be accessed; ie only allow BW reporting once BW is ‘deemed’ to be available.

    All and any ideas on how to do this in Portal much appreciated.

    Andrew

    (0) 
  3. jigar oza
    Hi Tobias,
    I have used Zoom level navigation forcertain role. Now when user logs into portal and from detail navigation they click on the link of Zoom Navigation, it open properly with its corresponding desktop and themes.
    Now i have created one anonymous page in which i have provided link for this zoom navigation, when user click on this link they are asked for user id and password. Now the desktop opens up properly but it does not show its corresponding themes. But now if refresh this screen it will take its theme.
    Do you have any idea why does theme does not take place in these manner of navigation, it works properly.. it is also displaying desktop properly but does not take theme
    (0) 
    1. Diego Valencia

      Hi Jigar,

      can you please tell me how to navigate to a zoom navigation link ?
      Do you use EPCM.doNavigate ? what are the parameters to call it?

      Regards
      Diego

      (0) 

Leave a Reply