1 5 6 7 8 9 33 Previous Next

SAP Enterprise Portal

491 Posts



In this blog you can find 2 topics:


  1. Adding response headers to the response coming back from EP server.
  2. Modifying the HTML head section (or any other section in html) of the HTML response coming back from EP server.


1. Adding HTTP Response headers in Enterprise Portal

What is an HTTP Header (wikipedia):

HTTP header fields are components of the header section of request and response messages in the Hypertext Transfer Protocol (HTTP). They define the operating parameters of an HTTP transaction.

Sometimes there are cases where you would like to add headers to response. some example can be X-FRAME-OPTIONS for limiting framing or Cache-Control to control caching of the response, or  IE's X-UA-Compatible

Here is sample code of a portal component which adds adds an X-FRAME-OPTIONS response header to deny framing when called:


import javax.servlet.http.HttpServletResponse;
import com.sapportals.portal.prt.component.AbstractPortalComponent;
import com.sapportals.portal.prt.component.IPortalComponentContext;
import com.sapportals.portal.prt.component.IPortalComponentProfile;
import com.sapportals.portal.prt.component.IPortalComponentRequest;
import com.sapportals.portal.prt.component.IPortalComponentResponse;
public class MyHeaderComponent extends AbstractPortalComponent
    private static final String X_FRAME_OPTIONS = "X-Frame-Options"; //The response header key
    private static final String DENY = "DENY";  //The response header value
    public void doContent(IPortalComponentRequest request, IPortalComponentResponse response)
            HttpServletResponse servletResponse = request.getServletResponse(false); //gets the original servlet response
            if(servletResponse != null) {
               //adds the X-FRAME-OPTIONS Header
                servletResponse.addHeader(X_FRAME_OPTIONS, DENY);                    
                response.write("My Content cannot be displayed inside an iframe!!");

The actual magic is done in line 19.

The response of calling this portal component would be display just "My Content cannot be displayed in an iframe".

If you run it within IE inside an Iframe, you will get the following:




Notice the response header that was added : "x-frame-options" .



2. Modifing the HTML head and html sections of EP response:

Simple structure of an HTML page.

As you know, when working with portal components, Portal Runtime builds and creates an html response that will return to client (after going over all hooks).

It is possible to add additional html code(or remove) to the head or body sections and to change attributes of these sections.

At first we need to have access to the portal HTMLDocument which will allow us access to the html document sections:

/** Getting the PRT HtmlDocument object from the PortalComponentRequest. */
private HtmlDocument getHtmlDocument(IPortalComponentRequest request) {
     HtmlDocument htmlDocument = null;
     IPortalResponse portalResponse = (IPortalResponse) request.getValue(IPortalResponse.class.getName());
      if (portalResponse instanceof PortalHtmlResponse) {
           PortalHtmlResponse portalHtmlResponse = (PortalHtmlResponse) portalResponse;
           htmlDocument = portalHtmlResponse.getHtmlDocument();
     return htmlDocument;

Then in our doContent of portal component we can just add scripts to the head and play with the body:

public void doContent(IPortalComponentRequest request, IPortalComponentResponse response)
     HtmlDocument portalHtmlDoc = getHtmlDocument(request);
     Vector headHtmlElements = portalHtmlDoc.getHead().getHtmlElements();
     //writing head scripts and modifying body attribs
     headHtmlElements.add( new HtmlString( "<!-- This will appear in the head! --> " ));
     headHtmlElements.add( new HtmlString( "<script type=\"text/javascript\">alert('hello from header!') </script>" ));
     //setting css class of body
     portalHtmlDoc.getBody().setClass( "myCSSClass" );
     //setting body attributs
     portalHtmlDoc.getBody().addAttribute( "role", "application" );        
     response.write("inside body"); 

After we got the portal HTML Document, adding some html code inside the head section is done in line 7,8.

Setting class for the body section in line 11 and adding body attributes in line 14.

Finally we can still write inside the body in line 15.


Running this portal component will trigger our javascript alert and give us the following html output:



You can see a generic portal html response, but notice the additional changes we have added in our code:

  • 2 lines we wrote were added into the html head section (marked in read).
  • The body section now has role="application and class="myCSSClass" (marked in orange)


Inspect the getHead and getBody classes for more methods.

Try it out!


Best Regards,


Hi all,


I have discovered the Announcement of SAP Portal and HANA Cloud Portal Gamification Movie Challenge and decided to enter another movie review. The movie I have picked to review is:



As a new starter to SAP, it is important that I have a comfortable understand of the products and services that SAP offer it's customer base so as to increase my knowledge base.


My knowledge of SAP's services and products is growing all the time, and aided by watching movies such as the above has given me a greater understanding of the impact that SAP has in the running of customer businesses, with a strong focus on simplicity and mobility.


The movie gives a good overview of a customer's business from the initial stages, where everything was easier to handle with only a small number of documents and systems to manage, onto where the business grew into a larger entity and more complex with more demands and control need for the business to remain effective. This meant the business had to increase the number of tools it used to manage information, this is where the SAP NetWeaver Portal can help to manage the business operation and analytic data in one scale able environment.


The movie shows the customer confidence with information the SAP NetWeaver Portal's success:


        • Serving the market for over 10 years
        • Over 7000 customers
        • Customers of all sizes


The movies goes on to discuss how the customer's business is still expanding and how the business can be managed efficiently through the SAP NetWeaver Portal, with a focus on strong security given that you need users to be able to access the data from many different areas. The simplicity means even non technical users can modify and edit content, with the same ease of use outside than office as expected within.


Enterprise Workspaces offers a solution in a:

        • Self service
        • Mobile ready
        • Collaborative


With customers wanting to access more and more information on the move, the SAP NetWeaver Portal can be accessed on mobile devices, so anywhere the customer needs to gain access they have that ability!


The SAP NetWeaver Portal offers the right end to end solution to cater for customer needs.


Finally you can check out more movies on Announcement of SAP Portal and HANA Cloud Portal Gamification Movie Challenge.

Hi everyone!


After discovering of the Announcement of SAP Portal and HANA Cloud Portal Gamification Movie Challenge I decided to participate in the challenge. After watching several different videos on the SAP Portal - YouTube channel, I chose to review the following video:




The video is titled:  "SAP Netweaver Portal - mobile edition overview".

The reason I chose to review this video is that I have recently joined SAP, and so I am gradually trying to familiarize myself with SAP's products and services, in order to diversify my knowledge-base.


Initially, my knowledge of the functions of SAP Portal mobile edition was rather limited, and so I thought an overview video such as this one would be the perfect way for me to further my learning.


From the outset, I found this video to be simple yet highly effective in its delivery of information. At the beginning of the video, we are presented with the statement that SAP Portal Mobile Edition provides a "single point of access to business applications and content via a single point of access from multiple devices at any time". I felt that this statement instantly provided me with a basic understanding of the fundamental capabilities of SAP Portal Mobile Edition.


We learn that Netweaver Portal excels at creating multi-channel, elegant low TCO, corporate branded homepages that once built can be run anywhere. In turn, this level of portability has the ability to improve businesses by:

  • significantly boosting productivity
  • reducing costs


The video then moves on to present the viewer with a short overview of why one should consider using SAP Portal Mobile Edition. We are informed that it will

  1. Maximize the value of your investment in SAP software for mobile devices.
  2. Aggregate web and native applications (SAP or non-SAP, structured or non-structured) into a common mobile-entry point.

A short demo of these functions on a tablet device accompanies the presentation of this information to illustrate the simplicity of these functions.


The video concludes by presenting the viewer with a concise summary of the main functions of SAP Netweaver Portal Mobile Edition. Here we are reminded that with Mobile Edition, you can:

  • create role-based  multi-channel portals.
  • aggregate applications, documents and content.

Furthermore, the final piece of dialogue in the video reinforces the fact that the portals will be available:

  • to anyone
  • at any time
  • on multiple devices

Overall, I enjoyed taking the time to watch this video, as in my opinion, it clearly demonstrates each of the main functions of SAP Portal Mobile Edition without adding complexity, and thus it enables viewers to retain a basic comprehension of the functions available.


Thanks for taking the time to read my blog post.

Finally, don't forget to visit the Announcement of SAP Portal and HANA Cloud Portal Gamification Movie Challenge and share your views!

The latest release of SAP NetWeaver 7.4 Support Package Stack 08 (and the corresponding release NW 7.31 SP13 and) contains the following features and changes in SAP Fiori launchpad running in SAP Enterprise Portal:


No Activation of Theme Designer Necessary Anymore


Previously, to allow SAP Fiori launchpad to run on the portal, administrators had to activate the UI Theme Designer (switch to LESS). This prerequisite is no longer relevant. Administrators only need to perform this switch if they want to customize a portal theme using the UI Theme Designer and then run SAP Fiori Launchpad on Portal using the customized theme. Checkout also note 2036827 - Enable FLP on EP to run also without LESS structure.


Personalization of Groups


Until the last release end users could not create or manage groups in the SAP Fiori launchpad. Starting from NetWeaver 7.4 SPS8 (and NetWeaver 7.31 SPS13), users can create and remove groups and arrange content/tiles in their home page according to a group personalization.


This image shows how a group can be created by an end user (click on image for better reading):



Here you see, how a tile is added to a group (click on image for better reading):




Run SAP Fioir Wave 2 Applications using New SAP Fiori iView Template

Starting with NetWeaver 7.4 SPS8  (and corresponding release NW 7.31 SPS13) you can run Fiori wave 2+ transactional applications using the new "SAP Fiori iView" template. These iViews can then be run as tiles in SAP Fiori launchpad on Portal or as standalone applications. By using this iView, you will be able to call a specific Fiori application running on an ABAP back-end system and run it within the portal framework.



  • Your Enterprise Portal version is:
    • 7.3 EHP 1 SPS13 and above
    • 7.4 SPS08 and above
  • Your back-end server has SAP Fiori launchpad SPS08 or above
  • You have made sure that both the portal server and the ABAP server can be reached via the same URL (including the server name). This can be achieved by using a SAP Web Dispatcher.

In this image you can see, how you select the SAP Fiori iView template in order to create an iView based on this template:


For a detailed description how to integrate SAP Fiori wave 2 applications into SAP Portal, read Ido Fishler's blog.

Watch also this video showing the configuration for the integration of SAP Fiori wave 2 apps into Enterprise Portal and how to run them on Fiori launchpad with SAP Enterprise Portal:



For lower versions of SAP Fiori, you must still create an SAP UI5 iView by copying the relevant application from the Portal Applications GPAL repository. For a more detailed description on how to integrate SAP Fiori wave 1 apps, read this blog by Irena Kull.


For more information, see:


  • SAP Help Documentation:

What is new in SAP Fiori launchpad?

SAP Fiori launchpad on Portal

Sometimes splash screen is not desired after click on portal logon. It is possible to show/hide splash screen in netweaver portal 7.3x using framework page configuration. Please check SAP KBA: 2035826 - Configuring the Splash Screen in the AJAX Framework Page of the Enterprise Portal


You can change the splash screen using the document: How to Customize your Ajax Framework Page with SAP NetWeaver Portal 7.30 .But there is no option to show/hide splash screen in netweaver portal 7.0x.


So you need to perform below steps to hide the splash screen after portal logon:


  1. Export the theme
    Exporting and Importing Themes - Portal - SAP Library
  2. Open the file from exported theme zip file:
  3. Remove the image  SplashScreen.png
  4. Save changes in zip file
  5. Import the theme again after above changes and select the option 'Overwrite existing theme'
  6. Clear the browser cache



In this short blog post, you can find sample code on how to read/save cookies in portal component java code or using javascript.


First we build a portal component that demonstrates both.

The main doContent method, calling both techniques:

package com.sap.portal.examples;
import javax.servlet.http.Cookie;
import com.sapportals.portal.prt.component.*;
import com.sapportals.portal.prt.resource.IResource;
public class WebCookie extends AbstractPortalComponent
     public void doContent(IPortalComponentRequest request, IPortalComponentResponse response)

1. First method, writing cookies in Javascript and then reading them:



private void handleCookiesByJS(IPortalComponentRequest request, IPortalComponentResponse response)
     //include the javascript source that holds the js method to store/read cookie
     IResource resource = request.getResource(IResource.SCRIPT,"scripts/cookiescript.js");
     response.include(request, resource);
     //launch a js method to write cookie
     //launch a js method to read cookie and print on screen
     response.write("Cookie reads = " + "<script>document.write(gettimes());</script>");

Above you can see javascript "cookiescript.js" is included in the response of the portal component. This js contains two methods write_cookie() and gettimes()

After which write_cookie() is called and eventually gettimes()  is called.


javascript code cookiescript.js:


The write_cookie() method  searches for a cookie named "Basic_Cookie" and adds 1 to the value of the cookie

Eventually the cookie actually stores the number of times this method was called:


var cookie_name = "Basic_Cookie"
function write_cookie() {
   var index =document.cookie? document.cookie.indexOf(cookie_name) : -1;
    if (index == -1){
     //creating new cookie which will expire in 2040
    document.cookie=cookie_name+"=1; expires=Wednesday, 01-Aug-2040 08:00:00 GMT";
     //cookie exists, read its value
    var countbegin = (document.cookie.indexOf("=", index) + 1);
    var countend = document.cookie.indexOf(";", index);
    if (countend == -1) {
      countend = document.cookie.length;
    var count = eval(document.cookie.substring(countbegin, countend)) + 1;
     //update the cookie
    document.cookie=cookie_name+"="+count+"; expires=Wednesday, 01-Aug-2040 08:00:00 GMT";

The gettimes()  method read value of the "Basic_Cookie" and returns number stored in it:


//this method reads the value of the cookie and return number stored in it.
function gettimes() {
     var count = 0;
     if(document.cookie) { 
          var index = document.cookie.indexOf(cookie_name);
         if (index != -1){
           var countbegin = (document.cookie.indexOf("=", index) + 1);
           var countend = document.cookie.indexOf(";", index);
           if (countend == -1){
             countend = document.cookie.length;
           count = document.cookie.substring(countbegin, countend);
     return (count + " times");



2. Second method, accessing cookie in portal component java code:


private void handleCookiesInJava(IPortalComponentRequest request, IPortalComponentResponse response)
    String val = getCookieValue(request,"MyCookie");
    response.write("Got cookie MyCookie with its value="+val); //first time it will be null, since the response is not written yet

Here the component calls a java method saveToCookie with key and value.

Then it reads the cookie value by calling getCookieValue method and prints it.


saveToCookie method:


cookie is searched in all cookie that came with request, then its deleted and a new cookie is created:


private void saveToCookie(IPortalComponentRequest request , IPortalComponentResponse response , String cookieName, String cookieValue)
     //getting all cookies from request
     Cookie [] cookies = request.getServletRequest().getCookies();
     if(cookies != null)
        for(int i = 0 ; i < cookies.length ; i++)
             Cookie cookie = cookies[i];
            //find the specific cookie and deletes it
             if(cookie != null && cookie.getName().equals(cookieName))
   //create a new cookie with new value and save it
   Cookie  cookie = new Cookie(cookieName , cookieValue);


getCookieValue method:


Cookie is searched and its value (or null if not found) is returned:


private String getCookieValue(IPortalComponentRequest request, String cookieName)
     //get all cookies from request
     Cookie [] cookies = request.getServletRequest().getCookies();
     if(cookies != null)
          for(int i = 0 ; i < cookies.length ; i++)
               Cookie cookie = cookies[i];
               //search for the cookie and get its value
               if(cookie != null && cookie.getName().equals(cookieName))
                    return cookie.getValue();
       return null;


After deploying this portal component, If we execute it  3 times, we will get the following output , from both techniques:


Cookie reads = 3 times

Got cookie MyCookie with its value=MyCookieValue







Related Links:


Important -  Security consideration using cookies









Mobile Edition


First Of all, I am really impressed with SAP portal mobile edition, its a great mobile experience, great mobile application gallery and its fully integrated with many mobile devices.

Its available via online, browser-based access, channels.


I liked the video too much because its very simple, and it shows the idea of SAP Mobile Portal in simple way and small points.

Also what is cool about the video is that its answer a very important questions "Why you have to use SAP portal mobile edition", it shows you the benefits of SAP portal on mobile as following:


-Maximize the value of your investment in SAP software for mobile devices

-Aggregate Web and native applications, SAP and non-SAP, structures and unstructured into a common mobile entry point

-Use a template-based workspace featuring predefined, mobile-ready  modules


According to SAP Enterprise Portal, mobile edition document, i just wanted to show the mobile homepage screenshot, which display the awesome view on mobile/tables which is shown in the video





Also i liked the video Summery

With SAP Portal Mobile edition you will be able to

- Create role-based multichannel portal

- Aggregate applications, documents and contents

- Available to anyone, at anytime, on multiple devices


Please all check "SAP Netweaver Portal - Mobile Edition" Overview video:



Please visit :Announcement of SAP Portal and HANA Cloud Portal Gamification Movie Challenge

We invite you to participate in the "Topic of the Week" campaign for SAP Fiori launchpad. A topic of the week is a selected topic about which you will get up-to-date information on SCN and our social media channels. You can listen to us and also discuss with us on SCN, Twitter, Facebook and LinkedIn on special days. Moreover we will also inform you about our focus topics for this year's SAP TechEd && d-code and make you aware what you can expect when you attend the event in Las Vegas or Berlin.

From September 17-18 we offer you "SAP Fiori Launchpad" as the topic of the week.

What are the highlights of SAP Fiori launchpad as the topic of the week and what can you expect?

ASUG Webinar on September 17

Participate in our ASUG webinar on SAP Fiori launchpad on September 17, and learn also what we plan for SAP TechEd && d-code this year.


Product Information

We will use our Social Media channels to give you up-to-date information on SAP Fiori launchpad in general and how it runs in SAP Enterprise Portal

You can access the following channels to follow the information flow and join the conversation:

  • Twitter: Get all kinds of information under hashtag #SAPFiori. You can read tweets also without having an own Twitter account.
  • Facebook: Get images, see videos, get some product insight and some technical overview information etc. You can read the content of our public Facebook page also without having an own Facebook account.
  • LinkedIn: Get more technical information.
  • and visit our SAP Enterprise Portal community on SCN where we also cover SAP Fiori launchpad

We also want your feedback: so we encourage you for interaction, discussion, commentary, questions, feedback.

  • Send your questions on Twitter to @Portal_SAP https://twitter.com/PORTAL_SAP and use hashtag #SAPFiori for your tweets
  • or simply add your feedback and questions as comments to this blog.


We are looking forward to meeting you this week at the webinar or on our social media channels.

Applying corporate design guidelines to your SAP Enterprise Portal is about to become much easier.

Are you familiar with the UI Theme Designer tool in SAP Enterprise Portal? If not, I’d like to expose you to an improved theming experience (compared to the Theme Editor you’re probably familiar with).


The UI Theme Designer is a browser-based tool that enables easy theme building by modifying one of the theme templates provided by SAP.



Why Use the UI Theme Designer?


By using the UI Theme Designer in the Portal, you can benefit from the following:

  • Increased theming efficiency (reduced theming effort for customizing portal and integrated applications).
  • Ease of use – simple and intuitive.
  • Reduced theming effort.

We achieve these benefits providing the following capabilities:

  • Graphical web-based WYSIWYG editor for controls as well as applications.
  • Different levels of theming:
    • Quick theming - Used for general theme settings affecting various SAP UI technologies.
    • Expert theming – Used for SAP UI technology-specific theme settings.
    • CSS - Manual theming based on LESS style sheet notations.
  • Built-in preview pages: Application previous and control overview pages.
  • Enabled for SAPUI5 and Unified Rendering.




The UI Theme Designer is available in SAP NetWeaver 7.3 SP10, 7.31 SP9 or 7.4 SP4 onwards.



Migrating Themes for Use with The UI Theme Designer

You can import portal themes for use with the UI Theme Designer. Themes customized using the Theme Editor must be exported before the UI Theme Designer is activated. The exported themes should be imported (migrated) after activating UI Theme Designer. The following video contains all you need to know about Theme Migration in less than a minute.






Activation of UI Theme Designer

Configuration for activating the UI Theme Designer is also fast and easy. The configuration is illustrated in the following video in less than a minute.




Examples of Theming Capabilities


After doing the previous steps (Theme Migration (if required) and UI Theme Designer activation), you can now enjoy creating and editing themes in an easy, simple, and intuitive way. Examples of different levels of theming: Quick, Expert and CSS are provided in the following video.




Ongoing Improvements


Note that UI Theme Designer is in continuous development and therefore additional improvements are also reflected when working with the tool in the Portal. For example, theming based on Fiori Framework Page is supported, starting from SAP NetWeaver 7.31 SP12. Another example is the support of Right-To-Left (RTL), starting from SAP NetWeaver 7.31 SP13.
So you can expect that your experience will continue to improve in the future.



Notes and Known Limitations


  • Note 1890375 - Known Issues of UI Theme Designer for SAP NetWeaver Portal.
  • Note 1927550 - Update UI Theme Designer to version 1.1.4 in the portal.
  • Note 1895989 - UI5 iView stylesheet rendering issues.
  • Note 1959708 - Supporting integration of UI Theme designer and UI5 application in the portal.



Further Information




Enjoy - We'd appreciate your feedback



As a new starter to SAP it is important for me to get comfortable with SAP products and how they can add value you to the customer. I have discovered that there is a strong emphasis on making the world simpler at SAP and this video gives a good understanding of how we at SAP can create a simpler world for our customers.


The video opens with an intro to Sara, a sales manager, who has been working with SAP applications for years. Now she needs mobile applications in order to do her job, now she has an issue where she is using lots of different applications over the different devices she uses to do her job. There is no similarity between the apps.


Peter, the CIO of the company, has a challenging role where he is supporting many different devices, platforms and applications. He is now struggling to control the variety of applications, while at the same time the users are demanding more support and he needs more expertise to maintain the ever growing devices and applications.


SAP's solutions to Sara and Peter's problems are covered by Responsive Design.


Responsive Design aims to let the user of the applications have similar experiences across different devices, desktop, mobile and tablet, with the views for each device adapted for the device in use. There is a high emphasis on ensuring the content is easy to read and navigate.


The video goes on to show how SAP Portal is taking Responsive Design to the next level. On desktop there is full user access, where on tablet there is access to selected information and on tablet only crucial information and options are available. The content is designed to look great and be in a form relevant to the business, user role and user preferences.


Users will have a

    • Coherent experience
    • Optimized for the user's needs
    • Single point to manage the content
    • Ability to preview on a wide range of devices
    • Control for the user experience

Based on the latest technologies

    • HTML5
    • OpenSocial
    • OData protocol

Available on

    • HANA
    • On Cloud
    • On Premise


I found this video good at explain how SAP can make user experiences simpler for users.


What Is Responsive design ?? - YouTube


Check out Announcement of SAP Portal and HANA Cloud Portal Gamification Movie Challenge



The purpose of this blog post is to explain and demonstrate how to integrate an SAP Fiori application into SAP Enterprise Portal.

This blog post is for portal developers and administrators who would like to learn about the tasks required to integrate SAP Fiori applications in Portal. In only a few steps you can easily add a SAP Fiori application to Portal.

This capability is applicable only for a subset of Fiori transactional applications, which are self-contained in nature and do not require contextual services. These are typically e.g. Employee or Manager Self Services. See details in SAP Note #2103156


What’s the Problem?


Actually there are a few problems we need to address:

  • Fiori (Wave II and above) applications are called via a URL location fragment. Therefore, a simple form submission is not sufficient here.
  • Fiori applications are protected against click-jacking attacks; this prevents them from being rendered in an iFrame.
  • Extra parameters need to be forwarded to the application to ensure it runs in standalone mode.

Standard use of the Application Integrator (UI5 iView) is not possible – precisely because of the problems listed above.


The Solution


We have created a new iView template in the portal: SAP Fiori iView. By using this iView, you will be able to call a specific Fiori application running on an ABAP back-end system and run it within the portal framework.




  • Your Enterprise Portal version is:
    • 7.3 EHP 1 SP 13 and above
    • 7.4 SP 8 and above
  • Your back-end server has SAP Fiori Launchpad SP 8 or above
  • You have made sure that both the portal server and the ABAP server can be reached via the same URL (including the server name). This can be achieved by using a SAP Web Dispatcher.


How to configure a web dispatcher (example)

We need to access both servers via the same URL. Therefore, we set up a web dispatcher.


So, we configure it such that:


For the client, it seems as if, both the portal and the Fiori application are on the same server.


So, How to Integrate a Fiori Application into Portal


In this example:


The Fiori app can be accessed directly from: https://abab.sap.com:44336/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=123#Shell-runStandaloneApp?sap-ushell-SAPUI5.Component=cus.crm.opportunity&sap-ushell-url=/sap/bc/ui5_ui5/sap/crm_opprtnty


Since the web dispatcher is already set up it also can be accessed from: http://dispatcher.sap.com/sap/bc/ui5_ui5/ui2/ushell/





  1. Create a system object and give it an alias, such as 'WEBSIDP'. This system will actually points to on the same URL we are using to access the portal - the web dispatcher.
  2. Enter the following mandatory settings for this system object:
    1. SAP Client: 123
    2. ICM Protocol: http
    3. Web AS Host Name: dispatcher.sap.com
    4. Set the system HTTP Security Session to be on. See SAP KBA #1717945 for details.
    5. You can set other properties too according to your needs.
  3. Create a Fiori iView.
    1. In Content Administration, create a new iView from template and select SAP Fiori iView.
    2. Go through the wizard, choose a name for your iView, and then click Next.
    3. In the next screen, fill in the details as follows (according to the example):
      • System: WEBSIDP (this is the system alias we defined before)
      • Relative Path for SAP Fiori Application: sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html
      • Parameters to Pass on the Location String in the URL: Shell-runStandaloneApp?sap-ushell-SAPUI5.Component=cus.crm.opportunity&sap-ushell-url=/sap/bc/ui5_ui5/sap/crm_opprtnty
        • If you leave this field blank you will simply get the SAP Fiori Launchpad (FLP).
      • SAP Fiori Application Header: You can choose one of the following:
        • No Header - you will not see the FLP header, personalization will be off (disclaimer: supported as of ABAP Add-on SP10)
        • Minimal Header - You will have the FLP header with functions that match embedded mode, personalization will be enabled (supported as of ABAP add-on SP9)
    4. Click Next, then Finish.
    5. Once this is done you can preview the iView. All the properties that you entered with the wizard are still available via the iView property editor under the category 'Content - Fiori'
    6. Unless you have a custom theme maintained in the portal that is suitable for an SAPUI5 application, set the Hand Over Portal Style Sheet property on the iView to false. The Fiori application will be rendered with the default theme of the application, as it is on the back-end system.


That's it. You're done. All you need to do now is add the iView to a Role and assign it to your end users.




  • See SAP Note #2017946 - SAP Fiori application integration with NetWeaver Portal.
  • The official SAP documentations are here.
  • SAP recommends accessing both Portal and ABAP BE via the same URL. If you wish to do otherwise you will have to modify your FioriLaunchpda.html on the BE server. Please refer to SAP Note #2057847 for detailed information.
  • Creating Trust Between Portal and Back-End Systems - see more info here.
  • It is recommended to run Fiori iView in the portal content area only in HTML5 (Standards) supported framework page. If your end-users framework page is not supporting standards document mode rendering, and your end-users are using Internet Explorer, set the Fiori iView to launch in a new headerless portal window that support Standards mode. See SAP note #1737445 for more details.



In some situation you may want to change the title of the portal page. OR you may want to change the link, meta tags, etc..

One way to do is to identify the correct place where you have to change this, and make it work. Say for example, changing the title of SAP EP, will change title in all portal pages. If you don't want to change system wide, and only you want to change it in particular page, you can follow this example.


In my requirement, I had to change my Logo, text's in portal logon page. For that i developed/deployed the custom logon on page from the standard war files.


And used these commands to make it work.


Added these (below mentioned commands) java-script commands in <script></script> section of the logon.jsp / logonmobile.jsp files.

In this case i was not able to locate the <head></head> tag in my page, because it was getting derived from EP framework level.


To change Title of the logon page :


document.title = "My title";


And to Add link element in head section of the html page i used this command.


var l1 = document.createElement("link");

l1.rel = "icon";

l1.sizes = "196x196";

l1.href = "<%=webpath%>layout/android-touch-icon-Mobility-196x196.png";



To Add Meta tag

var m1 = document.createElement("meta");

m1.name = "mobile-web-app-capable";

m1.content = "yes";



To know the details about why you have to add such tag's, you can find it in this links:


For Apple - Mobile WebApp :




For Andriod




Similar way, you can also change the favicon


Refer this page for details about it : stackoverflow.com/questions/260857/changing-website-favicon-dynamically


Other useful links :

5 Tips for Turning Your Website Into an iOS Web... – Chief Creative Mechanic


In this case i was not able to locate the <head></head> tag in my page, because it was getting derived from EP framework level. So i had to use the above mentioned method of adding, link, meta tags to the <head> section of the page.


In some other case, (Say in Fiori home page, launchpad page,) you want to add such details, you can directly add them as per the developer.apple or developer.chrome links given above.


Hope this helps to create custom bookmark of SAP portal logon in Android, iOS and other mobile apps, and web-browser bookmarks with custom pictures.

Thanks for reading.

The newer versions of IE pose many rendering issues/challenges which affect EP rendering. There are so many complications and solutions around this subject that it’s really hard to deal with.


So I decided to learn this subject and make some order in all this mess – so that I’ll know how to handle the variety of issues that come to our door here at support. In this blog I will share some of these issues with you.

I used kind of childish graphics – but I think that they demonstrate my points nicely.

So here’s an historical review of the evolution of the standards/quirks issues:


     1.  In the beginning –old IE versions


The older versions of IE (such as IE6, IE7) ran only in quirks mode. The portal rendered everything in quirks mode with no issues. Applications running in the portal were not strict about standard syntax and they lived happily within IE – which wasn’t strict about syntax either.



Then IE with standards mode arrived and evolved and the portal had to deal with rendering issues…



     2.  IE8 presents standards mode




IE8 and above presented standards mode rendering. For IE8 and IE9 the default mode is quirks, but if the administrator configured all the browsers in an organization to run in standards mode, the portal wouldn’t be rendered well.





Enforce IE to run the portal in quirks mode by changing the document mode.

How? We added an iView to all framework pages. The iView adds parameter to the header and tells IE to render in quirks mode.

This iView has to be added to every non-standard framework page for the portal to be rendered correctly.


More Details

  1. Note: 1458799 - Limited supportability for IE8 and above in the Portal
  2. Note: 1787647 - Browser Document Mode iView hides the portal content area - a fix to a regression from note 1458799
  3. Blog: Browser Document Mode – How to set the IE Compatibility View from server side.


And peace is restored…


     3. SAP presents UI5 applications





In recent years SAP introduced a new UI technology for SAP applications called SAP UI5. UI5 applications are written in standards mode and require standards mode rendering, while the portal runs only in quirks mode. Standards and quirks can’t run together on the same page.





Run standards-mode applications in a separate window which opens in standards mode.

How? Set the “Launch in New Window” property of the iView to “Display in separate headerless portal window (standards mode)”. This navigation mode, as its’ name implies, tells the iView to open in a new window and sets the HTML header to standards.



More Details

  1. Note: 1737445 - Internet Explorer standards mode rendering for EP
  2. SCN: Launching portal applications in Internet Explorer standards mode rendering – This blog presents a detailed “how-to” for configuring the new navigation mode.



And the smile is back...


     4. IE10 and IE11 presents QME mode – quirks mode is not really quirks anymore




From IE10 the values that were previously used for rendering pages in quirks mode (Emulate IE7/Emulate IE8) are now rendered in QME (Quirks Mode Emulation). In this QME mode there are slight differences in some values that the browser returns and the portal again is not rendered well.



Use another value (IE=5, IE=EmulateIE7 ) to enforce the “old” quirks mode.

How? Change the “Browser Mode” property value of the “Browser Document Mode” iView to IE=5


Mode Details



  1. Note: 1458799 - Limited supportability for IE8 and above in the Portal
  2. http://msdn.microsoft.com/en-us/library/ff955275(v=vs.85).aspx – The Microsoft documentation to QME mode






      5. IE11 run in standards mode by default




When a new window is opened by an application in IE11, the new window is opened in standards mode by default (before IE11, the new window was opened according to the parent window’s mode). If the application that is opened in the new window doesn’t support standards mode – it will be rendered incorrectly.




Enforce IE11 to render the newly-opened page in the correct rendering mode.

How? Check the document mode of the parent window before opening the new window, and enforce the parent’s mode on the child.


More Details



Note: 1969004 - Open navigation mode 1 (new window) rendering mode according to the parent window rendering mode


This note has a few side effects which were fixed in the following notes:

And again:



     6. IE11 presents itself as Mozilla






According to Microsoft documentation, the IE11 user agent string was changed to be compatible with modern browsers. It returns the following string: “Mozilla/5.0(Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko.”

This string was not familiar to the portal, and the portal recognized IE11 as if it was Mozilla. Due to that, the X-UA-Compatible string which changes the document mode to quirks was not sent to the browser, causing rendering issues.

Another instance of this problem appears in HTMLB applications.

HTMLB APIs also check for the UserAgent of the browser, and like the Portal – the HTMLB code recognized IE11 as Mozilla, and as a result upload wrong sources to the browser, and the controls don't function as expected.



Familiarize the portal with the new user agent string as an IE11 user agent.

How? Add this new user agent string to the “user agents” dictionary of the portal.


More details

Note: 1972506 - Cannot access portal with Internet Explorer 11

Fix for HTMLB: note 2000759 - HTMLB Support for IE11


And we're smiling again...







     7. Standards mode Web Dynpro applications





Some WD ABAP/JAVA applications started running standards by default (for example – HCM). Because the Portal enforces quirks mode, these applications have rendering issues when they run in the portal. The result is bad rendering of the applications.




Enforce the application to run in quirks mode.



How? Add a parameter (SAP IE parameter) to the application URL which tells the application in which mode it should run. For quirks it would be ie=EmulateIE8” and for standards ie=Edge”.

This works for all ABAP applications except for SAP Transaction iViews (SAP GUI for HTML) which receive the application parameters in another format, so the sap-ie parameter is not aggregated to the URL as expected.

In newer portal SPs all of this happens automatically (see note 1814711) and the portal knows what to send to every destination.

But! Previous to the versions mentioned in the note, you had to set the SAP IE parameter manually for all applications, and for SAP Transaction iViews you had to do a special configuration according to note 1970427.


More Details

Side effect note to 1753544:

And finally:


8. iViews running in standalone mode (with no framework page)




There are scenarios that Portal AI iViews are opened in new window directly, means: some application navigate to the URL of the iView without using the navigation APIs.

Examples for this are: previewing an iView (from the content management), BI launcher – launches BI iViews directly.

Since there is no framework page – there is no direction for the browser in which document mode to be opened, so the browser opens in the default mode. In IE11 the default mode is “Edge”, and hence there are rendering issues for iView that needs “Quirks” rendering.



Add the meta-tag for document mode indication (either standard or quirks) in the head of the iView HTML

How: The correct value will be detected by a new property on the iView, which indicates whether the iView should be running and quirks mode or standard mode.


More Details

I wrote an extensive blog about this topic which explains the issue and the solution for it: Rendering issues when running portal iView with no Portal framework (standalone)

There are few notes for this issue:

  1. 2012705 - BI iView's are not render correctly when using Internet Explorer 10 and above.This note solves the issue for BI iViews only (the property “DefaultDocumentMode” is added only to BI iView template.
  2. 2098706 - iView rendered corruptly when using IE10 and above when executing it directly or from headerless window This note extends the solution for all AI iViews
  3. 2163649 - More scenarios of opening an iView directly (standalone) with IE10 and above causes rendering issues (continuation of note 2098706) This note fixes a regression from note 2098706

These are all of the issues that I’m aware of at the moment. I hope that this blog made some sense in all the confusion around the portal and IE.

I want to end this blog with some good news.

You were probably thinking “why don’t they just adjust the main framework pages in the portal to be compliant with standards mode? This would solve many of the issues mentioned here!”

Well… we are! In the next SPs of 7.31 (SP14) and 7.40 (SP9) the Ajax Framework Page will support standards mode!

You can read the blog that my colleague Matan Mizrahi wrote about the Ajax Standards Framework page: Ajax Framework Page in IE standards mode and the note which describe the framework page is: 2001910 - AFP Standards mode support.





If you develop portal applications, you probably find yourself sometimes searching for best way to pass parameters (configuration or others) from java code(server) into Javascript (client side)  for easy to use later.


In this blog post you can find a code sample of how to pass parameters/properties from Portal Component and then easily read these in Javascript.

This works if you are using the ajax framework page or your custom framework page using the LSAPI mechanism


Java code for the portal component:


import com.sap.portal.navigation.afp.IAFPHelperService;
import com.sapportals.portal.prt.component.*;
import com.sapportals.portal.prt.resource.IResource;
import com.sapportals.portal.prt.runtime.PortalRuntime;
public class Test extends AbstractPortalComponent
  private static String COMP_NAME = "MyTestComponent";
    public void doContent(IPortalComponentRequest request, IPortalComponentResponse response)
       IPortalComponentContext componentContext = request.getComponentContext();
      IPortalComponentProfile profile = componentContext.getProfile();
      String myProfileProperty = profile.getProperty("myProperty");
    IAFPHelperService afpHelperService = (IAFPHelperService) PortalRuntime.getRuntimeResources().getService(IAFPHelperService.KEY);  
    afpHelperService.addClientSideAttribute(COMP_NAME, "myProperty", myProfileProperty);
  IResource myJS = request.getResource(IResource.SCRIPT,"scripts/myAppJS.js");
  response.include(request, myJS);

In this sample I assume the portal component has (in its PortalApp.xml) a property named "myProperty".  (see related blog on how to read/set properties)

  • First we need to retrieve the AFPHelperService (line 19)
  • Then, call the addClientSideAttribute method with your component name or any namespace you would like to use , the property and the property value. (line 20).
  • In next lines I'm just including a javascript resource that I have.

Server side code is done!


For using the AFPHelperService , you would need reference to it in PortalApp.xml. add sharing reference as you see bellow:

  <property name="PrivateSharingReference" value="com.sap.portal.navigation.afp.helperservice"/>

Reading the attributes from client side - Javascript code:


var SERVER_COMP = "MyTestComponent";
var topFrame =  EPCM.getSAPTop();
var propFromServer = topFrame.LSAPI.AFPPlugin.configuration.getClientSideAttributeValue(SERVER_COMP, "myProperty");
alert("myProperty = " + propFromServer);

  • First we need to get the top frame of the framework page where LSAPI is located. EPCM.getSAPTop().
  • Actual work is being done in line 3, retrieve the parameter saved on server side by calling the method LSAPI.AFPPlugin.configuration.getClientSideAttributeValue with the namespace and name of the property
  • Result of this would be an alert with property set from server side - "This is my value!":


Once the attributes were set in server side, you will be able to retrieve them in any javascript (in the same framework page session of course)


Last step is of course creating an iView from this portal component and test it!

01-09-2014 11-56-07.jpg



Related Links:

Ajax Framework Page

L-Shape API




In case you have a portal or JEE application that connects to an SAP backend, knowing if the connection works is important, even more important can be to know WHY it isn`t working. In the following example I was developing a KM application that uses a DMS Repository Manager from SAP connected to a SAP ABAP backend. The code worked when using /documents as the repository, but failed when using the DMSRM entry path.


The log did not help much, as it only showed that the connection failed.


The error message contains some more information, but still isn`t showing why the connection failed.


Caught exception: com.sapportals.connector.connection.ConnectionFailedException: Connection Failed: A nested exception occurred. Could not initialize physical connection. 
 at com.sapportals.connectors.SAPCFConnector.SAPConnectorException.getNewConnectionFailedLocalizedException(SAPConnectorException.java:182)
 at com.sapportals.connectors.SAPCFConnector.connection.SAPCFConnectorManagedConnectionFactory.createManagedConnection(SAPCFConnectorManagedConnectionFactory.java:155)
 at com.sap.engine.services.connector.jca.ConnectionHashSet.match(ConnectionHashSet.java:401)


This traces the error down to the SAP Connector Framework but isn`t helpful when trying to find out what happened exactly. It fails, but where and why exactly is not visible. The system in the portal landscape is configured for SSO using SAPLOGONTICKET and the SSO works perfectly when the connection test is run or the repository is called in the KM. As the error occurs in the CF part, it would be nice to see log messages from there. Obviously only the error messages are shown. But as I already know that an error is occurring, that log message is of little use.


Therefore, it would be nice to increase the log level of CF to see if maybe debug messages are logged. SAP NetWeaver Java comes with a powerful logging and tracing framework that can be accessed and configured using NWA. Changes are reflected immediately, making it even more easy to work with this tool. The question is now: where are the logs stored?


As can be seen in the log message, the package of the CF classes is com.sapportals.connectors.

There is no easy access to the source code to know which class name is used to write the logs into. Using the log configuration in NWA it is possible to search for classes. Searching for connector reveals the following classes.


As a ABAP system is called, the R3 class is a good hunch. Setting the log level to Debug.


Invoking the method of the Java class again shows now more log messages:


There is one error message showing an actual hint on what is not working. Expanding this entry shows what is happening.


Thread Hash: 128521575. Could not create JCO connection. Exception:Parameter containing a user ID is missing: neither user nor user alias nor external ID nor SSO ticket nor X.509 certificate is specified. Trying to connect with the default language instead.

The connection cannot be established because a parameter user ID is missing. While the ABAP system in the SAP Portal landscape is configured to use SSO and is working, the DMSRM repository manager has a problem in using SSO. It looks that as a faultback user ID logon is tried. Of course this is not working as no user / password mapping is configured for the system.


Changing the system in the portal landscape to make use of user id mapping solves the issue. Now the KM application is able to connect.


As the amount of log messages is drastically increased, the log level should be reset to default after solving the issue.


Filter Blog

By author:
By date:
By tag: