Skip to Content

In this blog I will explain about the URL to Help Topic mechanism and how to use it properly.

Considering you are doing your testing on one portal (DEV) and want to move it to QA and later to production, you won’t need to manually edit the settings of every iView and change the URL for the help topic for the new server’s URL, in case that the help topic resides on that server (absolute URL).

The first, and perhaps the easiest solution for this, is to create and deploy an HTML static page resource – a simple Portal Application which does not contain any Portal Components or Services, but only consists of some static web resources which resides under a help folder.

After deploying it, (for example, an application named “MyHelpResources”), set the “URL to Help Topic” property to “/MyHelpResources/help/1.html” and the content of 1.html is added to the markup of the body of the opened help window.

Capture.PNG

With this approach you can address static content on the current server without using absolute URLs.

You can deploy the static help pages on any of your systems (development test and production) and there is no need to change the configuration of iViews between the systems if you are transporting the content between them.

Assuming you need to address a help page which is more sophisticated than static content, the HTML can redirect you by a script to a relative URL or just open a frame within the markup addressing the wanted relative URL.

The second approach uses the delegator mechanism.

When you set the “Show ‘Help’ Option” of an iView to true, it enables the help option in the iView tray resulting in launching the iView using the PRT help Mode.

If the component, which the iView is based on, has implemented the doHelp() function in the code, it will be invoked, otherwise, a delegator will be invoked.

What is a delegator?

A delegator is a different component which can be called by one component.

You can read more about it here:

https://help.sap.com/saphelp_nw73/helpdata/en/49/d6a9132190736fe10000000a42189b/content.htm

And also, you can read about it in my next blog which will have a link to once it’s published.

When a Portal Component, which is the basis for any iView, is launched in a certain mode, a set of fallbacks is being triggered to decide the rendering code that will actually be invoked.

If the component did not implemented the doHelp function in its code, a delegator component, either specific to the component, or a default delegator will be invoked.

If none of the above exist, then the default mode – doContent implementation of the component will be invoked.

By default there are several mode delegators that are provided with the SAP NetWeaver Portal.

In order to view those delegators, you can use the Portal Registry Browser component that can be launched using the following URL:

http://<HOST>:<PORT>/irj/servlet/prt/portal/prtroot/com.sap.portal.runtime.system.console.PortalRegistryBrowser

Then navigate to “runtime” -> “prt.modes”

The component which is registered as the default delegator for the help mode is com.sap.portal.runtime.system.hooks.SystemModes and its implementation of the doHelp method is what provides the actual functionality.

In the next blog, I will explain how to write your own default delegator which overrides the “SystemModes” delegator.

To report this post you need to login first.

1 Comment

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

  1. Simon Kemp

    Hi Erez Neiderman,

    Thanks for this blog, it is very timely for me as I am currently trying to set up a Help URL for an iView and I want to make the path relative (so I don’t have to change it when transporting). I created a portal component and used a relative URL in the iView parameter and it works. Now I want to pass a parameter to that page e.g. ?p1=v1 but as soon as I add the ? to the Help URL in the iView property the help link no longer works and just gives me the message “Sorry, no help available“.

    Can you shed any light on this? Do you why I don’t appear to be allowed to pass in a parameter to my static page?

    Looking forward to reading your next instalment too!

    Thanks,

    Simon

    (0) 

Leave a Reply