Component Usage / Interface Views

Hi Experts,
I have added two fields in CPGOE_DETAILS/ovefdetails view through AET.
Now I want to attach search help to those fields through compoent usage.
So I have created component usage of BP_HIER in the CPGOE_DETAILS.
I am able to call the search help view : SearchHelpNodesVs because it is default view in Interfave view SearchHelp for the first field.
for the second field i want to call the view : SearchHelpVS which is also available in interface view SearchHelp.
Please suggest the solution.

Hi Naresh,
the window SearchHelp has two different inbound plugs which you have to use.
- IP_SEARCH_NODES opens BP_HIER/SearchHelpNodesVS
- IP_SEARCH_TREES  opens BP_HIER/SearchHelpVS
Just use the correct inbound plug to get the search you want.
Best regards
Matthias

Similar Messages

  • Component usage  - use view of std comp

    hi friends,
    is it possible to just use one single view( not the main window) of a standard component in another Z component using component usage?
    if yes coul dyou tell me the steps... and how to bind the context nodes too, could you please tell ?
    how to find which context nodes to be binded in the wd_initialze_usage method?
    do i need to create all teh context nodes of the view of std component, which I am using as component usage in Z component controller??
    how to get the fields/table etc in editable mode?
    how can i enhance that std view in Z component so taht those changes to that view is specific to that Z component?
    i m sorry too many questions but i needed some info on the component usage.. Please forgive me if its too many questions..
    kindly let me know and your thoughts will be very helpful....
    thankyou
    RDSingh

    Hi RDSingh,
    Yes it is possible to load a single view of a standard component to any zcomponent.To do that :
    1:) First create a component interface of the view in the statndard component which you want to use.
    2:)Regarding the context nodes ,the nodes which are used in the view have to be binded with the context nodes of the
    Component Controller to select the context nodes you can go at web UI and press F2 to get all the details.
    3)After the Component interface is completed it is available to be loaded into any Z component.
    4)Go to the Z component and in the Component usage add the component inerface created earlier.
    5)Next you need to delegate the outbound plugs of this component usage to the window.
    6)Now the view can be used like a normal view of the  component.
    I am a newbie in this field myself so pardon if i cant explain u all the details but you can read book SAP CRM WEB-CLIENT Customizing and development to get full knowledge

  • Dynamic create Component usage and embed it in view container

    There is a view_container_uielement VC_TEST  in view V_MAIN, in wd component ZTEST.
    I created a web dynpro component named ZWDR_TEST and add it into the wd component ZTEST.
        gr_comp_test = component->create_cmp_usage_group(
          name = 'TEST_GROUP'
          used_component = 'ZWDR_TEST' ).
        lr_comp_usage = me->gr_comp_test->add_component_usage(
          embedding_position = 'V_MAIN/VC_TEST'
          name = 'TEST'
          used_component = 'ZWDR_TEST' ).
        if lr_comp_usage->has_active_component( ) is initial.
          lr_comp_usage->create_component( component_name = 'ZWDR_TEST' ).
        endif.
        ifc_test ?= lr_comp_usage->get_interface_controller( ).
    I thought the wdr ZWDR_TEST was embeded in the view V_MAIN in the position VC_TEST by the embedding_position parameter.
    But in the result web page, there is no ZWDR_TEST in the position of VC_TEST.
    Could any one explain why?
    Thanks

    Hi,
    for dynamic comp usage.. check this..
    http://help.sap.com/saphelp_nw70/helpdata/en/bc/191a427ff6db2ce10000000a1550b0/frameset.htm
    Dynamic Component Usage
    embed view
    Dynamic View embed
    How to create a webdynpro view dynamically and embed into view container?
    Cheers,
    Kris.

  • How to call Interface view

    Hi All
        I am using WDA 2 as Interface in WDA 1.
    From WDA1 I like to call one view of WDA2. WDA 2 has total 4 views. 
        Pleae help me on this...thank you all...
    Regards
    Rama

    Hi,
    Follow steps,
    1. Declare component usage in PROPERTIES tab in WDA1 component as well in view. (e.d column1: wda2_usage and column2: WDA2)
    2 go to view in WDA1. Add a transparent container.
    3 go to WINDOW in WDA1, go to view that has transparent container. right click->embed view
         You will see the component usage interface that is specified in 1st step, select the view of WDA2.
    You will probably need to call some method in WDA2, if so, check the Interface checkbox for the method in WDA2.
    Award point if useful.
    Best Regards,
    Achyut

  • Avoid rendering of (view,component Usage embedded on TAB) on Timed Trigger

    Hi,
       I have a WD application build based on header ( icons; normal label; input elements ) , a timed trigger and a tab strip which has 3 tabs. The 3 tabs have View container element for whcih i am attaching 3 views of the same component .  TAB A part which i am viewing holds a image. The Timed Trigger is needed to enable icon on the header. This is happening well after my delay time of 60 SECS. But this one is having impact of regenerating the image again ( due to the rendering ) which is not at all required.  I want to have the rendering only for the above header part only.   But as i heard from Thomas post that after the phase cycle is done. rendering loads all the views, component usages embedded for the VIEW.
    conditonally i am doing the action of CANCEL NAVIGATION in WDDOBEFORENAVIGATION  when Timed Trigger fires.Due to this one i could avoid the MODIFYVIEW calls of the respective views embedded; but i could not avoid the rendering of the IMAGE ( TAB A ).
    Is there any way to avoid the rendering on those tabs part ( 3 views embedded ). I could see that DELTA rendering is enabled for my sap version but it would be not much help.
    Thanks and Regards,
    Satish A.

    Hi Alex.
    I already tried this. But a bit different. One of my component should have different entry views. So I defined multiple interface inbound plugs in the window of the subcomponent. In the corresponding (inbound) handler methods of the window I fired corresponding outbound plugs which were connected to different views. The main component had different links which were connected to the corresponding interface inbound plugs of the embedded component.
    When I clicked the first link, the correct view of the subcomponent was shown. When I then clicked the next link which should show another view of the same subcomponent the corresponding inbound handler was called but no navigation was done.
    Now when I rest the component before navigating everything works fine.
    But thanks for the hint.
    Cheers,
    Sascha

  • Referencing component usage with different interfaces

    Hi experts,
    First of, some details;
    - I'm on NW04.
    - I have a generic WDP interface named: IModelComponent
    - I have a specific WDP interface named: IEmployee
    - I have a WDP component implementing both interfaces named: Employee
    Now I want to create some sort of component factory component. In this component I have:
    - defined 'Used Web Dynpro Component' IModelComponent
    - Created a method getComponentUsage (static names just for clearer example):
    wdThis.wdGetIModelComponentComponentUsage().createComponent("x.x.x.org.mdc.empl.EmployeeModelComponent", "x.x/x~org~mdc~employee");
    return wdThis.wdGetIModelComponentComponentUsage();
    Next I have a client view component which refers to the component factory and the employee interface
    - defined 'Used Web Dynpro Component' IEmployee
    - defined 'Used Web Dynpro Component' ComponentFactory
    - On request I call the factory method getComponentUsage
    Now, when I use this component usage the following way:
    wdThis.wdGetIEmployeeComponentUsage.enterReferencingModeUnsafe(receivedComponentUsage);
    Then things work perfectly! This is basically what I want to achieve.
    But the method enterReferencingModeUnsafe is deprecated, so I wonder if there are other, better ways to achieve usage referencing of components with multiple interfaces (create as one interface, use as the other interface).
    Looking forward to any comment.
    Grtz,
    Chris
    Edited by: Chris van de Wouw on Feb 6, 2010 5:20 PM

    Basically solved it myself. I'm now using the actual required component usage (IEmployee) as entry point for the factory, which will create the correct implementation component (based on configuration). For IModelComponent specific methods I can use the getInterfaceController() of the employee component usage class and cast it to the model component interface.

  • Using only 1 view from a component ( usage )

    hi experts..
    I have a component C1 with 7 views...
    I have another componet C2 in ehich i want to use only 1 view of the component C1 rather than the entire component...
    How can i do that...
    jagruti

    Hi again.
    can u make it more simpler sascha..
    In the component controlelr of C1 create en event
    (mark as interface).
    Steps below r not clear.....
    Then in the actíon handler method of C1 fire this
    event.
    The action handler method assigned to the back button in the view you want to use in C2. Here you can use the wizzard to fire the event in the component controller. There should be a fire_... method in the component controller now.
    In the controller of view in C2 which contains the
    ViewUiContainerElement create an event handler method
    for the event of C1. In this handler you fire an
    outbound of the view which navigates to another view
    in C2.
    this is described in the above mention thread. In C2 you created a viuew with the ViewUiContainerElement which embedds the view with the back button of C1.
    Go to the attrib utes tab of this view and add the usage of C1 here.
    Then go to the methods tab of this view and create a method handleBackEvent and choose event handler. In the event columen make a F4 and select the event of the component usage C1. Hit enter.
    Create an outbound plug in this view which should be use to navigate to the view in C2 you want. Then go to the event handler method just created and fire the outbound plug.
    Do not forget to connect the outbound to the inbound of the view you want to navigate to.
    sorry for bugging u..
    No prob.
    jagruti..
    Cheers,
    Sascha
    Message was edited by:
            Sascha Dingeldey

  • WDA Component Usage - used component's point of view

    Hi folks!
    Component Usage is a real nice feature of WDA. The using component knows exactly, when which other components are used.
    But what about the used component's point of view:
    How can a used component find out if it is currently running natively or as a used component and who is the using component?
    Alternatively: How can the using component hand over initialization information (parameter) to the used component the used component has access to in component controller method DOINIT?
    Background: In my scenario the used component has to "turn right" when it is used by component A and it has to "turn left" when it is used by component B and it has to go straight forward when it is running in "native" mode..
    Thanx in advance for any hint!
    Kind Regards,
    Volker

    hI Volker  
        You can implement the component usage by implementing interface method or interface node.
    1. Interface method :-
       Here the using component can access methods of used component.
    So in your used component you have three method for 1. TURN RIGHT 2. TURN LEFT 3. STRAIGHT
    so from comp A you call  TURN RIGHT
    From component B you can call TURN LEFT.
    Make Straight default which can run in  "native" mode..
    That is if you want to implement from using component's view.
    2.You can take a node in your used component as interface node which must be populated by values from other component.
    From your using component you can pass the required value .
    Now in your used componentcontroller DOINIT method call that interface node and in the make some condition according to the value it get from using component.
    But I don't think in this it can run in "native" mode.
    However i dont have that much idea about whether the in used component we can keep any log like where it has been used and how.
    Thanks & Regards,
    Monishankar C

  • 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

  • External component usage with interface node

    Hi everyone,
    I have component A , which has an interface node with Input element checked:
    Nodes     
    Node Name     IF_HROBJID
    Interface Node     1
    Input Element (Ext.)     1
    Dictionary structure     ZHR_HROBJID_LIST
    Cardinality     0..n
    I have another component: Component B Where I want to bind a table to this interface node.
    In component B :
    1. I definied the Componenet Usage of component B in the componenet controller.
    2. I drag & drop the IF_HROBJID node  to the component controller's context (the node is mapped)
    But when I try to bind a table, I always get the " The Mapping to Node COMPONENTCONTROLLER.1.IF_HROBJID Has Not Been Completed. "  error.
    nd_if_hrobjid = wd_context->path_get_node( path = 'IF_HROBJID' ).
    nd_if_hrobjid->bind_table( lt_if_hrobjid ).
    Can someone tell me what is the problem, and how can I solve it?
    Thanks
    N.

    Hi,
    Here you are trying to use component A in component B right?
    Then what you need to do is:
    1. Declare the component usage of A say A_USAGE in properties tab of component B.
    2. Create a node say 'DATA' in component controller of component B. The node 'DATA' would have the same structure as the node in your component A.
    3. Fill the node 'DATA' in component controller's method.
    4. Under your webdynpro component B, you will see Component Usages -> A_USAGE. open interface controller inside that.
        Goto context tab and drag the 'DATA' node from component controller of B on to the node in interface controller.
    Hope this is clear!
    Best Regards,
    Srilatha

  • How to view lifecycle for component usage

    Greetings-
    I have declared use of one component to another in the diagram view.  I initially set the lifecycle to "CreateOnDemand" using the "New Component Usage" wizard but now I'd like to change this to "Manual".  However, I don't see the lifecycle when I view the properties of the referenced Component in the diagram view.  How do I find/change this?

    Hi,
    In WebDynproExplorer expand the "UsedComponents" node under your component .
    Double click on the usedComponent and you can change the lifecycle property.
    Regards, Anilkumar

  • ABAP webDynpro MS Office component usage throws -  Access via 'NULL' object

    I am trying to include MS office word in my custom ABAP webDynro application based on the sample SAP Package SIOS for all the MS office component usage. <br>
    In WDMODIFY method  , when the courser is reaching the point to call office component  it throws a Null pointer exception. Not sure , if i am missing some thing here or skip a step. Please advice. <br>
    get the IOS interface <br>
      wd_this->factory ?= office->_method_handler. <br>
    Below is the code for WDMODIFY <br>
    method WDDOMODIFYVIEW . <br>
    DATA: <br>
        office TYPE REF TO cl_wd_view_element, <br>
        office_res TYPE REF TO cl_wd_view_element,<br>
        mime_repository TYPE REF TO if_mr_api,<br>
        content TYPE xstring, <br>
        url TYPE string VALUE <br>
    '/SAP/BC/WebDynpro/SAP/PUblic/BC/ssr/uuielibs/office_integration' & <br>
    '/iostest_fields.doc'. <br>
      DATA refexp TYPE REF TO cx_ios_exception.
      DATA: msgid TYPE syst-msgid,
         msgnr TYPE syst-msgno,
         msgty TYPE syst-msgty.
      get message manager
      DATA: l_current_controller TYPE REF TO if_wd_controller,
            l_message_manager    TYPE REF TO if_wd_message_manager.
      DATA envproxy TYPE REF TO if_ios_environment.
    just do it once
      CHECK first_time = abap_true.
      mime_repository = cl_mime_repository_api=>get_api( ).
      CALL METHOD mime_repository->get
        EXPORTING
          i_url     = url
        IMPORTING
          e_content = content.
      wd_context->set_attribute( name = 'DATAS' value = content ).
    get the office control
      office ?= view->get_element( 'GENERIC_OFFICE' ).
      ASSERT ID sios_demo CONDITION  office IS BOUND.
    not possible : Missing bugfix component bc-wd-aba
    office_res ?= view->get_element( 'RESULT_DOCUMENT' ).
    ASSERT ID sios_demo CONDITION  office IS BOUND.
    get the IOS interface
      wd_this->factory ?= office->_method_handler.
      ASSERT ID sios_demo CONDITION wd_this->factory IS BOUND.
    wd_this->factory_res ?= office_res->_method_handler.
    ASSERT ID sios_demo CONDITION wd_this->factory_res IS BOUND.
      TRY.
          wd_this->factory->get_wordprocessing_proxy(
             IMPORTING proxy = wd_this->document  ).
          ASSERT ID sios_demo CONDITION wd_this->document IS BOUND.
         wd_this->factory_res->get_wordprocessing_proxy(
            IMPORTING proxy = wd_this->document_res  ).
         ASSERT ID sios_demo CONDITION wd_this->document IS BOUND.
    *calling    setfields
          DATA co_error_info_getfields TYPE REF TO if_wd_context_element.
          DATA co_error_info_getfields_stru TYPE wdr_ext_attribute_pointer.
          co_error_info_getfields = wd_context->get_lead_selection( ).
          co_error_info_getfields_stru-attribute_name =
    'error_info_getfields'.
          co_error_info_getfields_stru-element = co_error_info_getfields.
          DATA fields TYPE if_ios_wordprocessing=>fields_type.
          DATA fieldstable TYPE if_ios_wordprocessing=>fields_type_table.
          DATA co_fieldcontent TYPE REF TO if_wd_context_element.
          DATA co_fieldcontent_stru TYPE wdr_ext_attribute_pointer.
          DATA inputfield1 TYPE xstring.
          DATA tabulator TYPE xstring.
          DATA endofline TYPE xstring.
          DATA: conv TYPE REF TO cl_abap_conv_out_ce.
          DATA: testfielddata TYPE string.
          testfielddata = 'SAPTEST'.
          conv = cl_abap_conv_out_ce=>create( encoding = '4110'
    ignore_cerr = abap_true ).
          CALL METHOD conv->convert( EXPORTING data = 'field1'
                                           IMPORTING buffer =
    fields-fieldidentifier  ).
          CALL METHOD conv->convert( EXPORTING data = testfielddata
                                           IMPORTING buffer = fields-value
          CALL METHOD conv->convert( EXPORTING data =
    cl_abap_char_utilities=>horizontal_tab
                                           IMPORTING buffer = tabulator  ).
          CALL METHOD conv->convert( EXPORTING data =
    cl_abap_char_utilities=>cr_lf
                                           IMPORTING buffer = endofline  ).
          wd_context->set_attribute( name = 'inputfield1'
                                     value = testfielddata ).
          APPEND fields TO fieldstable.
          wd_context->set_attribute( name = 'fieldcontent' value =
    fieldstable ).
          co_fieldcontent = wd_context->get_lead_selection( ).
          co_fieldcontent_stru-attribute_name = 'fieldcontent'.
          co_fieldcontent_stru-element = co_fieldcontent.
    document is set through datasource!
          wd_this->document->setfields( EXPORTING fieldsptr =
    co_fieldcontent_stru
                                                  tabulator = tabulator
                                                  endofline = endofline
                                                  errorinformation =
    co_error_info_getfields_stru ).
    *calling    opening result document
          DATA co_error_getcontent TYPE REF TO if_wd_context_element.
          DATA co_error_getcontent_stru TYPE wdr_ext_attribute_pointer.
          co_error_getcontent = wd_context->get_lead_selection( ).
          co_error_getcontent_stru-attribute_name = 'error_getcontent'.
          co_error_getcontent_stru-element = co_error_getcontent.
          DATA co_createdcontent TYPE REF TO if_wd_context_element.
          DATA co_createdcontent_stru TYPE wdr_ext_attribute_pointer.
          co_createdcontent = wd_context->get_lead_selection( ).
          co_createdcontent_stru-attribute_name = 'createdcontent'.
          co_createdcontent_stru-element = co_createdcontent.
    waiting of ACF Patch!
         wd_this->document->getcontent( errorinformation =
    *co_error_getcontent_stru
         contentpointer_result =  co_createdcontent_stru ).
    *calling    reopening template
          DATA error_opendocument TYPE REF TO if_wd_context_element.
          DATA error_opendocument_stru TYPE wdr_ext_attribute_pointer.
          error_opendocument = wd_context->get_lead_selection( ).
          error_opendocument_stru-attribute_name = 'error_opendocument'.
          error_opendocument_stru-element = error_opendocument.
         wd_this->document_res->if_ios_document~opendocument( EXPORTING errorinformation = error_opendocument_stru ).
        CATCH cx_ios_document INTO refexp.
        CATCH cx_ios_communicationwrapper INTO refexp.
        CATCH cx_ios_factory INTO refexp.
        CATCH cx_ios_environment INTO refexp.
        CATCH cx_ios_exception INTO refexp.
      ENDTRY.
      IF refexp IS NOT INITIAL.
        refexp->get_message( IMPORTING
                  mtype = msgty
                  number = msgnr
                  mid = msgid ).
        l_current_controller ?= wd_this->wd_get_api( ).
        CALL METHOD l_current_controller->get_message_manager
          RECEIVING
            message_manager = l_message_manager.
      report message
        CALL METHOD l_message_manager->report_t100_message
          EXPORTING
            msgid = msgid
            msgno = msgnr
            msgty = msgty.
      ENDIF.
    endmethod.
    Edited by: suryajoshi on Jan 13, 2011 5:04 PM

    Thanks for your reply.
    I have defined DATAS attribute  as XSTRING.  You are right i am using SIOS code from WDMODIFY.
    I am getting exception at this line:  Please advice. Its seems that factory is not been recognize. I double check , factory is present in attributes Tabs of the View.
    get the IOS interface
      wd_this->factory ?= office->_method_handler.
      ASSERT ID sios_demo CONDITION wd_this->factory IS BOUND.

  • Dynamically change embedded interface view in window

    I have a Maincomponent M which embedds in its Mainwindow an interface view V_L from a component definition interface cid L. CID L handles the layout with several views and has two at runtime chosen variants (= cid_L-implementating components ) L1 and L2.
    now my wd-application starts e.g. with layout L1 and I want to switch at runtime via a button or an event to L2. how can I achieve this?
    Because M embedds in its window V_L (which can be filled by L1 or L2) I tried to delete the component in the usage of L1 and create the new component for showing L2.
    but this doesn´t work. should I change some navigation links dynamically? because I thought when I create component L2 the interfaceview V_L is filled and I it´s automatically shown in its higher-ranking Mainwindow from M which embedds V_L.

    Hi Thorsten.
    Is your scenarion as follows.
    You define an outbound plug in your main (e.g. 'OUT') at design time.
    Then you start the application and you create a dynmic navigation using OUT
    to L1 and embedd L1 in M this way.
    Then you click a button and create again a dynamic navigation using OUT as outbound to L2 and embedd L2 in M?
    If so you create 2 navigations which will be triggered when you fire OUT.
    You can test this by setting the break point on the fire method. Somehow you will come to a point where you will see a table which stores the navigations and should contain 2.
    I have a table with authorisation which contains all necessary data for the navigation to a corresponding component. I use the authoridation ID as name for the outbound which have to be created dynamically. And I use a Hashtable to store the value. This is of the type CL_C2S_SAPI_HASHTABLE. I create the object as attribute in view controller. Then each time a link is clicked I check whether the hashtable already contains a value for this authorisation. If not I call
    prepare_dynamic_navigation and use the ID as outbound. Afterwards I store it in th hashtable.
    lv_outplug = wd_this->outbound_plugs->getvalue( lv_auth ).
    *   the navigation to the specified auth is performed
    *   for the first time and have to be created.
        if lv_outplug is initial.
          lv_outplug = lv_auth.
          try.
              l_view_controller_api->PREPARE_DYNAMIC_NAVIGATION(
                  source_window_name          = 'W_MAIN'
                  source_vusage_name          = 'V_MAIN_USAGE_1'
                  source_plug_name            = lv_outplug
                  target_component_name       = lv_comp
                  target_component_usage      = 'USED_COMPONENT'
                  target_view_name            = 'W_MAIN'
                  target_plug_name            = lv_plug
                  target_embedding_position   = 'V_MAIN/UI_COMP_CONTAINER' ).
    *         save outbound_plug for later usage.
              wd_this->outbound_plugs->setvalue(
               exporting
                 name = lv_auth
                 value = lv_outplug
            catch cx_wd_runtime_repository into lr_exception.
              data s type string.
              s = lr_exception->get_text( ).
              raise exception type cx_wdr_rt_exception.
          endtry.
        endif.
        l_view_controller_api->fire_plug(
         exporting
           plug_name = lv_outplug
    Hope this helps.
    Cheers,
    Sascha

  • Dynamically embed interface view in window

    Hi,
    I am reusing the same WD ALV component in different tabs on the same view
    of my application. The WD framework does not allow to embed the same interface view of the same component usage more than once on the same view -> error message '... is already embedded in your view...'
    So as I don't want to slow down the application and create 5 component usages of the ALV reuse component because of this, I would like to dynamically assign the same
    instance interface view to the currently viewed tab. In each tab, there would be a view
    container to embed the interface view. I tried calling the method below in both wdDoInit and on the plug handler of the default inbound plug, but no success so far
    I implemented the method as far as I understood the saphelp correctly:
    http://aiokeh.wdf.sap.corp:1080/SAPIKS2/contentShow.sap?_CLASS=IWB_EXTHLP&TMP_IWB_TASK=DISPLAY&_LOIO=4C60154219FCE12CE10000000A1550B0&_SLOIO=7C3545415EA6F523E10000000A155106&RELEASE=700&LANGUAGE=EN&_SEQNUM=71&_SCLASS=IWB_STRUCT
    method EMBED_ALV_VIEW .
      data: L_VIEW_CONTROLLER_API type ref to IF_WD_VIEW_CONTROLLER,
      L_VIEW_CONTROLLER_API = WD_THIS->WD_GET_API( ).
    L_VIEW_CONTROLLER_API->PREPARE_DYNAMIC_NAVIGATION(
                  source_window_name          = 'RPM_DASHBOARD_WINDOW'  "embedding app window
                  source_vusage_name          = 'RPM_DASHBOARD_VIEW_USAGE_1' "own local view containing all those tabs
                  source_plug_name            = 'DEFAULT'  " inbound plug for the window above
                  target_component_name       = 'SALV_WD_TABLE' "alv reuse component
                  target_component_usage      = 'SALV_WD_TABLE' "usage name of this component
                  target_view_name            = 'TABLE'  "interface view name of embedded component
                  target_plug_name            = 'DEFAULT' "startup plug for this interface view
                  target_embedding_position   = 'CNT1' ). "own view container on view.
    Thank you for your help!
    CHeers, Robert

    Hi Robert,
    Check out the following:
    In the Wiki they have added a feature about inputfields/dropdownboxes.
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdabap/dynamicuseof+Dictionary&
    you can also check the weblogs by Thomas:
    /people/thomas.szcs/blog/2005/12/28/dynamic-programming-in-web-dynpro-abap--introduction-and-part-i-understanding-ui-elements
    /people/thomas.szcs/blog/2006/01/03/dynamic-programming-in-web-dynpro-abap--part-ii-handling-viewelements
    /people/thomas.szcs/blog/2006/02/22/dynamic-programming-in-web-dynpro-abap--part-iii-aggregations-and-ddic-binding-of-viewelements
    You could use MultiPane or RowRepeater. WDR_TEST_EVENTS contains an example for both.
    Hope this will help you.
    Cheers,
    Darshna.

  • Component Usage error in MSS Leave Request approval

    Hi All,
    We are getting the below mentioned error only for few users while approving the leave request in MSS.
    com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: ComponentUsage(FPMConfigurationUsage): Active component must exist when getting interface controller. (Hint: Have you forgotten to create it with createComponent()? Should the lifecycle control of the component usage be "createOnDemand"?
        at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.ensureActiveComponent(ComponentUsage.java:773)
        at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getInterfaceControllerInternal(ComponentUsage.java:348)
        at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getInterfaceController(ComponentUsage.java:335)
        at com.sap.pcuigp.xssfpm.wd.wdp.InternalFPMComponent.wdGetFPMConfigurationUsageInterface(InternalFPMComponent.java:245)
        at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPM.changeToExceptionPerspective(FPMComponent.java:861)
        ... 41 more
    Kindly share your views on the same.
    Thanks and Regards,
    Vivek.

    Hi Anup,
    Please find the complete Trace below.
    System Environment
    Client
    Web Dynpro Client Type     HTML Client
    User agent     Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; MS-RTC LM 8)
    Version     null
    DOM version     null
    Client Type     msie6
    Client Type Profile     ie6
    ActiveX     enabled
    Cookies     enabled
    Frames     enabled
    Java Applets     enabled
    JavaScript     enabled
    Tables     enabled
    VB Script     enabled
    Server
    Web Dynpro Runtime     Vendor: SAP, build ID: 7.0013.20080611120129.0000 (release=NW04S_13_REL, buildtime=2008-09-11:17:05:50[UTC], changelist=42127, host=pwdfm114), build date: Wed Nov 19 19:21:28 CET 2008
    J2EE Engine     7.00 patchlevel 109044.44
    Java VM     IBM J9 VM, version:2.3, vendor: IBM Corporation
    Operating system     AIX, version: 5.3, architecture: ppc64
    Session & Other
    Session Locale     en
    Time of Failure     Sat Jan 02 12:26:56 CET 2010 (Java Time: 1262431616916)
    Web Dynpro Code Generation Infos
    sap.com/ess~lea
    SapDictionaryGenerationCore     7.0011.20061002105236.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:02:43[UTC], changelist=419377, host=PWDFM101.wdf.sap.corp)
    SapDictionaryGenerationTemplates     7.0011.20061002105236.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:02:51[UTC], changelist=419377, host=PWDFM101.wdf.sap.corp)
    SapGenerationFrameworkCore     7.0010.20060719095755.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:40:44[UTC], changelist=411255, host=PWDFM101.wdf.sap.corp)
    SapIdeWebDynproCheckLayer     7.0011.20061002110128.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:08:25[UTC], changelist=419396, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCommon     7.0010.20061002105432.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:41:39[UTC], changelist=419384, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCore     7.0010.20061002105432.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:41:32[UTC], changelist=419384, host=PWDFM101.wdf.sap.corp)
    SapMetamodelDictionary     7.0011.20060719095619.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:00:20[UTC], changelist=411251, host=PWDFM101.wdf.sap.corp)
    SapMetamodelWebDynpro     7.0011.20061227101814.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:05:13[UTC], changelist=431317, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationCTemplates     7.0011.20070125102926.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:21:35[UTC], changelist=434634, host=pwdfm101)
    SapWebDynproGenerationCore     7.0011.20061002110128.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:08:35[UTC], changelist=419396, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationTemplates     7.0011.20070125102926.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:21:35[UTC], changelist=434634, host=pwdfm101)
    sap.com/pcui_gp~xssutils
    SapDictionaryGenerationCore     7.0011.20061002105236.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:02:43[UTC], changelist=419377, host=PWDFM101.wdf.sap.corp)
    SapDictionaryGenerationTemplates     7.0011.20061002105236.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:02:51[UTC], changelist=419377, host=PWDFM101.wdf.sap.corp)
    SapGenerationFrameworkCore     7.0010.20060719095755.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:40:44[UTC], changelist=411255, host=PWDFM101.wdf.sap.corp)
    SapIdeWebDynproCheckLayer     7.0011.20061002110128.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:08:25[UTC], changelist=419396, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCommon     7.0010.20061002105432.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:41:39[UTC], changelist=419384, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCore     7.0010.20061002105432.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:41:32[UTC], changelist=419384, host=PWDFM101.wdf.sap.corp)
    SapMetamodelDictionary     7.0011.20060719095619.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:00:20[UTC], changelist=411251, host=PWDFM101.wdf.sap.corp)
    SapMetamodelWebDynpro     7.0011.20061227101814.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:05:13[UTC], changelist=431317, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationCTemplates     7.0011.20070125102926.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:21:35[UTC], changelist=434634, host=pwdfm101)
    SapWebDynproGenerationCore     7.0011.20061002110128.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:08:35[UTC], changelist=419396, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationTemplates     7.0011.20070125102926.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:21:35[UTC], changelist=434634, host=pwdfm101)
    sap.com/tcwddispwda
    No information available     null
    sap.com/pcui_gp~xssfpm
    SapDictionaryGenerationCore     7.0011.20061002105236.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:02:43[UTC], changelist=419377, host=PWDFM101.wdf.sap.corp)
    SapDictionaryGenerationTemplates     7.0011.20061002105236.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:02:51[UTC], changelist=419377, host=PWDFM101.wdf.sap.corp)
    SapGenerationFrameworkCore     7.0010.20060719095755.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:40:44[UTC], changelist=411255, host=PWDFM101.wdf.sap.corp)
    SapIdeWebDynproCheckLayer     7.0011.20061002110128.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:08:25[UTC], changelist=419396, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCommon     7.0010.20061002105432.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:41:39[UTC], changelist=419384, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCore     7.0010.20061002105432.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:41:32[UTC], changelist=419384, host=PWDFM101.wdf.sap.corp)
    SapMetamodelDictionary     7.0011.20060719095619.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:00:20[UTC], changelist=411251, host=PWDFM101.wdf.sap.corp)
    SapMetamodelWebDynpro     7.0011.20061227101814.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:05:13[UTC], changelist=431317, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationCTemplates     7.0011.20070125102926.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:21:35[UTC], changelist=434634, host=pwdfm101)
    SapWebDynproGenerationCore     7.0011.20061002110128.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:08:35[UTC], changelist=419396, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationTemplates     7.0011.20070125102926.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:21:35[UTC], changelist=434634, host=pwdfm101)
    sap.com/tcwdcorecomp
    No information available     null
    sap.com/pcui_gp~tecl
    SapDictionaryGenerationCore     7.0011.20061002105236.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:02:43[UTC], changelist=419377, host=PWDFM101.wdf.sap.corp)
    SapDictionaryGenerationTemplates     7.0011.20061002105236.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:02:51[UTC], changelist=419377, host=PWDFM101.wdf.sap.corp)
    SapGenerationFrameworkCore     7.0010.20060719095755.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:40:44[UTC], changelist=411255, host=PWDFM101.wdf.sap.corp)
    SapIdeWebDynproCheckLayer     7.0011.20061002110128.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:08:25[UTC], changelist=419396, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCommon     7.0010.20061002105432.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:41:39[UTC], changelist=419384, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCore     7.0010.20061002105432.0000 (release=645_VAL_REL, buildtime=2006-10-21:15:41:32[UTC], changelist=419384, host=PWDFM101.wdf.sap.corp)
    SapMetamodelDictionary     7.0011.20060719095619.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:00:20[UTC], changelist=411251, host=PWDFM101.wdf.sap.corp)
    SapMetamodelWebDynpro     7.0011.20061227101814.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:05:13[UTC], changelist=431317, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationCTemplates     7.0011.20070125102926.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:21:35[UTC], changelist=434634, host=pwdfm101)
    SapWebDynproGenerationCore     7.0011.20061002110128.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:08:35[UTC], changelist=419396, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationTemplates     7.0011.20070125102926.0000 (release=645_VAL_REL, buildtime=2007-01-31:20:21:35[UTC], changelist=434634, host=pwdfm101)
    Detailed Error Information
    Detailed Exception Chain
    com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: ComponentUsage(FPMConfigurationUsage): Active component must exist when getting interface controller. (Hint: Have you forgotten to create it with createComponent()? Should the lifecycle control of the component usage be "createOnDemand"?
           at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.ensureActiveComponent(ComponentUsage.java:773)
           at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getInterfaceControllerInternal(ComponentUsage.java:348)
           at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getInterfaceController(ComponentUsage.java:335)
           at com.sap.pcuigp.xssfpm.wd.wdp.InternalFPMComponent.wdGetFPMConfigurationUsageInterface(InternalFPMComponent.java:245)
           at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPM.changeToExceptionPerspective(FPMComponent.java:861)
           at com.sap.pcuigp.xssfpm.java.MessageManager.handleException(MessageManager.java:258)
           at com.sap.pcuigp.xssfpm.java.MessageManager.raiseException(MessageManager.java:103)
           at com.sap.pcuigp.xssfpm.wd.BackendConnections.connectModelInternal(BackendConnections.java:323)
           at com.sap.pcuigp.xssfpm.wd.BackendConnections.initBackend(BackendConnections.java:256)
           at com.sap.pcuigp.xssfpm.wd.BackendConnections.connectModel(BackendConnections.java:154)
           at com.sap.pcuigp.xssfpm.wd.wdp.InternalBackendConnections.connectModel(InternalBackendConnections.java:237)
           at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPM.connectModel(FPMComponent.java:841)
           at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPMProxy.connectModel(FPMComponent.java:1071)
           at com.sap.pcuigp.xssfpm.wd.BackendConnections.init(BackendConnections.java:141)
           at com.sap.pcuigp.xssfpm.wd.wdp.InternalBackendConnections.init(InternalBackendConnections.java:233)
           at com.sap.pcuigp.xssfpm.wd.FPMComponent.wdDoInit(FPMComponent.java:182)
           at com.sap.pcuigp.xssfpm.wd.wdp.InternalFPMComponent.wdDoInit(InternalFPMComponent.java:110)
           at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:108)
           at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
           at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
           at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:430)
           at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:362)
           at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.initApplication(ApplicationSession.java:756)
           at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:291)
           at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)
           at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)
           at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
           at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:150)
           at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
           at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:46)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
           at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
           at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
           at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
           at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
           at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
           at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
           at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
           at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
           at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
           at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
           at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
           at java.security.AccessController.doPrivileged(AccessController.java:219)
           at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
           at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Thanks and Regards,
    Vivek.

