cancel
Showing results for 
Search instead for 
Did you mean: 

How to pass data from standard FPM UIBB to custom Webdynpro application?

csayak
Explorer
0 Kudos
1,274

Requirement: To add a new 'Additional Info' tab in the Change Maintenance Order FIORI screen. The screen will contain a custom table with the Operation ID & Material number from Operations screen and some other fields.

Steps done:
1. We have created a Custom Webdynpro component and created a table in the main VIew.
2. We have opened the component configuration 'EAMS_WDA_ORDNTF_OIF_CFG' under the application configuration 'EAMS_WDA_ORDNTF_OIF' and enhance it using the option available in the Additional Functions.
3. After enhancing the standard Comp. configuration, we have added a new Main view & a sub view and inside the sub-view, we have added a UIBB where we have defined our custom Webdynpro component. The new webdynpro application is now appearing in the FIORI screen.

We are stuck with the data transfer. The operations screen has a material tab where the material details are stored. We have got the feeder class and we know that we can get the data from the get_data method but we do not know how we can pass the data to our custom webdynpro component so that we can bind it to the table and show it in the screen.

We am unable to use wire, as when we add a new wire and add our custom webdnypro component in the component details it gives an error stating that the key is not valid for wiring.

Further, there will be some user actions on the table after which we would like to save the data on click of the save functionality.

Any help would be much appreciated.

simon.hoeg thomas.jung Hi Experts, any inputs will be a great help.

Accepted Solutions (0)

Answers (3)

Answers (3)

nidhisharmabl
Discoverer
0 Kudos

Hi csayak,

I am also facing same issue.Can you tell me how did you solve this?

Thanks & Regards,

Nidhi Sharma

simon_hoeg
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hello csayak,

as I mentioned above, this is really no problem. Either you collect the data of the two sender UIBBs in an ABAP singleton, where the receiver UIBB can fetch it.

Or you use the FPM Event Loop, with two FPM Events raised (for instance) in the Feeder method PROCESS_EVENT:

   data:   lo_fpm  type ref to if_fpm,
           lo_event type ref to cl_fpm_event.
           create object lo_event
             exporting
               iv_event_id = <MY_EVENT_ID>.
           lo_event->MO_EVENT_DATA->set_value(
               iv_key   = <MY_KEY>
               iv_value = lv_value).
           lo_fpm = cl_fpm_factory=>get_instance( ).
           lo_fpm->raise_event( io_event = lo_event ).

and then received in IF_FPM_UI_BUILDING_BLOCK methods PROCESS_EVENT or PROCESS_BEFORE_OUTPUT via importing reference IO_EVENT, respectively IO_EVENT->MO_EVENT_DATA

Best regards,

Simon

simon_hoeg
Product and Topic Expert
Product and Topic Expert
0 Kudos

Dear csayak,

if the WebDynpro component is implementing the IF_FPM_UI_BUILDING_BLOCK interface, then it takes part in the FPM Event Loop. In this case you can transfer the data via FPM Event.

If the WebDynpro component is not implementing the IF_FPM_UI_BUILDING_BLOCK interface, then you may implement your own infrastructure, for instance a ABAP singleton, or the use of an ABAP Push Channel and /or ABAP Message Channel integration.

Best regards,

Simon

csayak
Explorer
0 Kudos

Hi simon.hoeg
Thank you for replying to my query
Our custom WDC is implementing IF_UI_BUILDING_BLOCK. Can you please give me some examples of how I can use the FPM Events to read the data. The screen from where I want to fetch the data has 2 GUIBBs and they also have a wire connection between them. I want to get data from both these GUIBBs into my Webdynpro. Can you suggest any example of this type so that I can refer?