Quantcast
Channel: SAP Enterprise Portal
Viewing all 218 articles
Browse latest View live

Enabling URL aliases in SAP URL iViews

$
0
0


INTRODUCTION


URL iViews

 

Mostly all projects in SAP Portal use iViews that retrieve content directly from a Web page.

 

A URL iView is a collection of Meta attributes, one of which is the URL to the information source. A built-in browser available in the URL iView Wizard and Editor enables you to navigate easily within a Web site in order to retrieve the URL of the source Web page to display in the iView.

 

There are some scenarios where URL iView’s are directly referring intranet link like a help link to SDN.( www.sdn.sap.com). For these the iView properties do not change on migration to different portal systems in landscape.

 

However there are scenarios where SAP Portal interacts with many different SAP systems like

 

  • SAP Business Warehouse
  • SAP Solman,
  • SAP Governance Risk and Compliance solution ( GRC)
  • SAP ECC and so on.

Users may use BW reports or launch other SAP systems using the links from SAP Portal.

 

For E.g. , URLs for the iView’s may start with

 

Fin and HR internet

https://<SAP ECC server name>/sap/bc/gui/sap/its/webgui/!

SAP BW Reports

https://<SAB BW server name>/sap/bw/BEx

GRC Reports

https://SAP GRC Server name>/sap/bw/BEx

Solman

https://<SAPSolman Server name>/sap/bc/webdynpro/sap/

 

 

In above case the server names will change as per landscape and environments. They will be different for Development, Test and Production.

 

If the links are copied statically then there has to be manual action during migration of these iViews to change the URL for them.

 
 

Technical Solution:

 

To avoid the manual action and as a result any issue with that during migrations we can define URL aliases in Portal for all such backend systems.

Basis need to create http systems for all such backends and these systems should have proper parameters

1) Hostname – URL of the backend system

2) Port number – if any

3) Protocol- HTTPS

 

Once the httpsystems are configured the URL iViews need to be modified to get the URL from this system.

 

 

1.       System Creation


Basis needs to create Http Systems:

 

1) Go to System Administration- System Landscape and create systems with below parameters

A. Hostname – URL of the backend system

B. Port number – if any

C. Protocol- HTTPS

 

1.png

 

Once all backend systems are created you can check the httpsystems under System type.

 

2.png

 

 

2.  iViews Modification

Once the systems are tested for connection, we need to modify the iView properties :

    1. System- Select the required HTTP system as per backend
    2. Check the box “ Use system in URL”
    3. URL has static content of URL which does not change with system landscape migrations

 

 

3.png

 

The URL will be called with the link as https://<SAB BW server name>/sap/bw/BEx at runtime.

 

3.   Migration :


During migration of iViews, Basis needs to create the systems in respective environments. There will be no manual action for iViews and they will point to corresponding backends as per landscape automatically using URL alias.

 

 

Conclusion

Thus we can have URL aliases for URL iViews to ensure no manual action for changing the iView’s during migrations and hence maintenance of iViews becomes easy.

Also in case the server names changes in future we just need to update the System alias for httpSystem and need not change all iViews using that server.


EP: roles permissions lost in KM folders after an upgrade

$
0
0

Background: You have upgraded to a newer Enterprise Portal version and the roles and permissions previously maintained are now lost in KM documents folders and rooms however the groups and users which were previously assigned still remain.

 

 

Overview:When you assign role permissions to the folder after the upgrades completion all functionality operates accordingly however the older previously assigned roles and permissions are now lost.

 

 

Issues & Why:Inside the /root/UME/roles involve custom roles. Such behavior may be caused due to permissions on your resources not being inherited from the collection <i>/documents/documents</i> due to a configuration discrepancy.

 

 

 

blog5 kmpermissions.PNG

 

 

 

 

 

 

Evironment:EP Release Independent SAP NetWeaver

 

 

Solution: The permissions should not be effected by an upgrade procedure. Please check if all the permissions on your resources are in fact inherited from the collection <i>/documents/documents </i>. If configurations are maintained correctly the means of the resolution is to correct the role permissions is to reset them once more manually.

 








EP: UWL can we disable the cache? An Overview

$
0
0

Background:  You would like to disable the UWL cache to support a preferential setup in  your system.

 