Maybe you are looking for

  • Concept of Process 2LIS_03_BX and 2LIS_03_BF

    Hi all, I tried to load the data from R/3 for initialization and material movement with the following steps : 1. I run the infopackage to load the data for  initialization stock from R/3. Let say I config the setup table on 24 Nov 2005. When I check

  • How to modify data recieved from the database and displayed in a DG

    Hello, it's me again with a simple question : i've got the SQLi request who returns multiples rows. In this row i have for example : Reward --> 1 How to, instead of displaying  1 in the datagrid, change this value to "YES" I follow this lead : privat

  • Problem while creating CAF project in NWDS workspace

    Hi Experts, We are facing a problem while creating CAF project in NWDS workspace. Even though we have tried in new workspace we are facing the issue. Find the below build error. We are not getting any error when we build from CBS. [javac] ERROR: C:\s

  • I have Firefox 4 on Mac OS10.6 and am unable to download Firefox updates.s

    I periodically get on my screen a notice of an available update to Firefox. It says to click in order to download. I do so and it goes on forever and continues indefinitely. I also tried to download Firefox 5 manually and when trying to put it into m

  • Installation of WareHouse Builder

    Hi, I need to know like installing WareHouse Builder, that I need to have installed and that it requires to work correctly. Ademas, desire to know if something manual in Spanish exists, of installation and use. Thanks.