Regarding navigation from Interface View

Hi All,
i am trying to pass data from one component to other component via exposing the interface view controller of second component to 1st component via Used Webdynpro Component concept.
I am able to navigate from one component view to 2nd component view with the action of fireplug from 1st to 2nd. but i am not able to do
vise versa.
What i got, after embedding the 2nd view in the 1st component window, inbound plug is created automatically. If in the same view(embedded interface view) i try to place out bound plug i m not able to do. how to get this navigation from 2nd view to 1st view.
Please help me out.
Regards,
Deepak

Hi deepak,
I didnt work on it but giving just an idea....
till now you did....
i am trying to pass data from one component to other component via exposing the interface view controller of second component to 1st component via Used Webdynpro Component concept.
I am able to navigate from one component view to 2nd component view with the action of fireplug from 1st to 2nd. but i am not able to do
vise versa.
What i got, after embedding the 2nd view in the 1st component window, inbound plug is created automatically. If in the same view(embedded interface view) i try to place out bound plug i m not able to do. how to get this navigation from 2nd view to 1st view.
now to do vis versa you have to do all this things for other component. I mean expose 2nd component via Used WD component concept. now embed 1st view in 2nd component window. just reverse of what you did till now.
and take a view set where in first view area show the first navigation, and in the second view area of view set show the second navigation.
Am I clear?
PraDeep