Is it possible: In short the answer is yes. However only to a certain extent.

 

How to we disable it?

 

  1. Log into Enterprise Portal.
  2. In the portal, navigate to System Administration -> System Configuration  -> Universal Worklist & Workflow -> Universal Worklist -> Administration.
  3. In the list of systems,  select the connector for which you do not want to use the UWL cache and choose  Edit.
  4. In the list of properties displayed below, you do not see the Use Cache so that to  disable it, as shown below:

 

Limitation of cache disablement: You can switch off the UWL cache for BPEMUWLConnector and custom UWL connectors in the UWL configuration. This may be used, for example, if the application runs on the same application server as the UWL. In this case the access to the back end can be faster without using the cache database even if all iView related actions require direct back-end calls.

 

Reported Issue: When you try follow the steps to disable to disable the cache you are essentially unable to "uncheck" the checkbox

 

Important: In cases where cache disablement is not possible, in the properties to be edited there is no Use  Cache for the selected connector. Switching the cache off is supported for BPEMUWLConnectors and custom connectors only.

 

BLOG6 UWL cache.PNG

 

 

Key Points

 

  1. You can switch off the UWL cache for BPEMUWLConnector and custom  UWL connectors in the UWL configuration.
  2. This is feasible if the application runs on the same application server as the UWL. In this case the access to the back end can be faster without  using the cache database even if all iView related actions require direct back-end calls.

To enable Theme editor(if not visible) in SAP Enterprise Portal 7.4

$
0
0

This blog post is to suggest one of the solutions to enable theme editor in SAP Enterprise Portal in case the administrators are not able to view the same by default and are able to see a blank page instead.

 

Consider the scenario where in the administrator needs to view in the theme editor to form a customized theme for the portal but is not able to view the same.In such cases ,the following steps needs to pursued:

 

 

 

  1. Log on to SAP Netweaver Administrator, navigate to: Configuration->Infrastructure->ApplicationModules.
  2. In the Overview tab, filter the Application List. In the name field, type lafand then press Enter.
  3. Select the lafservice from the application list->Click on More Actions->Select View Corresponding to Application
  4. Once redirected to Start and Stop Applications page, click on the Restart button to restart the com.sap.portal.themes.lafservice and refresh to check the status of the service by clicking on Refresh.
  5. Once the service is restarted successfully, logon to SAP Portal->ContentAdministration->PortalDisplay->PortalThemes->ThemeEditor->ClickonOptions->Refresh

 

 

The theme editor would be visible now.

Hope this solution helps out!

How to avoid Confirm Certificate Popup while accessing roles in portal

$
0
0

This blog post is to suggest one of the solutions to disable the  "Confirm Certificate" pop-up window which arises when the administrator tries to access the roles assigned in portal.

 

Consider the scenario where in the end-user(/administrator) is accessing roles assigned to their user id and a confirm certificate pop up window arises as shown below:

     Confirm Certificate.jpg         

                                                                            Fig.1.1:Confirm Certificate Pop Up Window

 

To avoid this pop up,we should set the profile parameter to the correct value in the backend systems.

For example:In case of displaying Universal Worklist in the portal,we create a role named Home.So while accessing the role "Home" ,the end user encounters the above mentioned pop up.On further probing into the issue,a profile parameter(set in the backend) based on which the pop up is shown came into picture .

Profile Parameter.jpg

                                                                                               Fig .1.2:Profile Parameter

 

In this case ,to disable the confirm certificate popup ,we have set the above mentioned profile parameter to the value , 0 ;i.e

              

                                                                      icm/HTTPS/verify_client=0

 

 

in the backend ECC system ,so that the next time when the user accesses the portal role Home, the Confirm Certificate window does not pop up.

The parameter set would look as follows:
                                   RZ10.jpg

 

In a similar way , we need to set the above profile parameter for all the backend systems so that the Confirm Certificate window does not pop up.

 

Hope this helps .:)

 

 

EP: Sessions Part 1 (RFC, GUI, HTTP Plugin) A Brief Overview

$
0
0

Background:As we know when we are using the Enterprise Portal we often encounter issues related to session management and these can occur for a wide range of different reasons. The purpose of this blog is to provide a short and simplistic overview on what type of sessions are involved in terms of association with the Enterprise Portal. In my next blog I will provide an overview on some of the most commonly encountered session issues.

 

