FPM Application is nothing but Embedding Webdynpro components precisely speaking Component interface views in FPM component (FPM_OIF_COMPONENT……) . What if we need embedding fpm aplication in webdynpro application.Let see how can we achieve this.
What I would like to explain:
1.Embedding FPM Application in Webdynpro application
2.How to exchange data between them
What I have done:
I created simple FPM application with webdynpro component as UIBB with one input field and button as below.
I embedded above application in my webdynpro application as below.
If you enter name and click on Go to Fpm then name will transfer to FPM and appear that name in input field and vice versa.
Go through http://www.youtube.com/watch?v=VuwP9_EbAPw
What needs to be done:
1.Go to fpm application configuration and find configuration ID of FPM_OIF_COMPONENT.
2.Create a usage for component FPM_OIF_COMPONENT within the embedding component.
3.Embed the Interface View FPM_WINDOW within view.
4..Create Used component in WDDOINIT method of component controller. Here you have to provide configuration id that find in the first step.
You can’t pass any configuration key for the IDR (header area). Therefore the header is displayed
without any configuration settings. This means you have to do all header settings programmatically
at runtime .I set application title as below
Up to now we embedded the fpm application
From webdynpro to fpm:
1.Set the parameter values with data that you want to be exchanged and raise FPM event.
In my example I assigned action to Go to fpm button and in action handler I read the input value and set that value to event parameter ‘NAME’ and Raise event ,’WD’
2. Retrieve parameter value which set above in method Process_event of one or more UIBB and use that value as we like.In this example I retrieve the value and set it as input value of UIBB
From FPM to Wedynpro:
1.In this case it is not possible to send data by raising event as above because webdynpro component which is not part of fpm application cannot participate in fpm eventloop. We can do it by setting application parameter instead of event parameter .
In my application I assign event id ‘FPM’ to Go to WD button,and In Process_event of that UIBB I am checking for event ‘FPM’ and getting input value and setting the application parameter ‘NAME’ value to this value .
2.We can retrieve application parameter and use that in any one of the method.
I do it in WDDOMODIFYVIEW and set the input value with retrieved value
I just used simple example ,we can exchange complex data using same process.
We can set the parameters values in other methods also (not all methods) ,No need to use same methods.
I used OIF plan.We can do it similarly other floorplans
There are some limitations using this technique:
1. FPM allows only one instance running at the same time within one internal mode. Therefore you
can’t embed more than one ‘FPM application’ at the same time. It’s possible to switch the eembedded
‘FPM application’, replacing one ‘FPM application’ by another. You can assure this if you only use
one Usage to an FPM component within your application. This forces you to delete the old FPM
component before creating a new one.
2.You can’t use application parameters for the FPM as the application is now unknown to FPM.
I am attaching code,go through it if possible.