Background: You are attempting to run the WPC migration and are encountering issues with the migration tool i.e. it stops functioning.

Obstacle: When attempting to run the migration you encounter an issue which prevents the process from running smoothly


What You See: Error encountered migrating resource: /wpccontent/Sites/WEBSITETRE/Site Content/Work4/ABCDXYZ Error encountered during processing: Could not find Content/Work4.


Environment Affected: KMC Web Page Composer, Enterprise Portal 7.30 , SAP NetWeaver Composition Environment


Steps Towards Encountering Issue: Log into Enterprise Portal. When attempting to run the WPC Migration and upon further inspection you identify two core error exception highlights pertaining to "Error encountered migrating resource" & "Error encountered during processing". After the WPC Migration fails to run and complete you attempt to run the WPC Migration Cleaner and then the WPC Standalone Migration tool manually. The error exceptions do not indicate an issue with the WPC Migration tool itself but rather the content to be migrated.

bloG10 WPC.PNG


Why: A webpage contained within the ‘Site Content’ folder is not a supported scenario.


Solution: If the WPC migration is failing and upon further inspection of the default trace file you note a reference of  ‘Error encountered migrating resource’ this indicates a discrepancy.This error  ‘Error encountered migrating resource’ message when pointing to content in the Site Content folder indicates a conflicting folder setup. Here you need to ensure that there are no web pages stored in the Site Content folder.

Background: Upon attempting to "Integrate Collaboration for SAP NetWeaver" in your system and SAP Netweaver Portal enviornment you encounter an issue with the loading operation of the collaboration portal room and profiles.


Error:   You encounter the error exception 'Error in communication with Collaboration room API ' when trying to load the profiles.

Backdrop:  SAP NetWeaver 7.30 & SAP NetWeaver 7.3X

Steps to Reproduce the scenario:  Login to the portal from desktop (http://<host>:<port>/portal). Navigate to SAP Customizing Implementation Guide -> Training and Event Management -> SAP Learning Solution -> Training Management -> Integration -> Collaboration Room for SAP NetWeaver -> Edit Room Profiles.   You then encounter the error "'Error in communication with Collaboration API room "to while accessing the profiles or SPRO transactions. Upon analyzing the log files you highlight the following error

Tables: null JCO.ServerThread-16 [11:16:23:779]: [JAV-LAYER] Exception in dispatchRequest( LSO_COL_GET_ROOM_PRIVACYTYPES):java.lang.RuntimeException: Bean LSO_COL_GET_ROOM_PRIVACYTYPES not found on host mo7366ux0027, ProgId =SAP_ECC_TrainingManagement: Object not found in lookup of LSO_COL_GET_ROOM_PRIVACYTYPES. at at$ n( at at Method) at 85) at by: on: Object not found in lookup of LSO_COL_GET_ROOM_PRIVACYTYPES. at 

Why: The reason for the occurrence of this issue is due to invalid configurations and property settings pertaining to the wrong system version guide.

old guide.PNG

Important Points & Resolution:  For 7.30 systems and upwards a new guide for Collaboration Room Integration with SAP NetWeaver has been developed.

For 7.30 & 7.40 Portals  please make sure you have configured the LSO Collaboration Rooms integration according to this guide: -> Release & Upgrade Info -> Installation & Upgrade Guides -> SAP Business Suite Applications -> SAP ERP -> SAP ERP 6.0 -> SAP ERP enhancement packages for SAP ERP 6.0 -> SAP ERP enhancement package 4 for SAP ERP 6.0 -> Installation Guide Collaboration for SAP Enterprise Learning.

correct guide.PNG

Remember:  This issue usually happens when you have configured a 7.30 or above portal the way it was described in the old guide (for 7.01 portal).The guide navigation (path) link outlined above describes the proper procedure for configuring LSO with a 7.30 and above releases of the SAP NetWeaver Portal.

Background: After System Copy, email links generated from Knowledge Management (KM) are pointing to incorrect Portal URL.


Breakdown: This behaviour may affect links generated through the following functionalities: SendTo Mail, Notification Emails & Approval Emails.

Area Backdrop: EP Release Independent, SAP NetWeaver, SAP Composition Environment, Knowledge Management Content Management


Reproducing Scenario: Perform System Copy of the Enterprise Portal. Use any KM functionality which results in the sending of an email link pointing to a KM resource (subscription, approval workflow, etc). Link generated in email is pointing to original Portal URL instead of copy.


Why:  URL's for applications and various KM functionalities are constructed using various components including resource URIs, system addresses, and paths specified in the configuration of the URL Generator Service. While many of the properties in the service are configured to default values, the host parameter is unique to each Portal environment. This should be pointing to the Fully Qualified Domain Name (FQDN) of the Portal. After a System Copy this property will still be pointing to the FQDN of the source system and needs to be updated.

