Hi,
Is it possible to open a web dynpro window whose view embeds the FPM_GAF_COMPONENTu2019s FPM_WINDOW multiple times in dialog window?
I have a web dynpro component WDC1 which use FPM_GAF_COMPONENT and provide the component configuration for FPM.
Thereu2019s a WINDOW1 (with View1) in WDC1 which has a view container and the FPM_GAF_COMPONENTu2019s FPM_WINDOW is embedded.
I have a button in WDC1 which create a new dialog window by calling if_wd_window_manager->CREATE_WINDOW as code below.
lo_window = lo_window_manager->CREATE_WINDOW( MODAL = ABAP_TRUE WINDOW_NAME = 'WINDOW1' TITLE = 'Test opening FPM multiple times' CLOSE_BUTTON = ABAP_TRUE * BUTTON_KIND = * MESSAGE_TYPE = IF_WD_WINDOW=>CO_MSG_TYPE_NONE * CLOSE_IN_ANY_CASE = ABAP_TRUE * MESSAGE_DISPLAY_MODE = * DEFAULT_BUTTON = IS_RESIZABLE = ABAP_TRUE ).
It works for the first time when I click the button, a dialog window opens with my FPM GAF stuff.
But when I click the button the second time after closing the dialog window, it generates a dump with error message saying u201CComponent Usage Group MESSAGE_AREA_USAGES Already Existsu201D.
In ST22, the dump was generated in WDDOINIT of view u201CMAINu201D on FPM_GAF_COMPONENT which looks to me like the message manager is already created in the first time.
lr_component = wd_comp_controller->wd_get_api( ). lr_usage_group = lr_component->create_cmp_usage_group( name = 'MESSAGE_AREA_USAGES' used_component = 'FPM_MESSAGE_MANAGER' ). wd_this->mo_message_area_usage = lr_usage_group->add_component_usage( 'MESSAGE_AREA_USAGE' ). wd_this->mo_message_area_usage->create_component( 'FPM_MESSAGE_MANAGER' ).
I tried to remove the component usage of FPM in my WDC1 or delete the component directly, hoping that this will clear the memory , but doesnu2019t work, only bring more different dumps which make this look like a wrong direction as I am interfering the lifecycle of FPM itself.
Can anyone share some ideas here? Thanks in advance.
Best regards,
Beiyang
P.S. The FPM GAF works fine when I open the window in new browser (by calling if_wd_window_manager->create_external_window).