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