There are occasions when it is necessary or useful to serve static data files or data from a Netweaver system.

In the first example, our CRM Bobj team have developed an Adobe SWF report that requires <a href=””>crossdomain.xml file</a>. Now, when running a standalone Bobj server, this files gets stored under <tom-cat>\server\root, so that it’s accessible under the web server’s root directory, for example http://bobj.server.net:<port>/crossdomain.xml. We had to replicate this on the Netweaver CRM system. 

First, I needed to place the crossdomain.xml on the Netweaver CRM server. In my case I stored in the /usr/sap/<SID>/D*/igs/data directory (it’s a central instance).

/wp-content/uploads/2012/11/crossdomain_file_152260.jpg

To enable the Netyweaver system to serve this file, I needed to update the ICM parameters. I checked the existing parameters (transaction SMICM –> GoTo –> Parameters –> Display) to ensure that I wasn’t overwriting an existing parameter. In my case, there was already an icm/HTTP/file_access_0 parameter, so I knew I had to specify the next in sequence.

Using transaction RZ10, I updated the instance parameters, adding the following parameter

icm/HTTP/file_access_1 = PREFIX=/crossdomain.xml,DOCROOT=$(DIR_INSTANCE)/igs/data/crossdomain.xml

then returned to transaction SMICM to restart the ICM. Once the ICM was restarted, I could display the crossdomain.xml via my browser.

/wp-content/uploads/2012/11/crossdomain_browse_152264.jpg

In the second example, I’m building on the John Moy blog Embed an HTML landing page into your SAP GUI home screen. This builds on OSS Note 1387086 ‘HTML Viewer in SAP Easy Access Screen’ to let you embed an HTML landing page into the SAP GUI screen. One of the constraints is that if you can’t access the page from a browser on the same desktop as you are running SAP GUI, then it won’t display within the SAP GUI. When you consider that the Netweaver server you are connecting to with the SAP GUI is, by definition, accessible from the same desktop, then serving the web page from that Netweaver system becomes a good fit.

First load the html onto your server (as in the previous example, I stored mine in the /usr/sap/<SID>/D*/igs/data directory)

/wp-content/uploads/2012/11/sapgui_file_152265.jpg

Then define your page as being accessible via your netweaver server via RZ10 (exactly as in the first example)

icm/HTTP/file_access_2 = PREFIX=/sapgui.html,DOCROOT=$(DIR_INSTANCE)/igs/data/sapgui.html

icm/HTTP/file_access_3 = PREFIX=/page_bg.gif,DOCROOT=$(DIR_INSTANCE)/igs/data/page_bg.gif

Notice that I’ve also defined a gif, to be used as a background image for the page. Any images or references (including CSS or javascript) I make within sapgui.html must also be served via web servers. These may be somewhere else on the internet or your intranet, but if they are to be served by the Netweaver system, then they must be configured within the Netweaver system. For what it is worth, you could also use something that is defined in transaction SICF. In my case, I’m including a background image, and for the sake of the example, I’m serving it is as a static file from my Netweaver system, so I have to define as a static file as well.

BTW, see my warning about the sequence and numbering of the icm/HTTP/file_access parameters. Again, as soon as I restart the ICM (via transaction SMICM), I can access the web page via my Netweaver server. This means I can test my HTML before updating the table SSM_CUST.

/wp-content/uploads/2012/11/sapgui_browse_152266.jpg

Once I’m happy with it, I use the maintenance transaction SM30 to update table SSM_CUST, and create a new entry:

NAME = SESS_URL

VALUE=http://server.name.net:<port>/prefix.html

and we end up with a web page in our SAP GUI…

/wp-content/uploads/2012/11/sapgui_sapgui_152267.jpg

Amongst other things, the icm/HTTP/file_access parameter allows you to include Directory browsing (i.e. you can point at a directory of static content).  This means you don’t have to know in advance the names or number of static files you wish to serve. Of course, you don’t need to turn this on, which means you can restrict access to only those files that you specify an icm/HTTP/file_access entry for.

Warnings and Gotchas

❗ When experimenting with OSS Note 1387086, I have included some links in the html; By default, these attempt to open within the SAP Gui. You can get around this by including a target in the link.

❗ Regardless of your system settings, in windows at least, when using OSS Note 1387086, your HTML will be rendered using Internet Explorer

❗ Defining the icm/HTTP/file_access parameters in the incorrect order (i.e. icm/HTTP/file_access_2 before or without defining icm/HTTP/file_access_1) results in the ICM ignoring all icm/HTTP/file_access parameters from the first one out of sequence, so much so that they don’t even appear in the ICM parameters after restarting the ICM.

i.e. Valid sequence

icm/HTTP/file_access_1         = PREFIX=/crossdomain.xml,DOCROOT=/usr/sap/N2S/DVEBMGS00/igs/data/crossdomain.xml

icm/HTTP/file_access_2         = PREFIX=/sapgui.html,DOCROOT=/usr/sap/N2S/DVEBMGS00/igs/data/sapgui.html

icm/HTTP/file_access_3         = PREFIX=/page_bg.gif,DOCROOT=/usr/sap/N2S/DVEBMGS00/igs/data/page_bg.gif

versus Invalid sequence

icm/HTTP/file_access_2         = PREFIX=/sapgui.html,DOCROOT=/usr/sap/N2S/DVEBMGS00/igs/data/sapgui.html

icm/HTTP/file_access_3         = PREFIX=/page_bg.gif,DOCROOT=/usr/sap/N2S/DVEBMGS00/igs/data/page_bg.gif

Summary

There’s lots of amazing tools being released by SAP at the moment, but when it comes to ROI, don’t forget to have a good look at what your existing ABAP stack can do 😆

To report this post you need to login first.

3 Comments

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

Leave a Reply