The Resolution:  Navigate to System Administration -> System Configuration -> Knowledge Management -> Content Management. Select -> Global Services. Select -> Show Advanced Options. Select -> URL Generator Service. Click -> Edit.  Set <Host> Parameter to the Fully Qualified Domain Name (Host Name + Port) of your Portal. Save changes.

kelly kba.PNG

Background:  You have migrated a Web Dynpro Java application to version Netweaver 730 or higher.


Overview: When viewing the corresponding Web Dydnpro Java iView in the Portal Content Catalogue, this appears to be a Web Dynpro Page.


Affected Areas: NW 7.30+ & the Enterprise Portal


Seeing this behavior:  Logon to the Enterprise Portal.Navigate to Content Administration -> Portal Content Management -> Portal Content.Navigate to Web Dynpro Java Applications -> Java Application.Select the application for which you intend to create the iView.Copy the object and select ‘Paste as PCD Object’ to the required folder. The object appears as a Web Dynpro Page rather than an iView.




Why:  From Netweaver 730 onwards the concept for Web Dynpro iViews has changed. They are now known as Web Dynpro Application Pages. The runtime behaviour is identical to that of the old Web Dynpro iViews. The icon representing the new Web Dynpro Application Pages now resemble more a page than an iView.


Note: As the functionality is the same for the new Web Dynpro Application Pages, you should use them in the same manner as per previous releases.

Background: When you are navigating and performing actions in the Enterprise Portal (EP) you notice that the rendering of the message and the buttons contained within the Work Protect popup is different amongst web browser platforms.


Note: The issue occurs alongside the use of the Internet Explorer (IE), Chrome or the Firefox Web Browser Platforms.


screesnhot lad.jpg

Backdrop: SAP NW & Enterprise Portal


How the issue occurs: Login into the portal from desktop. http://<host>:<port>/portal Navigate to Configuration Management->Infrastructure->Application Modules. In the Module List select the WebModule "", then display its details.In the Web Module Details select the "Components"-tab and then search for "epcfloader" (Portal Service). When displaying Full Details for these portal services, you get following properties available (you may need scroll down): workprotect.mode.default, workprotect.mode.personalize, workprotect.window.features, workprotect.popup.layout (as of 7.0 EhP1 and 7.1 EhP1). Upon selecting the "workprotect.popup.layout" property which defines the layout of the WorkProtect Popup there are limitations for this property which prevent you from configuring a constant display amongst various web browser platforms.






Why this occurs: The portal uses an OS API to display the browser specific popup.


Pointers on potentially changing the layout:  You can tailor the popup window size and features via customizations properties within the WebModule "".  In terms of customizing the WorkProtectMode's Wording and Buttons there is a limitation to the amount of tailoring which can be performed as from a graphical standpoint the presentation of the popup comes down to the Browsers interpretation.

Background:  When you are navigating and performing actions in the Enterprise Portal (EP) you notice that the upon selecting "ok" on the Work Protect Mode popup, the application is opened in a second tab.


Overview:  The first tab from the previous step selection is still active in edit mode and the actions performed in this previous step result in that record continuing to be locked by the user.


screesnhot lad.jpg



Sample Scenario:  Login into the portal from desktop. http://<host>:<port>/portal Select an application Make a change but do not save (such as Purchase Requisition Message). Click on another tab The following message is shown: Your current page contains unsaved data. Do you want to continue with navigation and open a new window? OK or Cancel. Click OK - the application is opened in a second tab, the first tab remains active in edit mode and that record continues to be locked by the user.



Area of Interest: SAP NW Portal


Why: The Work Protect Mode options displayed in the popup are determined by the configurations maintained in the EPCF Service.


