cancel
Showing results for 
Search instead for 
Did you mean: 

Navigation problem

Former Member
0 Kudos

Hi Guys.

I have a strange problem. maybe someone of you have any ideas.

I have a component which has two inbound plugs via the interface view.

Inside the Window I implemented the corresponding handler methods.

Each handler method fires a different outbund plug to a different view. I do so

because I want to have different entry points to my component.

In another component I implemented a menu which offers two links which should navigate to the corresponding views of the above described component.

When I click a link the first time the correct view is displayed. When i now click the second link the second view is correctly displayed. But when I now click the first link again the second view keeps displayed. Everytime a link is clicked I delete the used component and create a new one to reset. So this could not be the problem.

What is strange: I have set breakpoints in both handlers of component A. When I click the link (like described above) the 3rd time both inboundplug handler methods are called.

I try to perform navigation genericall using

l_view_controller_api->prepare_dynamic_navigation

I hope I could clearly explain the problem.

Thanks in advance.

Cheers,

Sascha

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Please describe how the call to the 2nd WDC is made.

Are use using an EXIT plug with URL ?

A suspend plug ?

IFRAME link ?

How does the main WDC get control again?

Why cant the 2nd WDC be embedded in the first ?

You may have found a glitch ? So it is useful to know BASIS SP level.

The design situation sounded like embedded WDC is a good option.

regards

Phil.

Former Member
0 Kudos

Hi Phil.

I do neither uses Exit Plug with URL nor suspend plug or IFrame

The main WDC is just to control navigation and serves as container for each sub component. As soon as a link is clicked in the main WDC the control is in main WDC.

This is how I navigate:

l_view_controller_api->prepare_dynamic_navigation(

source_window_name = 'MAIN'

source_vusage_name = 'MAIN_VIEW_USAGE_1'

source_plug_name = 'TO_VIEW'

target_component_name = 'ZFR_PROGRESS'

target_component_usage = 'GENERIC_COMPONENT'

target_view_name = 'MAIN'

target_plug_name = target_plug

target_embedding_position = 'MAIN_VIEW/APP_CONTAINER' ).

ZFR_PROGRESS is the component interface which each component implements that should be navigatable via the main WDC.

GENERIC_COMPONENT is the component usage of the type ZFR_COMPONENT.

Each time a link is clicked the actual active component of the generic usage gets

deleted and the new desired when is created:

GERIC_COMPONENT->create_component( target_comp ).

After that i fire the plug.

It works in most cases. Only if the target component has two inbounds i have the problem.

Level: 700 SP09

Thanks in advance,

Sascha

Former Member
0 Kudos

Hi Sascha,

it is not obvious to me what the issue is here.

One thing that comes to mind to check, is the what code might be in the INIT

method of the subcomponent. It will only be called once.

Otherwise, if you have successfully called the inbound plug, you should get the

result you expect. Perhaps this is a bug.

Is the default plug being called each time ?

Perhaps it is to do which the instantiation of the child component and the calling

of its plugs.

Is the child component unknown at design time ?

If not, then there is no requirement for dynamic Nav.

Is it a custom child component ?

If so you could use method calls or events to communicate with embedded component.

sorry I cant help more from here.

good luck

Phil.

Former Member
0 Kudos

Hi Phil.

Meanwhile I could solve my issue. But I had to refactor the application a bit.

Anyway I guess there must be some kind of bug when you use the method:

view_controller_api->PREPARE_DYNAMIC_NAVIGATION(

source_window_name = 'MAIN'

source_vusage_name = 'MAIN_VIEW_USAGE_1'

source_plug_name = 'TO_VIEW'

target_component_name = target_comp

target_component_usage = 'GENERIC_COMPONENT'

target_view_name = 'MAIN'

target_plug_name = target_plug

target_embedding_position = 'MAIN_VIEW/APP_CONTAINER' ).

Seems that somehow the previous called target plug is kept in memory and called again when you call this method again with a new target component.

Anyway we are on SP09 at the moment but get SP10 this week. So maybe it will dissapear.

Thanks for your hints.

Cheers,

Sascha