Similar Messages

  • How to call a view from Interface view

    Folks,
    How to call a view from interface view (onPlugDefault method) . I was trying to set context of controller but it is not working . What is the work around.
    Manish

    Hi Manish,
    An interface view is created for each window that you have, which in-turn has views embedded, one of which is default. If you want to pass data which you have in your interface view, do the following
    - Add your component controller in your interface view properties
    - In the onPlugDefault method(I assume this is where you have the data available through URL parameters),set the component controller context variables like
    wdThis.wdGetComContr.wdGetContext().currentContextElement().setName("John");
    -Access these context variables in your view as well by adding the component controller as the required controller
    Your default view will appear automatically when you call the application.
    Regards,
    LM

  • Set data into Model Node on Navigating from a View

    Hi Gurus,
    Need your assistance with an issue that I am facing.
    I am developing an ESS application and it has two perspectives.
    1st Perspective contains - View1 and NavView
    2nd Perspectice contains - View2 and NavView
    I have created a dynamic ValueNode in View1 and on navigating to View2, I want the data in the ValueNode to be updated into a ModelNode.
    The problem I am facing is,
    1. I have the <b>actionOnNavigation</b> in the <b>NavView</b> whereas my data is in the <b>View1</b>.
    I tried setting the data into ModelNode in the <i>wdDoExit</i> of <b>View1</b>, but it doesnt help.
    I have the <i>Life_Span</i> property set to "<i>WHEN_VISIBLE</i>", but still, dont think the wdDoExit() of <b>View1</b> is being called.
    Any suggestions on how/ where I can set the data into my ModelNode?
    Thanks in advance.
    Anjana R.
    Message was edited by:
            Anjana Raghav

    Hi Gurus,
    Any idea on this question?
    I would like to know where I can set my data into the ModelNode before Navigating away from that view? <i>The data is in a dynamic context.</i>
    I can't write it on the onAction() method, coz action is defined in another view.
    Any suggestions? Is it a flaw in the design?
    Thanks in advance
    Anjana R.

  • Navigation from a view in viewcontainer to parent view of view container?

    Hi,
    I am facing the following problem while navigating between views.
    Scenario:
    View1 contains view container element
    In the view container element view2 is embeded.
    I want to navigate from view2 to view1.I have created outboundplug for view2 and inboundplug for view1.
    In view2 , when I am firing the outbound plug I am getting the following error…..
    Error:
    Application error occurred during request processing.
    Details:       com.sap.tc.webdynpro.services.sal.core.DispatcherException: The requested deployable object 'sap.com/pb' and application 'null' are not deployed on the server. Please check the used URL for typos.
    Exception id: [00144F4148CE00610000057F0000094E000446B1C8D1816D]
    am i missing anything?
    please guide me in this issue.
    Thanks
    Madhu

    Madhu,
    Creating Plugs is simple. Go thru this document. It may help you.
    http://help.sap.com/saphelp_nw04s/helpdata/en/47/52120e27ca7e48a41201a4b08d99df/frameset.htm
    Create Outbound plug from view1, inbound plug from view2 and make a link from view1 to view2.
    from view1 call outbound plug like wdThis.wdFireXXXoutplug(). Deploy & Run your application.
    Let me know, if does not work.
    Regards,
    Sridhar

  • Navigating Between 2 views in webdynpro application

    Hi All,
    I am creating a webdynpro application with 2 views. when i click the next the first view an action would be triggering the next view. Component controller context is being used.
    Component Controller - 2 value attributes are there. These are mapped to view 1 and view2.
    view1 - has these 2 value attributes
    view 2 - has these 2 value attributes and 1 node with some attributes.
    But in view 2 , i am using only that node. When i deploy the application, when i click the button on the first view, another window popups, saying "500 internal error". But the view1 and view2, code is completely free of error. if so, why it is not displaying data of view2?
    Regards,
    Divya

    Divya,
    Go through <a href="https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d5c09c90-0201-0010-17a8-c473134632df">link</a> link. This may be very useful as it gives step by step process for navigation from one view to another on firing of an event.
    Let me know if you have any concerns.
    Regards,
    Ankit

  • Fire outbound plug from view in a DC to the interface view.

    I have a DC1 which has a view.From this View I fire a outbound plug with a string parameter to an interface View's inboundplug with the string parameter.This view is in another DC2 and used DC in DC1.
    Now when I try to Build the DC1,I get build error with the error log saying that the plug parameters arent compatible.But both the parameters are of same type.

    Hallo Kent,
    as long as your Comp A component keeps alive it also keeps it state when leaving it via navigation. By setting its lifecycle property as "manual" you can manage the lifecycly of Comp A on your own. This means the Web Dynpro Java Runtime will not destroy this component instance when leaving it via navigation.
    To navigate back you can apply the cross-component navigation technique I described within my tutorial on https://www.sdn.sap.com/irj/sdn/downloaditem?rid=/webcontent/uuid/751d003a-0b01-0010-8996-afbaa3fd5339">cross-component [original link is broken] [original link is broken].
    Regards, Bertram

  • Enable Navigation to WebClient View from Inbox of IC

    Hi All,
    I am using CRM 2007. In the IC, when you click on a particular transaction in the Quick Create group we have it enabled to navigate to the Web Client view for that particular transaction within the IC. This is working fine which is great.
    However, when you save the transaction in question and you go to the Inbox and select the transaction that was saved, the saved transaction shows up in the IC view. We wish to have this saved transaction to show up in the web client view from within the IC when selected from the Inbox.
    Does anyone know if this could be achieved through customizing?? If there is a way to direct the saved transaction in the Inbox to the web client view by changing the link in some way?
    It is only required for a particular transaction.
    I know this can more than likely be achieved through programming but is there a customizing option out there for this?
    Thanks for your time,
    Jonathan

    Hi,
      That is because, from the new transaction, view is different, and hence the navigation links defined in the component repository, where as inbox is completely different view/component.
      Try to see, navigation links defined from the view where navigation is working fine, and the outbound plugs called. Try to replicate it for Inbox navigation, you may have to create new navigation link, enhance inbox result view and outbound plug to navigate to the new navigation link.
    Regarding achievable through customizing, I am not completely sure if inbox result view could be found in customizing, plus you want it for a particular transaction only, but still if you are able to manage, it would be great.
    Thanks,
    Rohit

  • Error while navigating to a View in one Application from another Applicatn

    My Application has a set of views and in one view lets say View A  there is a link while clicking on the link it triggers a outbound plug and a new view gets opened.There is another application which calls the View A of my application (when a navigation link tab is clicked) not by embedding my view instead calls the url of my application.Here when i try to click on the link from View A  i get an error stating "Cannot navigate via outbound plug navigation link missing."

    Hi,
    I suppose you have not created the navigational link.
    If not then right-click on your outbound plug and click on Create Navigation link to the new view from your viewA.
    thanks & regards,
    Manoj

  • Adding navigation items to view controllers in interface builder - pwnd me

    I am perplexed by Interface builder. I had SDK version 2.x (can't recall now) and just upgraded to the newest 3.1 and now things do not work the same.
    So that I could have a custom navigation item applied to my view controller, I have followed the instructions here:
    http://developer.apple.com/iphone/library/documentation/DeveloperTools/Conceptua l/IB_UserGuide/EditingNibFileObjects/EditingNibFileObjects.html
    in section entitled "Configuring the Views for Additional Navigation Levels"
    When I try to load the nib at runtime I get this error:
    [* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "EventCreate" nib but the view outlet was not set.']
    The view is set on the controller; however, I did not do anything to set the file's owner since the before-mentioned doc does not say anything about that. It seems the view must be set on the file's owner to make it work. This is confusing.
    I've noticed that the nibs I had set up using the previous release (2.x can't remember now) aren't totally supported in the way I had them set up with navigation items. In IB, I would set the File's Owner to by view controller and then I could drop a navigation item in and connect that right away to the controller, and the controller had a navigation item outlet exposed by default. That doesn't appear to work any more. When I open my older nibs (xib files) the navigation item outlet shows up in the inspector for the controller BUT its greyed out, as if obsolete. There's no navigation item outlet showing in IB anymore, it seems when building new xibs. So, I don't know what to do here.
    Can somebody help me?

    crouchingchicken wrote:
    I would set the File's Owner to by view controller and then I could drop a navigation item in and connect that right away to the controller
    Yes, I agree. The nav item used to show up as an outlet of any view controller.
    When I try to load the nib at runtime I get this error:
    The problem with the doc is this line:
    To push a new view controller at runtime, _create a new instance of your custom UIViewController subclass, initialize it with the nib_ file you created for it, and push it on the navigation controller stack.
    The underlined portion can lead us to believe we can alloc and initWithNibName:bundle: as we would when File's Owner is a proxy for the controller we create in code. But that won't work in this case, since the controller we want is the one that's created from the view controller object when the nib is loaded. In other words, we don't want to alloc a new controller, we just want to grab the object made from the nib. Here's what to do:
    // RootViewController.m
    - (IBAction)nextView {
    NSLog(@"nextView");
    // SecondViewController *viewController = [[SecondViewController alloc]
    // initWithNibName:@"SecondViewController" bundle:nil];
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SecondViewController"
    owner:self options:nil];
    NSLog(@"nib=%@", nib);
    SecondViewController *viewController = [nib objectAtIndex:0];
    [self.navigationController pushViewController:viewController animated:YES];
    // [viewController release];
    Be sure not to release the object obtained from the nib, since we didn't alloc it. Top level objects created from a nib are autoreleased. You can put some logging into the second view controller's dealloc to verify it gets dealloced when popped:
    // SecondViewController.m
    - (void)dealloc {
    NSLog(@"dealloc: %@", self);
    [super dealloc];
    - Ray

  • Firing the Suspend Plug of Interface View Controller of1 DC from another DC

    Hi Experts,
    Can you please let me know if it is possible to fire a suspend plug from a Component Controller?
    I've been tried it before from View controller on some event and was able to fire the plug successfully but when I am trying to fire the same from the init method of the Component Controller or init method of the view controller, it gives me the below error:
    com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Instance of interface view controller XXXXCompInterfaceView does not exist.
    I believe that it is not possible to fire the suspend plug from the Init method  of either Component Controller or View Controller.
    So, is it possible to fire the suspend plug in one custom method of a component controller if the custom method is called from some another component?
    Please let me know.
    Thanks & Regards,
    Anurag

    Hi Prashant,
    When I am trying to fire the Suspend plug from my view on click of a button, I am getting the following error:
    com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Cannot suspend embedded component via outbound plug <Plug Name> of view <Interface View Name>
        at com.sap.tc.webdynpro.progmodel.view.ViewManager.fireSuspendPlug(ViewManager.java:209)
        at com.sap.tc.webdynpro.progmodel.view.View.navigate(View.java:533)
        at com.sap.tc.webdynpro.progmodel.view.View.navigate(View.java:462) 
    Earlier, when I used to fire the plug from my DC; it used to work fine but now my DC is being used as a used DC in another component and since then I am facing this issue.
    Currently, my DC is being used as used DC. I am not sure if I use any used DC, it would work or not.
    Please respond if anybody has any suggestions.
    Regards,
    Anurag

  • Fireing outbound plug of interface view from within component

    Hi all,
    is there a better way of firing an outbound plug of an wd component interface view than from within the interface view controller itself?
    The problem is, that you easly get a cyclic reference if you evaluate inbound component plugs in the interface controller (usage from int view ctrl --> int ctrl needed) and then try to fire an outbound plug from this interface controller (usage comp int --> comp int view usage needed).
    One workaround is to use some custom controller with usage of the interface view, but this doesn't seem to be a nice solution.
    So is it possible to fire outbound comp plugs from, lets say the component controller - without any usage releation to the comp int view - instead, maybe via wdComponentAPI? If yes, could you provide a code snippet?
    Thanks you and best regards,
    Christian

    Hi Christian,
    this is not possible by using the public API only, i'm afraid. It is of course possible, if you decide to forget about the possible drawbacks of using methods and classes reserved for internal use. But you have to use it at your own risk. I hacked this together some weeks ago, don't know whether it still works
    * Fires an outbound plug of an interface view with parameters.
    * @param wdComponentAPI Component API "owning" the interface view.
    * @param windowName Name of window
    * @param plugName Name of outbound plug
    * @param callerParameterMap optional Map of plug parameters.
    public static final void fireOutboundPlug(
      IWDComponent wdComponentAPI,
      String windowName,
      String plugName,
      Map callerParameterMap)
      throws WDRuntimeException {
      // Find window requested
      IWDWindowInfo windowInfo = wdComponentAPI.getComponent().getComponentInfo().findInWindows(windowName);
      if (windowInfo == null) {
        throw new WDRuntimeException(
          "Can't find window: " + windowName + " in component: " + wdComponentAPI.getQualifiedName());
      // Get info of interface view
      IWDInterfaceViewInfo ifViewInfo = windowInfo.getInterfaceView();
      if (ifViewInfo == null) {
        throw new WDRuntimeException("Window: " + windowName + ", no interface view info found");
      // Find outbound plug
      IWDOutboundPlugInfo outboundPlug = ifViewInfo.findInOutboundPlugs(plugName);
      if (outboundPlug == null) {
        throw new WDRuntimeException(
          "The interface view: " + ifViewInfo.getName() + " has no outbound plug: " + plugName);
      // Parameter passing
      Collection plugParameters = outboundPlug.getParameters();
      // TODO make check optional, check caller map parameter keys against existing
      if (plugParameters == null || plugParameters.isEmpty()) {
        // No caller parameters allowed.
        if (callerParameterMap != null && !callerParameterMap.isEmpty()) {
          throw new WDRuntimeException(
            "The outbound plug: " + plugName + " has no parameters, callerParams must be empty/null.");
      // TODO This is a hack, use of internal WD runtime classes and methods (don't use productive).
      InterfaceView ifViewController =
        (InterfaceView) ((Component) wdComponentAPI.getComponent()).getController(ifViewInfo.getName());
      ifViewController.navigate(outboundPlug.getName(), callerParameterMap);
    Please remember, that not everything which is technically possible, makes sense
    Regards
    Stefan

  • Popups: Navigation from view to window does not work

    Hi,
    I open a second window as popup. This window has 2 views embedded, displaying view1 first. On some actions I would like to navigate to view2.
    Defining an outbound plug on view1 and an inbound plug on view2, connecting them and firing the outbound withith the onaction works absolutely fine.
    However, for some reasons I would like to avoid a direct navigation, but would like to navigate from view1 to the popupo window and from there to view2 (or maybe another view, ofcourse also embedded in the same popup window). Unfortunately I fail on this scenario - I can fire the view-to-window plug, but the destination on the window side (handle in method) is never reached.
    Since the same concept works fine on non-popup windows I wonder whether a navigation from view to embedded window does not work for popups?
    Any idea?

    Hi Yashpal,
    no, just one window.
    The first link is view1 -> window, the second window -> view2.
    I.e., I fire in the view the outbound plug, which is connected with its window.
    In the window I fire an outbound plug, which is connected to view2.
    In theory this should work - for non-popup windows I do not have any problem at all, however, for popup windows the navigation from view1 to the window is not processed.
    In the meantime I played a little bit further: Instead of firing a navigation from view1, I now fire an event defined in the component contoller, on which an event method is registered within the window. Doing so, I reach the window, which I didn't reach via the navigation link. Once in the window, firing to view2 works just fine ...
    Hope the issue is a bit clearer now. Also I found a solution, I am surprised that the simpler way via navigation does not work.

  • Regarding interface views inside a view.

    Hi,
    We have a screen in which a view uses interface views of two other components.
    Depending on the link clicked anyone of the  interface view should be displayed in the bottom of this main view.
    I am using view container UI element for this requirement. Are there any ways of switching the interface view in a single view container element.. instead of creating two of them, each for one interface view.?
    regards
    Bharathwaj

    Bharathwaj,
    Yes, it is possible.
    Create 2 outbound plugs in outer view, link them to corresponding inbound plugs of interface views.
    Now on action fire one forementioned plugs.
    Valery Silaev
    EPAM Systems
    http://www.NetWeaverTeam.com

  • Navigation from One Window to other Window in same Component

    Hello,
    Component: MAIN
    2 iviews - AView & BView
    2 windows: FirstWindow & SecondWindow.
    2 WindowInterfaceViews: FirstWindowInterfaceView & SecondWindowInterfaceView
    FirstWindow contains: AView & interfaceView of BView (plug from AView to BInterfaceView)
    SecondWindow contains: BView (default) & AView. (there are plugs to navigate between two views. i.e. from AView to BView & viceversa).
    for both the windows I should navigate from different scenario. i.e. FirstWindow from XComponent through FirstInterfaceWindow& SecondWindow from YComponenet through SecondWindowInterfaceView.
    2 scenarios: please read 2 scenarios carefully
    1) if I navigate to FirstWindow from XComponent i.e currently i am in AView then I could navigate to BView from AView (Upto here the navigation is working successfully)
    there is a button in BView which plugs out to another component (OTHER_Component), when i click that i am getting the below error
    "Cannot navigate via outbound plug ToOther of view BInterfaceView because there is no navigational link attached to it".
    2) whereas if navigate to secondWindow from YComponent, then i cloud navigate to the AView & plug out to OTHER_Component successfully. i.e. ToOther plug is working fine & could navigate to Other_component
    "i.e. problem is only when entering from FirstWindow then navigating to BInterfaceView then i couldn't navigate to the OTHER_component..
    Thanks & Regards
    Maha

    HI Maha,
    If in am not wrong there are overall three components compX, YourComp and compY.
    In your component you need to have two views View1 and View2 but i different windows say Win1 and Win2 respectively.
    Within YourComp you need to navigate from View1 to View2 which are in different windows by windows navigation using plugs and embedding the other's interface view. You have embedded interface view for Win2 in Win1 but not interface view of Win1 in Win2. So, embed that and mention the navigation via plugs from View2 to interface view if Window1.  And, embedding View1 in Win2 along with View2 is need less.They can be done using plugs and interfaces as well.
    Now the problem is your application will have just one startup plug which will decide which would be the default Window to start (in turn decided by choosing the interface view of the default window intended). As if it is interface view of Win1 then directly navigating to Win2>View2 is ruled out.
    That is why it is giving error in finding the navigation link from win2 to win1.
    Just double click on your application and check the default startup plug and the default interface view selected. It will help you understand better.
    So, we cannot have two different starting windows for the same application (needless to say).
    What you can do is let the interface view of the wind1 be the default one, s that it always starts with View1 which is the default view for the window. No in the wdDoInit() of View1 check if it coming from CompX or CompY. In case, it comes from CompY, navigate to View2 using plugs and interface views. Otherwise, not. This will cause you to land up on View2 if you come from CompY.
    Now the question is how do we decide whether it is coming from CompX or CompY? You can have output parameters of same name say "param" from both the components but with value 0 and 1. Now catch this passed parameter in the wdDoInit of YourComp using WDProtocolAdaptor API and decide the source Component.
    Hope, your problem is resolved.
    Regards,
    Tushar Sinha

  • Fire outbound plug of interface view controller?

    Hello Experts-
        In my WD project I have two apps A and B.
        I need to navigate from app A to app B.
        In the interface view controller of app A, I have created an outbound plug called GotoB.
        I determine the URL of app B using the WDURLGenerator and store that value in a string.
        In a view of the app A I have the code:
    <code>
    wdThis.wdGetAInterfaceViewController().wdFirePlugGoToB("URLtoB");
    </code>
        For some reason nothing seems to be happening when the event triggers in the view of app A that runs the above code. The view of app A just seems to refresh. The one thing that does happen is that on the refreshed view of app A if I click on the button to trigger this event again I get an 'app A has expired' WAS error.
        What am I missing here? How can I make the navigation from app A to app B work?
    Thank you,
    - Vik.

    Hi,
    well step by step:
    1) Create component Component1 (package="com.sap.sdn", window name = "Component1CW", View name="Conponent1CV")
    2) Create component Component2 (package="com.sap.sdn", window name = "Component2CW", View name="Conponent2CV")
    3) Create application "App1" (package="com.sap.sdn", Web Dynpro component="Component2", the rest - by default)
    4) In Component1CWInterfaceView create outbound plug "GoToComp2"
    5) In Conponent1CV add Component1CWInterfaceView as required controller
    6) In Conponent1CV add button and in action handler put following:
      public void onActionGoToComp2(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionGoToComp2(ServerEvent)
        wdThis.wdGetConponent1CWInterfaceViewController().wdFirePlugGoToComp2();
        //@@end
    7) In component Component2 add Component1 as Used Web Dynpto Component (name="Component1CU")
    8) In Component2CW embed view (Component1CWInterfaceView) as Embed Interface View of a Component Interface, and set this view as default.
    9) In Component2CV add inbound plug "FromComponent1"
    10) In Component2CW link embedded View Component1CU.Conponent1CWInterfaceView.GoToComp2 with Component2CV.FromComponent1
    11) Build-deploy-run. Click on button. It should work.
    Regards, Maxim R.

Maybe you are looking for