Overcoming this:  Go to: System Administration -> System Configuration -> Service Configuration -> Applications -> - > Services -> epcfloader. Set Workprotect.mode.default to one of the following values which suits the scenario requirement: (a) Protect unsaved data (open page in new window) (b) Discard unsaved data (open page in same window (c) Choose action in popup on unsaved data. Click on save.Right click on Click on refresh.

Background: The portal activity report mechanism is a great tool to obtain monitoring information for analyze and overview purposes across EP. In this instance you are using a configured Activity Report in the Enterprise Portal (EP) and notice the report findings are not displaying all of the pages that have been visited.

Overview:  Although the Portal pages were indeed visited, only one/two page hits are subsequently recorded and displayed in the report listing.

Version Backdrop: SAP NW 7.31 and Enterprise Portal 7.31


Reports Configuration + Revisiting Setup:  Navigate to the Service Configuration Editor. From the top-level navigation, choose System Administration -> System Configuration. In the detailed navigation, choose Service Configuration. The Service Configuration Editor is displayed. Open the configuration page for the data collection service. In the Portal Catalog, navigate to Applications > -> Services -> ActivityReport. Go to “Customer Activity Reports” -> “Daily Activity Report by Page”.


Why are the page hits not recorded? The correct Page Properties have not been defined.


How do we ensure these properties are corrected?  Open the Portal Activity Report configuration settings. Locate and find the Page Property labelled 'User Hits'. The default value in the system is set to 'No' and in order for the report to capture and record Page Hits the property should be changed to 'Yes'. Change the Property to 'Yes' as required and save. Reproduce the scenario and run the report again to see the new report.


Background: A user is facing an issue while attempting to delete a UWL task which has been created and assigned to another employee.

Overview: The task of interest has already been completed and despite this it remains displayed in the Worklist and when the user attempts to delete the task it cannot be deleted as it is not displayed in worklist upon clicking  Approve/Reject and there is no reference entry to this task in the backend



Issue Backdrop: EP Release Indepedent & SAP NW

Sample Scenario:  You Log into Enterprise Portal and navigate to the Universal Worklist (UWL) by choosing the following: Approval Inbox -> Universal Worklist.In the "Tasks" tab, select the task of your interest. This task was created by "UserA" and assigned to "UserB" and has already been completed.

However when "UserB" tries to delete this task they are presented with no deletion option.



Whats the problem? The tasks which we are dealing with here are Java Workflow tasks, meaning that there is no backend system involved in the scenario for these particular items, and also we don't have task related information at the backend. The "task" of interest is part of a Task List, which has have created through the "Create Task" uwl button.


Whats the solution?  Open table KMC_WF_WORKITEM. Here in the ASSIGNED_USER_ID column try to locate a detail reference related to this user in the traces. Highlight the work item id in the WORKITEM_ID and the OBJREF_ID column where that user is the ASSIGNED_USER_ID. The TIME_COMPLETED column for this line should be empty, as the task is due. There is a DUE_DATE column as well, which is likely passed. Delete these rows. Now open KMC_WF_WFTASK, and locate the matching OBJREF_ID, and delete the rows. Now open KM_WF_WORKFLOW and delete all lines where TIMESTAMP_TERM is empty to cancel all possible remaining tasks. If you would prefer to delete the content of the WF related tables, these are which starting with KMC_WF or KMC_WI.


After applying this instruction Customizing Logon Page on Portal 7.3 to customize logon screen you may need

to add specific doctype to logon page JSP or reset it's head.

This post describes how to set DOCTYPE on customized logon page in SAP EP 7.3,7.4,

clear html head, remove html body class etc.


Step 1. You will need some classes (fig.1), provided by SAP team to manipulate html elements.

You can find class EnhancedPortalResponse in "com.sapconsulting.portal.utils.html_api.jar" file which is packaged in Ajax Framework sample code available for download from SDN Code Exchange ([Ajax Framework Sample code|]).


For more info about this jar please, refer to 4.1.1 Create a Portal Application in this guide…


fig.1 Standart SAP classes for HTML manipulation.


Step 2. Assuming that you have that custom component, there is still a question, how to instantiate EnhancedPortalResponse object on portal logon

JSP in login web-module. My suggestion is to use reflection. You will need next imports on JSP (clsses that we have created in step1) (fig.2):

fig.2 Logon web-module JSP imports.

Step 3. Add custom code to logonPage.jsp as in example on fig.3

fig.3 Code to set doctype, reset head, add some html elements.

A brief description about what goes on fig 3:

On line 12 we get class of an object that wraps EP runtime ordinary servlet request.

If user enters portal by adress  like HOST:PORT/irj/portal the type of this wrapper object will will be, but if user enters direct link e.g. to nwa : HOST:PORT/nwa, this object will be of other type (in our case we dont deep-cudtomize HOST:PORT/nwa logon page, just show simple logon page for administrators without deep customization

so I will not describe how to get EnhancedPortalResponse in this situation)


Next on line 14 we get method of that wrapper object PortalServletRequestWrapper, make it accesible on 15 line, and invoke that method to recieve IPortalComponentRequest object.


Next on line 18 we invoke EnhancedPortalResponse constructor wich gets IPortalComponentRequest object as a parameter, and on lines 19-25 we are working with html head (resetting it, creating IE=edge meta tag, setDocTypeToXhtml10Transitional and even adding bootstrap.css).


Here you can find other examples of using EnhancedPortalResponse for html content manipulation…


Please, ask me in comments if you have questions about how to find SAP framework classes or what decompiler I used in this example etc.

Background: You have been carrying out security checks on the Enterprise Portal (EP) and  encountered a vulnerability type " MongoDB Script Injection Attack" for a system URL.


Overview:  At first glance a security attack may appear prevelant because of a HTTP 200 response which signifies the response was returned with some altered parameters.


Important Point To Remember:  The WorkProtectPopup which may lead you to believe that there is a  security issue or breach but this is not the case.



The WorkProtectPopup request is just a popup window with some options and  does not perform any SQL queries or submission actions. MongoDB is not  associated to or used in EP in any method.






The work protect mode provides the infrastructure for handling unsaved data in  SAP NetWeaver Portal. An application is called“dirty” if the  entered data has not yet been saved. Normally data is lost when the  user navigates to another application without having first saved the  data. To prevent this from happening, the client framework of the  portal monitors the current status of all the applications in the portal.

Hi All,


Recently, I integrated SAP Portal 7.4 with SuccessFactors and established Single Sing On (SSO) between the systems. In this post, I am sharing the steps I have followed to achieve the same.

Here, Portal system is the Identity Provider and SuccessFactors is the Service Provider. These systems are integrated using SAML 2.0 protocol.


By default the standard Portal systems acts as Service provider. The prerequisite to integrate the Portal with SuccessFactors is to enable the Portal as Identity Provider. To do so, we have to deploy an SCA file (IDMFEDERATION<release>.sca) on the Portal server.

Please refer the SAP Help document for more details on this:: Downloading and Installing the Federation Software - Identity Provider for SAP NetWeaver Single Sign-On and SAP NetWeave…


Upon successful deployment of the .sca file, we have to perform the below configurations:


1. Configure SAP Portal as Identity provider.


     1.1 Click on Configuration --> Authentication and Single Sign-On --> Select SAML 2.0

Select SAML 2.0.png

     1.2 Click on Enable SAML button and provide a name to the identity provider Identity Provider.jpg

    1.3 Click on “Next” button and select “Browse” button. On the popup screen, select “Create” button.     create.jpg

     1.4 Provide a name for the Identity provider and select the check box as shown below.


     1.5 Enter the same name as mentioned in the previous step and click on “Finish” button.finish.jpg

     1.6 Finally click on “OK” button.


     1.7 Continue with the initial wizard. No changes required in this screen, click on “Finish”. final.jpg

We have successfully configured Portal as the Identity provider. Next step is to define SuccessFactors system as Service provider.


2. Adding SuccessFactors system as Trusted Provider


     2.1 Click on the link “Trusted Provider", Select Add button and select “Manually” option from the menu.Service.jpg

      2.2 Enter the name of the Service Provider and click “Next” to continue.  provider.jpg

     2.3 Click on “Browse” button to import the SF certificate.browser.jpg

     2.4 Click on “Import Entry”. Select X.509 certificate and browser to select the SF certificate file shared from the SuccessFactors, once done, click      “Import” button to import the SF certificate.

sf certi.jpg

     2.5 Select the newly imported SF certificate and click on “OK"SF OK.jpg

     2.6 Select the same SF certificate imported earlier as encryption certificate and click on “Next"encrip.jpg

     2.7 Add Assertion Consumer Service as below. URL from SF looks similar to this::


     2.8 Add Single logout service as below. This configuration is required to log off from both the system when logoff button at portal level is clicked. URL from SF looks similar to this::


    2.9 Click on “Next” until the end and “Finish”. Once done, click on “Edit” button from the initial screen and click on “Add” under Supported Name ID formats. Select format “Unspecified” and add source as “Logon ID”. Finally Save and Enable the Trusted Provider.


  2.10 We have successfully configured SuccessFactors system as service provider in SAP NWA. Next step is to export the Portal Certificate and Import in      SF system.

3. Add Portal as Trusted Identity Provider in SuccessFactors


     3.1 Click on Configuration --> Certificate and Keys, Select SAML 2.0 and the entry Portal certificate.SAML- cert.jpg

     3.2 Click on “Export Entry”, select Base64 and click on Download.base64.jpg

3.3 Save the file and open it. Content should look like this.


Import this Certificate in SuccessFactors and do necessary configuration.


4. SuccesFactors Configuration


     4.1 Login to SuccessFactors provisioning and navigate to Edit Company Settings --> Single Sign-On (SSO) Settings. Select SAML V2 SSO.SAML-SF.png

  • Entered SAML Asserting Party Name as SAP Portal 7.3 as this field can have any value.
  • Entered SAML Issuer name same as mentioned in the Portal Identity Provider.
  • Selected “Assertion” for field require Mandatory Signature.
  • Enable SAML Flag is selected as “Enabled”
  • Login request Signature is not selected.
  • SAML Profile is set as Browser /post Profile
  • Enforce Certificate Valid Period is selected as “No”
  • We have pasted the Certificate shared with us.
  • Selected Add Asserting Party after providing above details.


5. URL Iview configuration in Portal

     5.1 As final step, create an URL Iview and provide the URL ::  http://Portal7.3.demo.system/saml2/idp/sso

     Add 2 parameters “saml2sp” and “RelayState” with the values similar to below url's. These URL's will be shared from SF team.

     Saml2sp =

     RelayState =


   5.2 Save the URL Iview changes and close it. Create a Portal Role and assign the URL iview we created in previous step to this role.

   Assign this role to a Portal user whose UserID is present in Portal as well as in SF system.

    Upon successful login to Portal, SF content will be loaded in Portal content area as below. SF-Final.jpg



I hope this will be helpful to integrate the Portal with SuccessFactors and to enable SSO between the systems.



Best Regards,


Background: This final piece of my session blog series will outline in summary some of the most commonly reported session issues with the Enterprise Portal and also provide an overview on the resolution documentation and steps which exist to resolve such occurences.


Some Common Issues (Across Multiple Scenarios):



  1. Session Retention - User A logs out and User B is presented with User A's session upon logging in.
  2. RFC sessions are not terminated in the back-end even after the logoff is called within the Portal.
  3. The browser session does not get terminated when the user clicks "logoff" in the Portal.
  4. The application does not invalid the existing, authenticated session on the server upon user logout.
  5. Cookies may appear to get "cleaned" but when the user returns to the logon page the previous application session is still active.


BLOG9 session.PNG

One user logs out, another logs in and its the same session what do we do?


Let us revert back to the points we discussed in the earlier blog postings and what we mentioned about sessions and how they are handled. Let us begin by reaffirming the point that when a session expires or a logoff is invoked or browser is closed, no matter what, the connection is not terminated but returned to the pool and kept open as defined in the Connection Lifetime property. In short, the connection stays open for the predefined amount of time by design and this is not an unexpected behavior. It remains in the pool, it is no longer used by another service e.g. the UWL and it is available for other clients. The connection lifetime pool can be reset to a different value.


Initial Troubleshooting!


With any issue regarding sessions you should firstly try and simplify it. Beginning with a simple analysis approach i.e. check if the issue occurs for all users (various roles) and within all web browser platforms, is this a recent issue? Has something played a role in this issue arising?




When you use transaction SM04 to check sessions what are you seeing? In many cases when the portal is closed (via logoff) a reference is stored. From using the SM04 transaction it may appear that the sessions remain open but infact they will only be references. But you are seeing the transaction field remaining filled?


Note Fixes...Plentiful and effective.


Some of the most commonly reported session issues are resolved via the following notes:


  • SAP Note: 1903478 - Session remains open after the logoff on enterprise portal from enterprise portal.
  • SAP Note: 1660720 - Session remains open after the logoff on enterprise portal.
  • SAP Note: 1717945 - Portal Logoff Does Not Logoff the Backend When Using HTTP Session Management.


WIKI describes the SM04 transaction screen and the retention of RFC Connections


RFC Connections remain in SM04


SM04 viewing, does it indicate more than a reference? Is the session incorrectly kept open?


  • SAP Note: 1261669 - RFC connections are not closed
  • SAP Note: 1322944 - ABAP: HTTP security session management


Backend sessions are the culprit




When a user  logs off from your company portal by choosing the Log Off button, a logoff action should be triggered on the SAP portal side (portal and connected back-end systems). Although SAP NetWeaver Portal comes with an out-of-the-box mechanism that terminates a session when the  user closes the browser or navigates out of the SAP iFrame, the mechanism does not handle logoff. Instead, your company portal must raise the terminating event when logging off from the SAP portal.



This blog is for portal administrators who would like to implement Fiori Launchpad in their organizations.



The existing L-shape hierarchy has several drawbacks:

  • It takes a number of clicks to get to the required application
  • The navigation logic is not easy to memorize
  • To easily find the required object a user has to be familiar with the hierarchy structure.

Fiori Launchpad provides a flat structure with the following:

  • Personalization: allowing the user to organize the homepage as he wants.
  • Search and filtering functionality.
  • A required application can be found and launched in one click without screen navigation.


The traditional portal L-shape hierarchy has to be mapped into Fiori Launchpad structure.


  • SAP Enterprise Portal (EP) 7.31 SP 16 and higher or SAP Enterprise Portal 7.4 SP 11 and higher
  • Fiori Launchpad on Portal (FLP on EP) is enabled


Fiori Launchpad navigation paradigm:

Fiori Launchpad consists of 2 pages: Homepage and Tile Catalog page.

Home page is controlled and personalized by an end-user. A user can create/delete a group, fill a group with content or remove content from the group.




Tile Catalog page serves as a repository for the entire content assigned to the end-user via EP roles.



The content is provided in the form of tiles, which have a number of properties used for navigation and identification:

  • Category
  • Name
  • Subtitle
  • Keyword
  • Promotion properties: New, Recommended.

FLP on EP provides various search and filtering possibilities, on both Homepage and the Tile Catalog.

Both pages have a header line with the Quick Launcher and Fiori Search Application functionality:

  • Quick Launcher (search by tile title)

The search searches for the tiles in the entire Fiori Launchpad content (Homepage and Tile Catalog) by the tile title. By clicking the selected entry from the drop down list you can run the application directly.

Example: tiles from Homepage and Tile Catalog are found


  • Fiori Search Application (search by tile title, subtitle, info and keyword properties)

With the same search criterion as in Quick Launcher there are more results now as subtitles and keywords are also used:


Note: first enter a search criterion into an entry field and only then click on the magnifying glass.

On the Tile Catalog page the content can be filtered by category:


Or by tile title, subtitle, info and keyword in the right input field:


Or by combination of both.

On the Homepage the navigation can be done by clicking on the group in left-side menu. Then the group is moved to the top of the screen:


Mapping principles:

The traditional EP navigation hierarchy has unlimited hierarchy levels whereas FLP hierarchy is limited.

For mapping the meaningful part of the navigation context should be identified and used in the new environment as the categories and information on the tiles. (Note that parts of the navigation structure may be omitted)

This context information will help to find and navigate to the needed tile and to identify the required application.


Mapping Example:

As an example we take Standard MSS (Manager Self-Service) SAP provided content and see how it might look like on FLP on EP.

Traditional Portal hierarchy:


Let’s look closer on the hierarchy:


FLP on EP representation of MSS content:

  • Tile Catalog:


  • Homepage:



Steps to transform to FLP (an example)


1. Create categories in Portal Content ->Portal Users->Standard Portal Users->iViews->Fiori Launchpad->Fiori Launchpad Categories. Use concatenated values of Hierarchy Level #1 and Hierarchy Level #3, e.g. Manager Self-Services – Team


2. Change iView or Page properties as following:

  • Set Assigned Category  to a created category
  • Set Subtitle to Hierarchy Level #4, e.g. General Information
  • Set Object ID of Device Group to the list of supported devices groups or devices
  • Set Keyword to any hidden search criteria that can use in Tile catalog and Homepage search




The result for our example looks like this:


For mass update of several iViews a mass editor can be used. This editor allows “Changing Property Values of Multiple Objects”.


After the mapping is finished both structures co-exist in EP: the unchanged L-shape and Fiori Launchpad providing a new user experience for the same EP content.





About this Blog:

Most of the SAP User’s custom applications are written in Java DynPro.

If the user wants to migrate from Java DynPro to SAP UI5 for make the application as mobile enabled, then it likely to take more time.

But we can integrate SAP UI5 and Java DynPro that allows exchange of messages or events or data between Java DynPro and SAP UI5 by Enterprise Portal Client Framework (EPCF).

For Example, if the new ticketing application is developed by SAP UI5, then this UI5 app can be invoked from Portal by passing the ticket ID from old Java DynPro. This blog post is for portal developers who would like to exchange data between the SAP UI5 application and WebDynPro application.

Targeted user for this blog:

  • Java DynPro Developers.
  • SAP UI5 Developers.

The Problem statement:

Exchange the data between SAP UI5 and Java DynPro.

Since portal applications are rendered in their own IFrame only. It does not have access across the iFrames.


Even Though the challenge is quite high, this is possible to make the communication between Java DynPro and SAP UI5  via EP 7.0 by relax the cross origin policy explicitly and EPCF proxy APIs.


Pre- Requisites for develop the sample application development:

  • Netweaver Developer studio for Java DynPro development.
  • Eclipse with SAP UI5 plugins for SAP UI5 creation.
  • SAP EP 7.0 Server for run the portal application.

Relaxing of the Same Origin Policy

The Same Origin Policy (SOP) is a security mechanism that prevents JavaScript code running on a Web page from interacting with any resource not originating from the same site. In SAP applications, the SOP is automatically relaxed by one level by removing the host name from the fully qualified domain name. With the relaxed document domain, applications can share information between frames as long as the systems they run on are in the same subdomain.


For domain relaxing, you have to include the following code before any EPCF method calls:


var lnDotPos = document.domain.indexOf( "." );

if(lnDotPos>=0)document.domain = document.domain.substr(lnDotPos+1);



Data flow in our exercise:

The WebDynPro Sender application will pass the Event parameter .The Passed parameter will be captured in WebDynPro Receiver application and SAP UI5 application.


Sample Exercise:

WebDynPro application creation:

    1. Create the WebDynPro project in SAP Netweaver Developer Studio.

WebDynpro Porject Creation.png

Sender Application creation:


          2.     Create the “EventSender” WebDynPro application.

          3.     Create the Component , Window and  View for the “EventSender” Application.

          4.     Create Input field in Sender View and bind the input field to the context value attribute.

          5.     Create the “show” button and specify the Action for the “show” button.

Sender App Creation.png

          6.     Raise the Portal Event:

                  You can fire a portal event anywhere in your WebDynPro application.

                  In our exercise we have sent the event to the client in onActionShow Event Handler.

OnActionShow Event Handler:


public void onActionshow ( wdEvent )


String nameval = wdContext.currentContextElement().getName();  "","show", nameval);



