cancel
Showing results for 
Search instead for 
Did you mean: 

dynamically created navigation links

Former Member
0 Kudos

hi fans,

I am resuming my monsterthread "dynamically change embedded interface view in window" here now and still have problems.

the problem is that I want to embedd an interface_view V_L from cid_L in the Mainwindow W_MAIN in a component M.

the cid_L-implementating component (e. g. L1 or L2) which delivers the in the cid_L determined interfaceview V_L which is embedded in Mainwindow W_MAIN is changing at runtime.

so my plan was:

1. creating outboundplugs in M to e. g. L1 and L2 dynamically via:

l_view_controller_api->PREPARE_DYNAMIC_NAVIGATION(
              source_window_name          = 'W_MAIN'
              source_vusage_name          = 'V_L_USAGE_1'
              source_plug_name            = OB_PLUG_NAME
              target_component_name       = used_component_name_l
              target_component_usage      = 'COMPONENT_USAGE_CID_L'
              target_view_name            = 'V_L'
              target_plug_name            = 'FROM_V_AUSWAHL'
              target_embedding_position   = '' ).

I leave the target_embedding_position empty because V_L is embedded directly in W_MAIN (without a viewcontainer).

2. fire this ob-plug via

l_view_controller_api->fire_plug(
     exporting
       plug_name = OB_PLUG_NAME
     ).

the target_plug_name (ib-plug) 'FROM_V_AUSWAHL' is determined in CID_L and is so also existing in L1 and L2 (Lx...).

so I create dynamical ob-plugs in M (store it in a hashtable) to one existing inboundplug

in Lx.

but it didn´t work:

the result is that when I start the application I get the error that the ob-plug OB_Z_CID_L2 (= OB_PLUG_NAME in prepared...method) is not existing in view V_AUSWAHL (view of M) of the component Z_CID_MAIN_TEST_UIDYNAMIC (= M).

what can I do?

EDIT: I didn´t create any ob-plug in M at designtime. perhabs this is helpful.

Message was edited by:

Thorsten Winter

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi ,

Check the Source view name passed to the method.

Regards,

Nirupamaa.

Former Member
0 Kudos

thanks Nirupamaa for your answer.

But I think the Source view name (= SOURCE_VUSAGE_NAME) is correct because I looked in the tree at window-perspective and at runtime the PREPARE_DYNAMIC_NAVIGATION method is executed and if the parameters are wrong in my opinion I will get errors.

But the PREPARE_DYNAMIC_NAVIGATION method is executed (I think the ob-plug is created and the parameters are all accepted) and the plug "OB_PLUG_NAME" is fired and then I get the error.

Former Member
0 Kudos

is it really possible to create navigation links and the outboundplugs (parameter source_plug_name) at runtime (both in the PREPARE_DYNAMIC_NAVIGATION- or DO_DYNAMIC_NAVIGATION-method)?

or do I have to create the outboundplug in parameter source_plug_name at designtime and the navigation link at runtime?

EDIT:

is it perhabs necessary to make the navigation link first and then create the component which is concerned by this navigation link? or makes it no difference if I created the component before the navi link?

Message was edited by:

Thorsten Winter

Former Member
0 Kudos

no one an idea?

EDIT: I made a simple test scenario now and made a component M which has in its main_window a view with a viewcontainer and 2 buttons. the viewcontainer embedds an interface view V_L from cid L. 1 button for showing L1 and one for showing L2 in the view of M.

cid L has two implementating variants L1 and L2.

this scenario works (creating ob-plugs in M and navigation links to the default-ib-plug in L dynamically) and I try to do this with my more complex scenario and this doesn´t work.

the difference concerning to my more complex scenario is that in my test scenario I only embedd one view (of L1 or L2) and not a complexer view which which embedds other views itself.

what can I do?

Message was edited by:

Thorsten Winter