Design question: Interface Controller vs. component controller

Hello,
I have a component A. This component has a component controller (compController) and an interface controller (intController).
Component controller has method compMethod()
Interface controller has method intMethod()
- Am i allowed to call intMethod from component controller? ( i'm pretty sure this isnt bad design because this is also done in the tutorial on eventing)
- Am i allowed to call compMethod from intController or is this bad design?
- Am i allowed to subscribe compController to event in intController or is this bad design?
Kind regards,
Joren

Hi Joren,
like Valery already pointed out, we recommend not to implement any logic in the component interface controller but only implement methods used for delegating logic to the component controller. This is based on the fact, that the component interface controller will be implemented by the component controller in the the next major SAP NetWeaver Release. This means that it will not have its own Java class like in NW04 and NW04s. To simplify migration the interface controller code should be as slim as possible by applying the delegation principle.
You wrote:
<i>- Am i allowed to call intMethod from component controller? ( i'm pretty sure this isnt bad design because this is also done in the tutorial on eventing)</i>
Yes, my (very old) tutorial on serverside eventing exposes a public method <i>fireEvent()</i> which is invoked by the component controller. In early versions of NW04 the wdFireEventInnerEvent() method was not exposed in the IPublic-API of the component interface controller but only in the IPrivate-API. Therefore an additional method fireEvent() must be defined to fire the event from another controller. As a negative side effect, this public fireEvent() method is also exposed by the IExternal-API of the component interface  controller so that the event can be fired from outside (by the Embedder component) which is not desired in most cases.
Meanwhile the wdFire<event name>() method is exposed by the IPublic-API of the component interface controller, so that the public method fire<Event name>() is no longer needed.
I will update the tutorial in this respect so that it again propagates best practices.
Regards, Bertram

Similar Messages

  • Component controller Vs interface controller

    Hi Experts
    Please state me the difference and similarities between the component controller and interface controller
    Regards
    Noel

    Hi
    Similarities between these two is that both are controller but each having different purpose in the application
    Component Controller
    1.Starting point of any application,(you can't create any app without defining any Component)
    2.Master Controller of the complete Component structure (View ,Model ,interface ,window)
    3.If function defined in Component Controller or Custom Controller it is available to any controller within your  component (Interface, View, Custom) but not available outside.
    Interface Controller
      1. To make Contents outside of the world one separate controller called Interface  Controller come into picture
          whose only task is to exposing of the content to outside.
    take further help from following threads
    1.[Component Controller,Custom Controller,interface controller|Component Controller,Custom Controller,interface controller;
    2. [Basic Question regarding component Controller and component interface|Re: Basic Question regarding component Controller and component interface;
    3.[controllers and components|Re: confused with controllers and components.;

  • Question about Intel 82801FBM LPC Interface Controller in a Tecra A3X

    I have had to replace the HDD in a A3X. XP pro sp2 loaded fine and all's well but the device mngr is reporting this Intel 82801FBM LPC Interface Controller as an Unknown Device.
    The Intel Chipset ID Utility identifies this as a component of the Chipset 82915GM/GMS/910 GML
    I have run the Intel software update utility several times with no joy.
    I can find reference's to this driver but cannot find a download for it.
    Like I said the laptop seems to running fine except for this Unknown Device.
    Any suggestions greatly appreciated

    Hi,
    "Dont go to the seas when you can fish from the coast" - quoted the user from another forum which wrote this solution for your problem:
    1)Go into device manager
    2) Right click 82801
    3) Update driver
    4) No, not this time -> next
    5) Install from a specifin location -> next
    6) Dont search I will choose... -> next
    7) From the left box choose Intel and from the right scroll down until you meet this strange 82801FMB.... -> next
    Thats it!
    Thanks to google. :)
    Greets

  • Component Interface , INterface controller in WEB UI

    Hi Experts,
    Can anyone tell me what is a component interface, component usage , Interface controller and interface view?
    I am a beginner in WEB UI and is getting confused with these terms.
    Please help.
    Many Thanks,
    Neeraj

    Hi,
    component interface -> interface view:
    Here you can define which Comp/Window should be accessable from outside the component
    For example: COMP_1/MainWindow in component interface means this can be accessed as usage from other component
    component interface -> interface controller:
    In this node there is 2 child nodes: Context and Events:
    I don't know how to use Events. But in Context you can add context node from component controller, which can be accessed from outside. This is specially important, when you want to bind two context nodes from two different components.
    You can see how this can be used in component controller class in the method WD_USAGE_INITIALIZE
    component usage:
    Here you can define a usage of of other component.
    For example: In your COMP_2 you can create a usage from other component (COMP_1/MainWindow).
    Regards,
    Steve

  • Regarding Component interface controller

    hi all
    Can anyone explain me use of Component Interface Controller under Component with example.
    Thanks in advance
    Imityaz

    Hi,
    Interface Controller
    One Web Dynpro Component may declare the use of another Web Dynpro Component to form a u201CParent-Childu201D usage relationship. In such cases, the only point of interaction between the parent and child components is the functionality found in the childu2019s interface controller.
    if an interface controller is part of a component interface, the controller editor is in change mode and the context, the events and the methods can be implemented and edited directly.
    Refer this thread,step by step procedure is there.
    /docs/DOC-8061#61 [original link is broken]
    http://help.sap.com/saphelp_nw70/helpdata/EN/47/45641b80f81962e10000000a114a6b/frameset.htm
    http://help.sap.com/saphelp_nw70/helpdata/EN/44/0dcafa2d9d1ca2e10000000a11466f/frameset.htm
    Regards,
    Sunaina Reddy T

  • Interface Controller of a Component

    Hi,
    Can anyone explain/provide any doc which explains using one component in another component using interface controller.
    Warm Regards,
    Imtiyaz

    Hi,
    Refer these links,
    WebDynpro Componentization [original link is broken]
    https://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/c053bcfa-426e-2910-f28a-91dec33159d6 [original link is broken]
    http://help.sap.com/saphelp_nw04/helpdata/en/15/0d4f21c17c8044af4868130e9fea07/content.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f727d100-0801-0010-4cbd-b0ad5c161945.
    /people/sudhir.gorantla4/blog/2008/02/27/componentization-of-webdynpro-application-in-ce71
    Regards,
    Sunaina Reddy T

  • How to create  in the Interface controller of a component

    Hi  Gurus............
    Could any one tel  How to create a method  in the interface controller of component
    and  use that componet  into other  comoponent as  Used Contoller .
    I  Found  following  Tutorial  but it was not cleared  Description.
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2e71ce83-0b01-0010-11a4-98c28a33195f
    Thanks in Advance.

    Hi all,
    My actual requirement is as follows..
    I have implemented some functionality in One component .
    Here I  want to create a new method in the interface controller, so that I should be able to access this method in another component by declaring this component as used component in another one.
    My problem is, I am unable to create new method in interface controller of my component,
    It is appearing i n 'disabled' mode.
    Can any one please suggest me the appropriate solution?
    Thanks in advance
    SivaKumar

  • How to consume a method on the interface controller from another component?

    Hello,
    I have a project which contains two Components, A & B.
    I have exposed a method at the interface controller of Component A. How can I consume it from Component B?

    Hi,
       First add ComponentA as a used webdynpro component in ComponentB. Then open the Interface Controller of B and switch to Properties Tab. Select Add in the "Required Controllers" section. From the dialog that appears, select A's interface controller. Then you can access A's method from B's interface controller as:
    wdThis.wdGetAComponentInterface().<method>;
    Regards,
    Satyajit.

  • Call method of interface controller from component controller

    hi,
    I have created one method in the interface controller of a component. Now i have this method along with attributes to the component controller. Now from the component controller i want to call the method of the interface controller. How do i do it???

    Hi,
    You dont need to call the method from the interface controller when you are in the same component.
    You can call the method which is in the component controller.
    Interface controller is used to expose some methods to a different component.
    Ex Comp a want to expose a method which will be used by comp b then  you need the interface controller in comp a.
    Comp b will use comp a as used component
    then it will invoke the methods.
    Regards
    Ayyapparaj

  • Compsition Environment: interface controller in web dynpro

    Hi All,
    (I know this is not right place to raise this question but if anyone know)
    I've installed NW CE 7.1 and am trying to trigger an event created in the Interface controller. I observed that the methods and the events declared in the interface controller are not accessible in the view level. Has the WD design time concepts undergone a change?. In short, I'm not able to add the Interface controller as a required controller in any of the views that are present inside the same component.
    Any clues on this?
    Regards
    Satish.

    Since one dedicated link is there between
    Comopnent  and Interface controller.

  • IN Compsition Environment: interface controller in web dynpro

    Hi All,
    I've installed NW CE 7.1 and am trying to trigger an event created in the Interface controller. I observed that the methods and the events declared in the interface controller are not accessible in the view level. Has the WD design time concepts undergone a change?. In short, I'm not able to add the Interface controller as a required controller in any of the views that are present inside the same component.
    Any clues on this?
    Regards
    Satish.

    Hi All,
    I've installed NW CE 7.1 and am trying to trigger an event created in the Interface controller. I observed that the methods and the events declared in the interface controller are not accessible in the view level. Has the WD design time concepts undergone a change?. In short, I'm not able to add the Interface controller as a required controller in any of the views that are present inside the same component.
    Any clues on this?
    Regards
    Satish.

  • Using Interface controller in OCA application

    Hi,
    My requirement is to pass information and screen control between two components in two different DCs.
    My parent DC Component has to pass information to my child DC Component and also call the view assembly of the child DC.
    I am using CE7.1 SP07 PAT003.
    In my child DC I have created a component Interface Definition say ChildInterface. In the context of interface controller of ChildInterface I have added a string attribute. ChildInterface also has a view container.
    Now in my Child component I add ChildInterface as my Implemented Interface. I map the window of the child component to the ChildInterface. To the view container I add the default view of the component.
    Now I have created a public part and added the ChildInterface as an entity.
    I add a dependency in my Parent Component to this child DC's public part.
    At design time I can access my ChildInterface's context from my parent component. However, while adding a link from parent default view to ChildInterfaceView, it gives me an error. however on reload it suppress the error but doesnt open the java editors.
    While trying to deploy the applications it gives me a deployment failure message.
    Following is the trace-
    <r id="1240744927041" t="16:52:07" d="2009-04-26" s="E" c="000" u="" g="" m="Missing app.xml in component C:\Program Files\SAP\IDE\CE\eclipse\plugins\com.sap.tc.mobile.dt.oca.rt\MI\bin\..\inbox\demo.sap.comparentimplementation\demo.sap.comparentimplementation.wdl">
    <f n="LocationName" v=" (com.sap.tc.mobile.cfs.deploy.oca.OCADeployer:OCADeployer)"/>
    <f n="ThreadName" v="main"/>
    </r>
    <r id="1240744927042" t="16:52:07" d="2009-04-26" s="E" c="000" u="" g="" m="Deployment of Mobile Component parent(1.0) failed --&gt; java.io.IOException: Missing app.xml in component C:\Program Files\SAP\IDE\CE\eclipse\plugins\com.sap.tc.mobile.dt.oca.rt\MI\bin\..\inbox\demo.sap.comparentimplementation\demo.sap.comparentimplementation.wdl
         at com.sap.tc.mobile.cfs.deploy.oca.OCADeployer.deploy(OCADeployer.java:81)
         at com.sap.tc.mobile.cfs.deploy.DeploymentManager.processDeploymentStatusObjects(DeploymentManager.java:550)
         at com.sap.tc.mobile.cfs.deploy.DeploymentManager.processInbox(DeploymentManager.java:197)
         at com.sap.tc.mobile.cfs.init.FrameworkInitializer.init(FrameworkInitializer.java:192)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sap.tc.mobile.cfs.startup.pda.Startup.main(Unknown Source)
    ">
    <f n="ThreadName" v="main"/>
    </r>
    <r id="1240744927695" t="16:52:07" d="2009-04-26" s="E" c="000" u="" g="" m="Resourcebundle sap.comtcmobilewdlitecontainer could not be found. Trying to use the default bundle.">
    <f n="LocationName" v=" (com.sap.tc.mobile.wdlite.renderer.exception.OCAExceptionLocalizeHelper:)"/>
    <f n="ThreadName" v="main"/>
    </r>
    <r id="1240744927696" t="16:52:07" d="2009-04-26" s="E" c="000" u="" g="" m="Internal Error. Please check the log file. --&gt; java.lang.NoSuchMethodException: com.sap.tc.mobile.wdlite.framework.Start.setUpSystemMenu()
         at java.lang.Class.getMethod(Class.java:1581)
         at com.sap.tc.mobile.wdlite.progmodel.core.Application.resetSystemMenu(Application.java:260)
         at com.sap.tc.mobile.wdlite.progmodel.core.Application.enter(Application.java:242)
         at com.sap.tc.mobile.wdlite.progmodel.core.Application.setCurrent(Application.java:119)
         at com.sap.tc.mobile.wdlite.progmodel.core.Application.launch(Application.java:143)
         at com.sap.tc.mobile.wdlite.progmodel.core.Application.launch(Application.java:175)
         at com.sap.tc.mobile.wdlite.progmodel.core.WDLite.launchApplication(WDLite.java:334)
         at com.sap.tc.mobile.wdlite.framework.Start.runOnContext(Start.java:580)
         at com.sap.tc.mobile.wdlite.framework.Start.startApplication(Start.java:604)
         at com.sap.tc.mobile.wdlite.framework.Start.startContainer(Start.java:641)
         at com.sap.tc.mobile.cfs.framework.spi.FrameworkManager.startContainer(FrameworkManager.java:259)
         at com.sap.tc.mobile.cfs.init.FrameworkInitializer.init(FrameworkInitializer.java:230)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sap.tc.mobile.cfs.startup.pda.Startup.main(Unknown Source)
    ">
    <f n="ThreadName" v="main"/>
    </r>
    <r id="1240744927697" t="16:52:07" d="2009-04-26" s="E" c="000" u="" g="" m="Internal Error. Please check the log file.">
    <f n="LocationName" v=" (com.sap.tc.mobile.wdlite.renderer.exception.OCAExceptionHandler:)"/>
    <f n="ThreadName" v="main"/>
    Please help.
    Regards,
    Nisha

    please do attach the trace files..
    Meanwhile , just check the way you have implemented the interface and the interface defintion of achild node are correct.
    Once the implementations are correct,there should not be problem in deployment.
    Let us know if you need more info on interface definton creation ...
    Regards,
    Lakshmi
    Edited by: Lakshmi Reddi on May 28, 2009 6:03 AM

  • Interface Controller Issue

    Hi,
    Hope you can help me on this one. We're trying to use an interface controller to use an external Web Dynpro app in our current Web Dynpro project. Whenever we try to do some context mapping in our Wed Dynpro project, it seems that our Web Dynpro project (during build time) fails to identify context of our component controller (it gives an <insert context node name / context objects here> cannot be resolved errors).
    Did anyone experience this error or would anyone know how to resolve this?
    Thanks!
    Angelo

    Hi Angelo,
    Please have a look at below document might helps for your issue In[Inter Application Communication and Navigation (Design Time) in WebDynpro|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a0ae5f90-1679-2c10-4183-8c64cf932088?quicklink=index&overridelayout=true]
    Suppose there are two DC1 and DC2.
    DC1 having context node XYZ/attrubute available in DC1 component Controller and interface controller and mapped it properly.
    - then build and deploy DC1.
    - Now sync sources and sync used DC for DC2
    - then click on component name of the DC2 and bind interface controller to component controller and drag n drop context node XYZ to component controller.
    - once done then try to re-build and use the contect node XYZ
    Hope it will helps
    Regards
    Arun

  • Code example using interface controller ?

    Hi, guys:
    I have a question.
    In CRM UI, I need to integrate one component with another component, and I want to pass the value from 1st component to 2nd component using interface controller. Does any one who have done this before and have a code example?
    Really appreciate!
    Eric

    Hi Eric,
    Refer:
    [http://forums.sdn.sap.com/thread.jspa?threadID=2014259|http://forums.sdn.sap.com/thread.jspa?threadID=2014259]
    [http://forums.sdn.sap.com/thread.jspa?threadID=1909625|http://forums.sdn.sap.com/thread.jspa?threadID=1909625]
    Regards,
    Leon

  • Accessing interface controller in different WD DC

    Hi,
    I have the following question related to using coding from WD DC1 in DC2 (just two example DCs) since I have problems accessing the interface controller of a different WD DC.
    What steps are necessary to use the interface controller of DC1 (to be more precise the interface controller of a particular WD component within a WD DC) in DC2 and even more important in which order?
    My assumption:
    1) Expose interface controller as public part of DC1.
    How is this done? Via exposing the whole WD Component in the public part wizard?
    2) Build DC1.
    3) Add DC1 to "Used DCs" for DC2.
    4) Now the DC1's interface controller should be accessible? Am I right?
    Unfortunately is the corresponding interface controller not visible in DC2.
    Any help is really appreciated.
    Kind regards,
    Michel

    Hi Michael,
    After adding the first DC's component to DC2's used DC's, did you select the same under the used WebDynpro Components of the component controller? If not :
    Under the component controller of your second DC, right click on "used WebDynpro Components", select "Add Used Component" and then on clicking on the browse button, in addition to the same component controller you will be able to see the component of the first DC too. Select this and provide a suitable name.
    After this you will be able to access your first DC's interface controller in DC2.
    Hope this helps,
    Best Regards,
    Nibu.

Maybe you are looking for