Listener Application creation:

          7.     Create the event Listener Application in the created Project – ‘WebDynPro_Portal_Event’ Project.

          8.     Create the Component, Window and View for the EventListener Application.

          9.     Once Created the Sender and Listener application, the structure will be look like below.


webdynpro Project Structure.png

          10.     Create the ‘Text View’ for print the entered value in ‘sender view’ and bind the text view  to the 'context value attribute' in the ‘Listener View


listener view.png


          11.     Subscribe the Event by write the below code in the Listener View controller ‘WdInit’ method.


public void wdDoInit ()


//@@begin wdDoInit()







          12.     Then Create the Event Handler Action along with ‘dataObject’ parameter and trigger this action from the WDPortaleventing.Subscribe API.

receiver action.png


          13.     Then Read the data Object and set it to the context value attribute for print the entered value in the eventSenderView.


public void onActionReactPortalEventing( wdEvent, java.lang.String dataObject )


//@@begin onActionReactPortalEventing(ServerEvent)







         14.     Deploy the created WebDynPro Project to the server.

Creation of the PCD Components:

          15.     Create the SAP WebDynPro iView separately for above created applications and assign it to the page and preview it.

Webdynpro result.png


As a result we can print value in receiver WebDynPro application which is passed from WebDynPro sender application.



