cancel
Showing results for 
Search instead for 
Did you mean: 

What is wrong with the 'change Tab Name during runtime' example?

Former Member
0 Kudos

Hello everybody,

I worked trough the cookbook for the floorplan manager. At the moment I have an application presenting two tabs. (I am working with the FPM OIF.) Now I am trying to realize the possibilities described under the headline "Changing the Tabbed Component Dynamically at Runtime" (page 74). I tried it again and again but it did not work.

Actual status:

I have two views implemented in the FPM OIF. This works fine.

In the first view I have added a button. In it's action method I have the following coding:


DATA: lo_fpm TYPE REF TO if_fpm,
      lo_event TYPE REF TO cl_fpm_event.

data lv_tab_name TYPE string.
lv_tab_name = 'new name'.

lo_fpm = cl_fpm=>get_instance( ).

*lo_event = cl_fpm_event=>create_by_id( 'CHANGE_TAB_NAME' ).
CREATE OBJECT lo_event
EXPORTING
  iv_event_id = 'CHANGE_TAB_NAME'.

*lo_event->mo_event_data->set_value( iv_key = 'ID' ).
lo_event->mo_event_data->set_value( iv_key = 'NAME' iv_value = lv_tab_name ).

lo_fpm->raise_event( io_event = lo_event ).

In the component controllers method OVERRIDE_CONFIG_TABBED I implemented the following coding:


CASE io_tabbed->mo_event->mv_event_id.
  WHEN 'CHANGE_TAB_NAME'.
    DATA lv_name TYPE string.
    DATA lv_id   TYPE string.
*  io_tabbed->mo_event->mo_event_data->get_value( EXPORTING iv_key = 'ID' IMPORTING ev_value = lv_id ).
    io_tabbed->mo_event->mo_event_data->get_value( EXPORTING iv_key = 'NAME' IMPORTING ev_value = lv_name ).
    io_tabbed->rename_tab( iv_tab_id = lv_id iv_new_name = lv_name ).

ENDCASE.

I uncommented some lines because I hoped it will work then, but it does not. With the debugger I come to the onAction-method after pressing the button. As far as I see the event will be registered in the FPM event loop as well. The problem is, the override_config_tabbed method is never called. Setting a breakpoint to this method does never turn the application to the debugger.

Can anybody tell me what I did wrong, and how to correct it? I am looking forward for your answers because the whole SDN including the search did not help me.

Sinceresly,

Barbara

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

To all who read this post, I performed the following step in addition to the steps outlined in the Developer's Guide to change the Tabbed Component dynamically at runtime and was successful in changing the tab name:

Add your Web Dynpro component to the Tabbed UIBB Component Configuration:

1. Select Change->Global Settings in the Control Region of the FPM Configuration Editor within the Tabbed UIBB Component Configuration. (Make sure you are at the Tabbed UIBB Component Configuration level when you do this. If you are at another level in the Configuration Editor, like another UIBB, it won't work!).

2. Enter the name of your Web Dynpro component in the Global Setting dialog box and Save.

Former Member
0 Kudos

Hello Mitchi,

I am sorry that you have to wait such a long time. And I am afraid you have to go on waiting because the answer method of this forum is of the opinion that my description does not fit the forum rules. But I do not find any error.

If you can tell me where I can find an administrator to ask what is wrong with my explication I am very willing to ask him or her. I have searched for someone responsible to ask for 1 hour now and did find nothing. I am really sorry.

Yours Sinceresly

Barbara

Edited by: Barbara on Jun 14, 2010 11:15 AM

Answers (2)

Answers (2)

0 Kudos

Hi Barbara...

Im facing same problem as you were...Im not able to trigger method OVERRIDE_CONFIG_TABBED in componnent controller...

has it to be triggered by a call...

former_member184386
Active Participant
0 Kudos

Hi there, were you able to trigger a breakpoint in method OVERRIDE_CONFIG_TABBED? How did you do it, I'm facing the same issue. Thanks.

former_member193369
Active Participant
0 Kudos

Hello Barbara,

maybe you're confused by the fact that there is OIF which has views (similar to tabs) and subviews and a Tabbed component which can be placed within a subview adding a 3rd level of "tabs". The tabbed component is modified via IF_FPM_TABBED but the views (and subviews) are modified via the interface IF_FPM_OIF (see chapter "Using an Application-Specific Configuration Controller").

Best regards,

Christian

Former Member
0 Kudos

Hello Christian,

thank you for your hint with the AppCC. In a way the example does work now.

The point I am confused on is the point you tried to explain to me. To me the FPM OIF consists of mainviews. In a mainview there are 1..n subviews defined. Each subview needs a UIBB.

Compared to the Web Dynpro point of view a UIBB is a window which embedds 1..n views.

I will be very happy if you try to explain me again what you meant with a third type or level of tabs.

Sinceresly,

Barbara

former_member193369
Active Participant
0 Kudos

Hello Barbara,

OIF consists of mainviews, in a maniview there are 1..n subviews and in each subview there are 1..n UIBBs, which are interface views (=windows) of WD components embedding 1..n WD views. So far your understanding is correct. But this is not the end of the hierarchy:

FPM offers a special UIBB (the tabbed UIBB) which can be inserted just like any other UIBB. And this UIBB can be configured and embeds further UIBBs. So the hierarchy might go on:

A UIBB might be a tabbed UIBB which consists of a master area in which there are 0..n UIBBs, and a detail area containing a tabstrip with 0..n tabs. Each tab contains again 1..n UIBBs. These tabs are the 3rd level.

And each UIBB embedded in the tabbed UIBB might be a tabbed UIBB itself. Therefore in theory you can get as much nesting levels as you want.

This tabbed UIBB again has a API IF_FPM_TABBED which is responsible for modifying this 3rd level. And in your original code example it seemed as if you used this API. But this API is not responsible for modifying the mainviews and the subviews.

Best regards,

Christian

Former Member
0 Kudos

Hi Barbara, I'm also experiencing the same issue you discovered with changing the tabbed component dynmically example in the Developer Guide. In your posting you said it's sort of working for you now. Can you explain what code or config change you made that made it work? Thanks.