Overview: From an end users perspective utilizing the enterprise Portal is a straightforward process. We simply logon, fulfill our work obligations and logoff. As an end user we are only concerned with the graphical representation of the Portal that we are delivered with through our monitors representation and we are not truly troubled by what underlying functionality is taking place.

 

What & Why: If you have ever encountered a "User Session" or "Cookie Rentention" issue with the Portal then you are most likely familiar with the transaction of SM04.

 

SM04:  Essentially SM04 as a transaction provides us with a view on the different connection types. With reference to SM04 the connection type means what kind of user (and their connection) is connecting to the SAP System e.g. the Portal.

 

Connection Types: Connection types include that of RFC, GUI, Plugin (HTTP/SMTP).

 

RFC Connections: This particular connection type references users which are connected up to the system (Portal) via an RFC Connection. (See RFC's using the SM04 transaction), a simplistic view on a RFC connection type user is someone who is utilizing the connection using external based RFC clients.

 

GUI Connections: As the title implies this particular connection types makes referneces to users who utilize access to the Portal via a GUI based connection platform.

 

Part 2: Common Issues coming soon

 

 

 

 

 

 

Portal User Idle time out - NW Portal 7.4

$
0
0

Hi,

 

We all know that there is no standard solution provided by SAP to log out an idle user.After a number of futile search attempts in google/SDN for a solution, I set about to find a solution on my own. Find below the steps to create the simple portal component which tracks the user inactivity.


I have already  seen couple of solutions for this but they have minor issues and did not suit my requirements.


1. Portal user idle timeout using dialog windows - Client side solution => this solution does not seem to work for AJAX Framework in recent releases and did not track the user clicks, mouse movement etc. It worked only for Navigation event in portal. Basically, it will consider the user idle if he does not navigate. The user will be timed out

2. http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/309379b6-bb9b-2d10-feb1-91f2a7078574?overridelayout=true => Though this one says that it can track the user clicks, mouse movements etc, the logoff functionality did not work in NW portal 7.4.


My requirement is to track the user events in the content area as well before deciding if the user is idle or not.


The portal component which I have developed is very basic and uses Jquery. It tracks Key press, mouse movements in content area of the portal framework.


1. Go to Development Infrastructure perspective and create a EP DC


Screen Shot 2015-07-27 at 15.48.20.png

Screen Shot 2015-07-27 at 15.50.40.png

 

Click finish.

 

2. Create a 'Portal Application Object' in this EP DC.

Screen Shot 2015-07-27 at 15.52.33.png

 

Click Next. Select the DC created in step 1

Screen Shot 2015-07-27 at 15.52.41.png

 

Click Next. Choose Portal Component -> JSPDynPage

Screen Shot 2015-07-27 at 15.52.58.png

 

Click Next.  Enter the JSP class, package and file name.

Screen Shot 2015-07-27 at 15.53.19.png

 

Click Finish.

 

3. Open the TimeOut.jsp file under dist/PORTAL-INF/pagelet folder and copy the code below. Make sure that you place the relevant Jquery file under /scripts folder.

 

<html>

<head>

<% String mimeUrl = componentRequest.getWebResourcePath(); %>

  <scripttype="text/javascript"src="<%=mimeUrl%>/scripts/jquery-1.11.2.min.js"></script>

<scripttype="text/javascript">

var idleTime = 0;

$(document).ready(function () {

    //Increment the idle time counter every minute.

    idleInterval = setInterval(timerIncrement, 120000); // 2 minute

 

    //Zero the idle timer on mouse movement.

    $('body').mousemove(function (e) {

     idleTime = 0;

     document.querySelector('.content .value').innerHTML = idleTime + "mouse moved";

    });

 

    $('body').keypress(function (e) {

        idleTime = 0;

        document.querySelector('.content .value').innerHTML =idleTime +  "key press";

    });

 

 

 

    $('body').click(function() {

       idleTime = 0;

       document.querySelector('.content .value').innerHTML = idleTime + "mouse moved";

    });

 

});

 

 

function timerIncrement() {

    idleTime = idleTime + 1;

    document.querySelector('.content .value').innerHTML = idleTime;

    if (idleTime > 0) {

        if (confirm('Your session is inactive for the last 2 minutes. Press OK to log off. Press cancel to extend the session.') == true) {

          window.location.assign("/irj/servlet/prt/portal/prtroot/com.sap.portal.navigation.masthead.LogOutComponent?logout_submit=true");

      

        } else {

        idleTime = 0;

        document.querySelector('.content .value').innerHTML = idleTime

        }

  

     

    }

}

</script>

</head>

<body>

<divclass="content">Status:  <spanclass='value'></span></div>

</body>

 

</html>

 

4. Build and Deploy the DC to the server.

 

5. Create an iview for the deployed application. You can preview and test before embedding it in the portal framework.

  Preview the iview and do not do any action on it. You can see the pop up below after 2 minutes.

 

 

Screen Shot 2015-07-27 at 16.04.47.png

 

6. Now you can place this iview in the framework page under 'Technical Hidden iviews Container'.

 

Screen Shot 2015-07-27 at 16.04.27.png

 

7. Save the Framework page. Log off and login to the portal.

 

As you can see, code is simple and timings and messages can be customised as per your requirements.

I have placed the following HTML element in the code so as to check if the mouse movements and user clicks are tracked or not.

 

<divclass="content">Status:  <spanclass='value'></span></div>

 

Since you have placed the iview under hidden iviews, you will not be able to see this HTML element. If you want to debug , please move the iview to one of the other containers and make the component visible on the screen.

 

Feel free to comment any improvisations on this approach.

Transitioning Portal Content from Quirks Mode Framework Pages to Standards Mode Framework Pages

$
0
0

Introduction

 

From Internet Explorer 8 onwards, Microsoft gradually shifted its strategy, moving from the old quirks mode concept towards full standards mode rendering. The limitation of this strategy is that you cannot run quirks mode content on the same page as standards mode content. The only way to do so is to render it in a new window.

This change of approach has caused many issues in SAP Enterprise Portal (and in any other Web applications that were implemented in the quirks mode environment). These issues and the ways to solve them are described in the following SCN blog http://scn.sap.com/community/enterprise-portal/blog/2014/09/03/ie-and-portal-standardsquirks-mode-evolution-or-love-hate-relationships).

Since the strategy of all Web applications is to move towards the standards mode rendering approach, SAP Enterprise Portal implemented new framework pages that fully support standards mode rendering: the Ajax Standard Mode framework page and the Fiori Framework page (FFP). For more information about these framework pages, see SAP Note # 2001910 (Ajax Framework Page standards) and SAP Note #2031108 (FFP). For FFP, you can also refer to the following blog SAP Fiori Launchpad in SAP Enterprise Portal: Overview Information.

The purpose of this document is to provide guidelines for content transitions from a quirks mode environment to a standards mode environment.

 

Terminology:

 

Quirks framework page– a framework page that specifies that the browser renders in quirks mode (IE5 quirks in IE10 and higher). For example, Classic Framework Page, Light Framework Page, Ajax Framework Page or any custom framework page based on the afore mentioned framework pages.

Standards framework page- a framework page that specifies that the browser render in standards mode (edge). For example, Ajax Standard Mode Framework Page, Fiori Framework page, or any custom framework page based on the Ajax Standard Mode Framework Page.


How Do I Set Up a Framework Page to Run in Either Quirks or Standards Mode?

To force browsers to render in your chosen mode, insert an out-of-the-box Browser Document Mode iView into the framework page and set the Browser Document Mode property of the iView to be "IE=5, IE=EmulateIE7" for quirks mode or "IE=edge" for standards mode (for more information, see SAP Note #1458799).

 

 

Standards mode support

 

UI Technology

Portal Versions

SAP Note

WD ABAP

7.02 SP15, 7.30 SP11, 7.31 SP5, 7.40

1753544

WD Java

7.30 SP 9, 7.31 SP1, 7.40

1854758

SAP GUI for HTML

7.00, 7.01, 7.30, 7.31, 7.40

1924378

BSP

Not supported

In process

BW

Not supported

In process








Content migration steps


A quirks framework page can contain three types of content:

  • Quirks mode rendering applications
  • Standards mode rendering applications ("Launch in New Window" property of the iView is set to "Display in separate headerless portal window (standards mode)").
  • Standalone running applications.

Steps needed for Quirks mode rendering applications


If the application has been implemented in an SAP UI technology which supports dual rendering and your portal version is one of the versions mentioned in SAP Note #1814711 then you don’t have to do anything! (Dual rendering means that the application supports both quirks and standards mode rendering. In the "Standards mode support" table above, you can see which technology supports standards mode, and in which versions.)

The portal notifies the backend of the standards mode environment and the application renders in the correct mode.

If the application is based on an SAP UI technology, which does not yet support standards mode, or if you cannot upgrade your backend, then you must set the iView\Page property "Launch in New Window" to "Display in separate headerless portal window". This mode will force the browser to open a new window rendered in quirks mode.

 

Diagram.JPG

 

Steps needed for standards mode rendering applications


If the application is rendered in a quirks mode rendering framework page, you have to set the property "Launch in New Window" of these iViews to "Display in separate headerless portal window (standards mode)" than no further action is necessary. The application will continue to function as before.

If you want the application to render in-place, then you can change the property "Launch in New Window" of the iView to "Display in Portal Content Area".

 

Steps needed for Standalone rendering applications


When we talk about standalone rendering applications, we mean that the iViews are launched directly in a separate browser window.

By directly, we mean that it is done without using the portal navigation API.

One example of direct launch is the following URL:

"<protocol>://<server>:<port>/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fcom.sap.pct..."

Another example is when executing the iView in "preview" mode (through iView\Page editor).

In SAP Notes 2098706, 2097861, and 2012705, we explained a new iView/page property, "Default Document Rendering Mode". You can set the value to either "Quirks" or "Standards" to force the required rendering mode in standalone scenarios.


EP: Sessions Part 2 (RFC, GUI, HTTP Plugin) Common Ground & Issues

$
0
0

Background: From my perspective one of the most commonly encountered Enterprise Portal issues seems to be that which involve session management. Now the term "session management" covers a wide range of different angles across a wide spectrum. Session management issues can involve the retention of Portal sessions, a faulty logoff mechanism or inadequate browser cookie handling.


Overview: From a high level perspective any session management issue that we may encounter, follows the underlying concept depicted in the image below.


BLOG7 session.PNG

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.

 

Important Point To Remember:


When session expires or 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.


How To Analyze a session issue:


Now taking what I have written above into account we know that the connection itself is not terminated but rather returned to the connection pool (The connection lifetime pool can be reset to a different value). So if you encounter a session issue the first thing to check is SM04 (transaction)


  1. 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 remain filled?
  2. Are you closing the browser after user logoff? 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 & Connected back-end systems). Although the 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 itself does not handle logoff. Instead your company Portal must raise the terminating event when logging off from the SAP Portal.

 

Session Release Agent (SRA) & Distributed Session Manager (DSM) Terminator


When executing the ITS services that access a component system (R/3) in the portal, there is the question how to close the sessions in the component system when the user closes the browser (the HTTP protocol is considered to be stateless). When the user closes the browser window or navigates to another position, the browser sends a mass request to a dedicated portal component to end one or more open sessions (by default DSM.Terminator). This component distributes the corresponding termination commands to the component systems. The Termination command then closes the server session.


To close the sessions, a small additional window is generated in the browser outside the visible screen area. This window is automatically closed after two seconds if the Transmission command has been processed. Since ITS-based services cannot be used directly in session management, the Automatic Server Session Termination works with a wrapper technique. A main page consists of:


  • An iFrame that displays the content coming from the ITS
  • A special script called the Distributed Session Manager (DSM) that is responsible for handling the session management on the page


Each content page (page generated by the ITS) includes JavaScript code that is processed in the browser once the browser has loaded the page. This script creates a new JavaScript object called SessInfo with a unique identification of the ITS session and the callback URL to which the SISP command is returned. Once the content page has been loaded into the iFrame, the SessInfo object is transferred from the content page to the main page and is captured there by the Distributed Session Manager (DSM). The DSM stores the SessInfo object in its own storage. When the user leaves the browser, navigates to another page, or uses the Back button, the DSM is activated (by receiving the browser event onunload). The DSM then sends termination commands to all registered callback URLs, resulting in a termination of the ITS session on the server.


Logging On/Off


As stated above your company Portal must raise the terminating event when logging off from the SAP Portal. To setup such a configuration the following appendix can be followed, referenced or used as guidance.


Appendix: JavaScript Code for Session Termination:

https://help.sap.com/saphelp_nw73/helpdata/en/19/667bae77684887bea80129800fd701/content.htm


Now the appendix outlined above deals with the actual "Logoff" command button option. Here we can find an overview on logging both on/off into Portal sessions and also some information on factors that prevent session termination via the browsers "X" option.


Logging ON/OFF The Portal

http://help.sap.com/saphelp_nw73/helpdata/en/48/f1494c7092404de10000000a42189b/content.htm

 

Logging ON/OFF The Portal (ii)

https://help.sap.com/saphelp_nw73/helpdata/en/48/bebd8e8697307ce10000000a42189b/content.htm


In the logoff section outlined in the first link above we see the following "Do not simply close your browser. Closing the browser leaves your portal session still working, until it times out. When working in a browser that supports multiple tabs, such as Internet Explorer 7 or Mozilla Firefox, if you close a tab in which a portal is running, the portal session is saved. If you then open the portal in a new tab, you are already logged on and need to first log off if you wish to log on with different credentials."

 

 

In my next blog posting in this series I will outline the full set of relevant solution documentation for session issues & the Enterprise Portal.


 

Note: This blog posting is part 2/3 in a series involving Portal sessions, Checkout the first part below:

 

http://scn.sap.com/community/enterprise-portal/blog/2015/07/24/ep-sessions-part-1-rfc-gui-http-plugin-a-brief-overview

 

Part 3 coming soon.....

Making your SAP Portal indexable by search engines

$
0
0

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/com.sap.pct/default_objects

 

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

 

viewMeta.PNG

 

 

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!

SAP EP 7.0 communication with SAP UI5

$
0
0

     SAP EP 7.0 INTEGRATION WITH SAP UI5    

                                                 THROUGH

     ENTERPRISE PORTAL CLIENT FRAMEWORK



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.


Solution:

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:


<script>

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

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

</script>

 

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.



dataflow.jpg

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 (com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )

  {

String nameval = wdContext.currentContextElement().getName();            WDPortalEventing.fire("urn:com.sap.tc.webdynpro.example.portaleventing","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()

WDPortalEventing.subscribe("urn:com.sap.tc.webdynpro.example.portaleventing","show",wdThis.wdGetReactPortalEventingAction());

 

//@@end

}

 

 

          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(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent, java.lang.String dataObject )

{

//@@begin onActionReactPortalEventing(ServerEvent)

wdContext.currentContextElement().setName(dataObject);

//@@end

}

 

 

 

         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

 

1.png

 

          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.

 

                  <script>                  

                  var entered_value ;

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

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

                  try

                  {

                                                                                                                                                                              EPCMPROXY.subscribeEvent("urn:com.sap.tc.webdynpro.example.portaleventing","show", evtenthnd);

                  }

                  catch(e)

                  {

                                  alert(e);                                  

                  }

                                                                 

                  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 );                                         

                          sap.ui.getCore().setModel(jsonModel,"frstModel");

                          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(app)

                                                                  {

                                                                                  app.addPage(page);

                                                                                  app.placeAt("content");

                                                                  }

                  }

                 

                  </script>

 

    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.


           First.view.js

 

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

 

                createContent : function(oController) {

                                  this.setDisplayBlock(true);

                                  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");                                    

                                  oController.getView().setModel(julimodel);                                        

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

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

                                 

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

                                  frstnmeId2.setValue(frstNamenam);

                                  aControls.push(hbox1);

                                  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).

2.png

 

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

 

3.png

 

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

 

4.png

 

          25.     Preview the Page

 

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

5.png

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

 

Reference:

https://help.sap.com/saphelp_nw73/helpdata/en/4a/2a0116ab9247dbe10000000a42189c/content.htm?frameset=/en/4a/2916943e7b044ee10000000a421937/frameset.htm&current_toc=/en/4a/ded71e279f4fa5870eb80b36019044/plain.htm&node_id=984

 

https://help.sap.com/saphelp_nw73/helpdata/en/4a/2a011cab9247dbe10000000a42189c/content.htm

 

http://scn.sap.com/community/enterprise-portal/blog/2014/09/05/sap-fiori-apllication-integration-with-sap-enterprise-portal

 

 

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.

How to Map a Traditional SAP Enterprise Portal Hierarchy to Fiori Launchpad

$
0
0

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

 

Motivation:

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.


Challenges:

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


Prerequisites:

  • 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.

 

HomePage.PNG

 

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

 

TileCatalog.PNG


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


HomePageCatalogSearchSales.PNG


  • 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:


TileCatalogSearchApp.PNG


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:


TileCatalogSearchByCategory.PNG


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


TileCatalogSearchBarSales.PNG


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:


HomePageGroupNav1.PNG


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:


AFP_ESS_Team.PNG


Let’s look closer on the hierarchy:


AFP_MSS+Zoom1.PNG


FLP on EP representation of MSS content:


  • Tile Catalog:


TileCatalog.PNG


  • Homepage:


HomePage.PNG

 

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


Categories.PNG


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

 

MSSWorkingTimesPorperties1.PNG


  MSSWorkingTimesProperties2.PNG


The result for our example looks like this:


TilesWithProperties.PNG


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.

 


EP: Sessions Part 3 Frequent Issues & Solutions

$
0
0

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?

 

Next..

 

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

http://wiki.scn.sap.com/wiki/display/ABAPConn/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

 

http://scn.sap.com/docs/DOC-55337

 

Remember

 

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.

 

 

Invoice Reference in Payment Document missing after reversal of payment document

$
0
0

Dear Experts,

 

 

We created an Invoice, then cleared it, Payment Document got generated. And if we reverse the Payment Document, a new reversal document gets generated and the cleared Invoice becomes open again.

 

 

The reference that the Payment Document had, for the Invoice is no more after it got reversed.

 

 

Now is there any way, where we can keep or get an update of the Invoice with the Payment Document even though if it's reversed.

 

 

We need a track of this as this is important to us for the Statutory Audit.

 

 

Please advice, as how can we get the details of Invoice Document.

 

 