Capture Value in SAP UI5 Application which is passed from the WebDynPro Sender APP:

SAP UI5 Application:

          16.     Create the SAP UI5 application project along with the View.

          17.     Create the View and Viewcontroller for the created project.

UI5 app Creatition.png



          18.     Download the epcfproxy.js file from the ECC system.

             Path for download the epocfproxy.js

             SE80-> click on MIME Repository  -> browse to SAP->BW->BEx->JavaScript->epcfproxy.js.


EPCF donwload.png

          19.     Add the epcfproxy.js file in your SAP UI5 project and Specify the path of the epcfproxy.js file location  in index.html




          20.     Subscribe the event in the script tag inside the index.html.

For domain relaxing, we have included the respective code before try block.

The highlighted code will subscribe the event and print the value in the alert message.



                  var entered_value ;

                  var lnDotPos = document.domain.indexOf( "." );

                  if(lnDotPos>=0)document.domain = document.domain.substr(lnDotPos+1);



                                                                                                                                                                              EPCMPROXY.subscribeEvent("","show", evtenthnd);







                  function evtenthnd(event)


                           entered_value = event.dataObject;              

                           alert("The Entered Value in Web Dyn Pro app is----->"+entered_value);

                          var jsonModel = new sap.ui.model.json.JSONModel();

                          jsonModel.setProperty("/entered_value",entered_value );                                         


                          var app = new sap.m.App({initialPage:"First"});

