Embedding an FPM (Application) in Webdynpro Application

A+ A-

Hi ,

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.

 

Capture.PNG

 

I embedded above application in my webdynpro application as below.

 

 

Capture.PNG

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.

 

Capture.PNG

2.Create a usage for component FPM_OIF_COMPONENT within the embedding component.

 

Capture.PNG

 

3.Embed the Interface View FPM_WINDOW within view.

Capture.PNG

Capture.PNG

4..Create Used component in WDDOINIT method of component controller. Here you have to provide configuration id that find in the first step.

 

Capture.PNG

 

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

Capture.PNG

Up to now we embedded the fpm application

 

 

B.Exchange Data:


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'

 

Capture.PNG

Capture.PNG

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

 

Capture.PNG

 

Capture.PNG

 

 

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 .

Capture.PNG

 

 

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

 

Capture.PNG

 

Capture.PNG

 

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.

 

 

Regards,

Sreenivas.