Regards,

 

 

Amit Rana

SAP Enterprise Portal Integration with Successfactors

$
0
0

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.

Name.jpg

     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.

Ok.jpg

     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:: https://Demo.SuccessFactors.eu/sf/saml2/SAMLAssertionConsumer?company=Dev

Assertion.png

     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::https://Demo.SuccessFactors.eu/saml2/LogoutServiceHTTPRedirectResponse?company=Dev

logout.jpg

    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.

Unspecified.jpg

  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.

Cert-download.jpg

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 = https://Demo.SuccessFactors.eu/sf/start

     RelayState = https://Demo.SuccessFactors.eu/sf/start/xi/ui/home/pages/home.xhtml

URL.jpg

   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,

Pavan


EP: MongoDB Script Injection attack vulnerability has been identified.

$
0
0

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.

 

 

 

KBA 2015 1 MONGO.PNG

 

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.

EP: UWL Unable to delete a completed UWL Java Workflow Task

$
0
0

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



 

KBA1C.png


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.



 



EP: You have configured a Portal Activity Report & Page Hits are not recorded.

$
0
0

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 > com.sap.portal/activityreport.core -> Services -> ActivityReport. Go to “Customer Activity Reports” -> “Daily Activity Report by Page”.


PAR.png


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.

 


EP: Work Protect Mode popup causes second tab

$
0
0

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 -> com.sap.portal.epcf.loader - > 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 com.sap.portal.epcf.loader. Click on refresh.

How to set DOCTYPE on customized logon page EP 7.3, 7.4

$
0
0

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|https://cw.sdn.sap.com/cw/groups/sap-portal-ajax-framework?view=overview]).

 

For more info about this jar please, refer to 4.1.1 Create a Portal Application in this guide http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/001bfa1a-958e-2e10-c2be-d914f673e21e?overridelayout=t…

 

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

com.sap.portal.prt.util.PortalServletRequestWrapper, 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, justshow 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 http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/001bfa1a-958e-2e10-c2be-d914f673e21e?overridelayout=t…

 

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.

Viewing all 218 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>