var page=sap.ui.view({id:"idFirst1",

                           viewName:"com.india.techm.view.First", type:sap.ui.core.mvc.ViewType.JS});










    If you want to explore more on the received parameter fro WebDynPro, then proceed to create the below UI also.


In our sample exercise we are printing the value in the “FirstView”.

For that , we are using property binding in JSON Model for set the received parameter in our index.html.



     21.     Get the JSON model from the core and read the binded value and print it on the Input field.


                createContent : function(oController) {


                                  var aControls = [];                                                  


                                  /**CREATE THE UI**/

                                  var lab1 = new sap.m.Label("lab1", {text:"Entered First Name" , textAlign:"Left" , width:"250px"});

                                  var inpt3 = new sap.m.Input("idinpt3");

                                  var hbox1 = new sap.m.HBox("hobox1",{items:[lab1,inpt3]});


                                  /**READING THE JSON MODEL AND GET THE VALUES**/

                                  var julimodel = sap.ui.getCore().getModel("frstModel");                                    


                                  var frstNamenam= julimodel.getProperty("/entered_value");                                                            

                                  var frstnmeId2 = sap.ui.getCore().byId("idinpt3");


                                  /**SET VALUE TO THE INPUT FIELD**/



                                  return aControls;



Upload the SAP UI5 Application in to Gateway server:


          22.     Once the UI5 application has developed, then deploy this application in to the gateway server.

      • (Login in to Gateway server and Execute SE38-->Execute /UI5/UI5_REPOSITORY_LOAD program -->Uploaded the SAP UI5 Project).



          23.     Create the UI5 iView / BSP iView / URL iView for invoke the uploaded UI5 application.




          24.     Assign the above iView to the already created page.




          25.     Preview the Page


              Enter the Text in input box of the WebDynPro ‘Sender application’ and click on the ‘Show’ button .


As a result the entered value in Sender application will be displayed in the WebDynPro Listener application and SAP UI5 application.





About the author:

I have 11 years of IT experience working as an SAP consultant. I’m currently employed by TechMahindra and worked on projects in various geographies. Have experience in SAP Portal, Java DynPro, Basis Support, SAP UI5 and SAP FIORI.

Quite often SAP Enterprise Portal is used by a company to build up its own intranet portal: in this case the developers doesn't have to deal with public search engines (Google, Bing and so on) because the portal is reachable only inside the corporate intranet.
But if you build up a public internet portal you have to take care of these topics if you want the users find the site over the whole internet.


By standard SAP Enterprise Portal doesn't support search engines user agents: if you try to access your portal installation simulating a search engine bot (googlebot or bingbot) the following message appears:


user agent support.PNG


To simulate the search engine bot you can use the powerful User Agent Switcher Chrome extension (link) that is able to simulate the most common user agents string (mobile browsers too).

The extension is available also for Mozilla browser (link).

If you choose for example google bot and try to open your portal you'll get the error above.


The reason of this error message can be found in the "Supported User Agent" property of the portal objects: if you open a pcd object (iview, page, layout and so on) you'll find this property filled with one of the following values.


supporteduseragent values.PNG


As you can see there is no entry for the search engine user agents and this is why our portal can't be displayed by Google.


To solve the issue SAP released a note that explains the solution: you have to add the user agent string you need to support into this property. The note suggests to make a mass property find and replace on the pcd objects to put the desired value for the supported user agent property: if you put (*,*,*) the object will support any user agent string passed in the request.


That's it, problem solved! If you open the object after the find and replace you'll see the new property value.

It's so easy, do we need another boring and useless blog post on this?


Perhaps it's not so easy as the note says.


Suppose you need to change another property on the portal object: for some reason you need to change the iview height or the show tray property; once you opened your object, changed and saved it, you can notice your supported user agent custom value gets lost.

This happens because the (*,*,*) value isn't available in the list of the possible values for the property then, if you open the object in change mode, the value isn't recognized and is replaced by one of the valid values. So bad!


To make it work properly you need to extend the SAP proposed solution adding the new value to the dropdown list.
You can do it working on the metadata of the property with the PCD Inspector Tool (here you can find the PCD documentation on sap help site).


The easiest way is to modify the metadata in the core objects so the changes are inherited in all the derived objects.

You can find the core objects in the following pcd path: portal_content/


pcd inspector.PNG


It should be enough to change the metadata values in iview, layout and page objects.

To change the metadata open the propEditor for the selected object (e.g. iView), select supportedUserAgent property and select viewMeta menu





A new window will open with all the property metadata , scroll down to the bottom and find the SupportedUserAgents-validvalues property:


Supported useragentmeta.PNG


Click edit and change the property adding the required user agent string. To enable all the possibile user agent you have to insert (*,*,*) value.

According to the field policy you have to add the prefix 7/ where 7 is the length of the string, then the complete new value for the property will be:


47/(MSIE, >=5.5, *) (Netscape, *, *) (Mozilla,*,*)79/(MSIE, >=5.5, *) (Netscape, *, *) (Mozilla,*,*) (Safari, >=3.1, *) (Chrome,*,*)16/(MSIE, >=5.5, *)30/(Netscape, *, *) (Mozilla,*,*)18/(Safari, >=3.1, *)7/(*,*,*)


Save and make the same changes to all the pcd objects you need, then try again to enter you portal as a search engine bot: it will work now!


Following this steps makes your portal indexable by search engines and, compared to the sap note standard solution, you won't have to worry if you make subsequent changes to the portal objects.

On the other side this is isn't a perfect solution because it makes changes on sap delivered objects: if a portal patching or upgrade occurs and the supporteduseragent property metadata is affected the changes would be ovewritten so you have to remind to apply again these changes.

I wanted to share my solution because I didn't find any reference on this topic not even in the forums: I hope this will be helpful for the ones will face this issue during development.

Feel free to comment or suggest any improvement or alternative solution if you know!


Filter Blog

By author:
By date:
By tag: