Skip to Content

When you start developing new Web Dynpro applications, there is sometimes the wish to reuse existing non Web Dynpro applications and to put together all the content (both the Web Dynpro and the non Web Dynpro) to a new “application”.

In general there are several possibilites how to do this within a Web Dynpro application:


1) Using the IFrame UI element


The Web Dynpro UI library offers a IFrame UI element, which allows you to add an IFrame to your Web Dynpro UI containing any URL. This is of course a very easy way to embedd for example any existing application into your Web Dynpro application.

But there are some restrictions using the IFrame UI element. With the current relase the IFrame UI element is only helpful for really simple and STATELESS applications. If you want to display a stateful application inside the IFrame UI element, this is not possible right now, due to the fact, that the IFrame is reloaded with each request/response cycle. Therefore you would loose the “state” of the application running in the IFrame UI element.

A solution could be of course to store the “state” of the application inside the IFrame UI element on the server. But to achive this you have to change in most cases the existing application.

Another restriction is the communication between the Web Dynpro application and the application running inside the IFrame UI element. There are no client-side possibilities like the portal client-side eventing (I will describe this later) and therefore you have no chance to share data between the Web Dynpro application and the application running inside the IFrame UI element.

Therefore we strongly recommend NOT to use the IFrame UI element. Only in special cases (the embedding application is simple and statelesss) it could make sense doing that.


2) Starting the non Web Dynpro application inside a second browser window


3) Putting it all together on a portal page


The SAP Enterprise Portal 6.0 offers a rich set of functionality to put content of different types together to one page. Therefore the easiest way to put together your Web Dynpro applications and any existing non Web Dynpro application is to define a page containing all the applications.

To do that you have to create iViews for each of your application. There are a lot of different types of iViews available (like iViews displaying a URL, iViews displaying BSPs, ITS transactions or also Web Dynpro applications).

After you have created the needed iViews you have to define a portal page containing all the needed iViews. You have now a lot of advantages:

    • All applications running in the iViews on one page can use portal client-side eventing to communicate between each other and to share data.

    • All applications running on the page (in different iViews) could use the central session management of the portal platform, which for example makes sure that all applications are destroyed if the user leaves the page.

    • You can put the page into different worksets or roles to define a easy-to-use navigation structure to all of your content you want to provide.

All in all this should be the way to go.


Summary


If there is the need to put togeher non Web Dynpro content and Web Dynpro content you should use the capabilities of the SAP Enterprise Portal 6.0. Using the IFrame UI element or an external browser window could be only a solution in some very specific use-cases.

To report this post you need to login first.

2 Comments

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

  1. Cemal Salman
    Hi,

    you are right. A portal page to integrate several kinds of contents is in general the best way.
    But how can you handle dynamic replacement of an iView of a page (the page contains more than one iView) by another one by using the Portal navigation service? If I navigate to the target application with mode WDPortalNavigationMode.SHOW_INPLACE, the content of the page at all is replaced by the target iView. Is there a possibility to access/replace only the desired iView of the page?

    Thanks.
    Cemal

    (0) 
    1. Jochen Guertler Post author
      Hi,

      yes this is a good question – the only solution in NW04 is to navigate to a page containing also the new iView (i.e. the iView you would like to displays). This of course means that the running WD app on the original page is restarted.
      In the next NW release we provide here a much more powerful option to manipulate the page running the WD iView from your WD app.

      Best regards

      Jochen

      (0) 

Leave a Reply