cancel
Showing results for 
Search instead for 
Did you mean: 

Sharing data from FPM appln to WebDynpro Component

jitin_kharbanda
Participant
0 Kudos

Hello Experts,

I'm very new to FPM developments and I'm blocked in my development where I need to pass some data to the interface nodes of a web-dynpro component.

Scenario:

I've created a FPM configuration ZCONF_A and everything is designed  in FPM only using standard UIBB components, no web-dynpro component used.

There is a button on click of which I've to open a Dialog box.

For dialog box design in UIBB, I've assigned a web-dynpro component and its main window as I want to show my web-dynpro screen in a dialog box and I'm reusing an existing dynpro component.

I've already managed to call the dialog box on get_data event of my feeder class, but how can I pass the data to the interface nodes of web-dynpro component.

Please suggest.

--

Best Regards

Jitin Kharbanda

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello Jitin,

Sample code for Option 2 mentioned by Chopra

When user clicks on button to open dialog box:


data: lo_event_params  type ref to if_fpm_parameter.

create object lo_event_params type cl_fpm_parameter.

lo_event_params->set_value( exporting iv_key = 'PARAM1' iv_value = 'VALUE1' ).

lo_event_params->set_value( exporting iv_key = 'PARAM2' iv_value = 'VALUE2' ).go_fpm->open_dialog_box( exporting iv_dialog_box_id = 'YOUR_DIALOG_ID'

                                   io_event_data = lo_event_params ).

At WDDOINIT of your WD component used in the dialog box:


data: lt_event_queue type if_fpm=>ty_t_event_queue.

field-symbols: <ls_event_queue> type if_fpm=>ty_s_event_queue_entry,

               <ls_params>      type apb_lpd_s_params.

wd_this->go_fpm = cl_fpm_factory=>get_instance( ).

wd_this->go_fpm->read_event_queue( importing et_event_queue = lt_event_queue ).

read table lt_event_queue with key id = cl_fpm_event=>gc_event_open_dialog_box assigning <ls_event_queue>.

if <ls_event_queue> is assigned.

  loop at <ls_event_queue>-parameter assigning <ls_params>.

    if <ls_params>-key = 'PARAM1'.

      "store data

    elseif <ls_params>-key = 'PARAM2'.

      "store data

    endif.

  endloop.

endif.

The FPM Developer Guide covers most of FPM functionality, I highly recommend check out this document.

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d01ce2d7-3caf-3010-44bd-9b39b40cd...

Hope it helps. Cheers!

Answers (3)

Answers (3)

jitin_kharbanda
Participant
0 Kudos

Thanks Tudor, I tried wiring and it worked.

Thanks Anurag, I had already tried using static attribute but I was not willing to use it, I was trying wiring only.

But the solution 2 that you suggested is more convenient and is working.

Thanks Nguyen for providing the exact code solution 2 suggested by Anurag.

Former Member
0 Kudos

Hello Jitin,

there are multiple ways by which you could share data between a GUIBB and a freestyle webdynpro component used in any of the floorplans, and with a GUIBB involved you could do the following

1) Define a global class and use a static attribute or all together create a static class(One instance of a class)

2) you could also use FPM event parameter. you could create your own FPM event ID and add a parameter so when the event is fired from your GUIBB, it takes that data along(Preferablly a single data element or at the most structure)

3) Ofcouse wiring, i would suggest this approach only when you are repopulation your receiving end UIBB based on that data,

Based on your scenario pick your approach.

Regards

Anurag Chopra

TudorRiscutia
Active Participant
0 Kudos

Hello Jitin,

Have you tried using wiring? It's not only between GUIBBs, you can use for a freestyle UIBB as well, you'll just have to write some additional coding.

FPM Wire Model - Floorplan Manager for Web Dynpro ABAP - SAP Library

Tudor

jitin_kharbanda
Participant
0 Kudos

Thanks Tudor, I'll try wiring for this scenario as well.