Embedding Enterprise Portal content in another webpage
Of course the SAP NetWeaver Enterprise Portal is the only portal framework you’ll ever need, but what if you have an existing website – based on a third-party or custom framework – and you want to embed content from your Enterprise Portal there (either the full EP page or a specific iview)? If using FPN isn’t an option for you, you might proceed like this: you determine an appropriate URL to launch the content (for instance, for a BW report, you use something like: http://portal.domain.com/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fcom.sap.pct!2fplatform_add_ons!2fcom.sap.ip.bi!2fiViews!2fcom.sap.ip.bi.bex?QUERY=ZTEST ), and specify this URL as the source of an iframe. Then you call your webpage and … you encounter lots of difficulties. Difficulties like:
– if calling application integrator content (e.g. a BW report, BSP, or WebDynpro), you may see an error like ‘Application <X> will run with a wrong client window id’. You may also experience session management issues.
– if you’re calling the EP content from SAP BusinessObjects InfoView, the content doesn’t return and the page stays loading.
These steps are already documented in the guide
. The document is targeted at IMB WebSphere, but the relevant steps are applicable to all siutations where EP content is loaded in an external iframe. The requisite steps are described in particular in point 220.127.116.11.
As this document might not be easily found by someone facing such an issue, especially for a platform other than WebSphere, I want to highlight the relevant steps in this blog. Please note that integration of content from two different portals might present complexities across multiple points, and other issues like SSO, cross frame scripting, theme integration etc. are not considered by this configuration.
Step 1. Define Your Alias
The alias must be set in the web.xml file, located in the directory \usr\sap\<SID>\<NO>\j2ee\cluster\server0\apps\sap.com\irj\servlet_jsp\irj\root\WEB-INF.
In the web.xml, make a copy of the init-param element whose param-name element has the value portal. In the copy, change the param-name value to portal/interop, and then append nested_window=1 to the value for param-value.
The following is an example of such a init-param element:
You need to restart the WAS Java after enabling the ‘interop’ link.
Step 2. Update Your Links
Secondly, you need to adapt the link which opens the EP content to include the the interop alias. Whenever you enter the portal with the URL http://portal.domain.com/irj/portal/interop, the portal works in nested mode. The best approach is to enter this alias in a URL using the NavigationTarget syntax, something like this: