Problems with external context mapping

Hi ,
I am having the following problems with external context mapping from one WD component to another.
Problem description:
In the <i>Component Interfaces</i> I have defined a WD interface "InfA".
In the <i>interface controller</i> of this compoenent,I have ContextA and attributeA(cardinality 1..1).The contextA is marked as an "Input Element".
Now my webdynpro componentB adds InfA as used component.In componentB I decalre a contextB with attributeB and map it to contextA to set up the external context mapping.
Now I expect that if any webdynpro component implements this WD interface InfA ,he has access to contextA with the data getting filled from contextB.
After i have created the component for the used component I try to fill values in the source node contextB thru this code:
wdContext.currentContextB.setB(value);
But in the runtime I keep getting error nullPointerException for nodeContextB,suggesting that the mapping has not been completed.
Can anyone suggest due to what the error can come ,and, if its a webdynpro bug ,is there a workaround??
Thanks in advance for your help.
Best regards
Sourav

HI,
Valery : I personally checked  by doing the example, if the names of value attribute are different in the child's interface and parents component controller then it throws the exception.
Sourav: NullPointer Exception is thrown when something is not properly initialised, if in the main component the cardinality of mapped origin is 1.1 then you need to access it element directly like:
wdContext.currentParentNodeElement().setFname("Abhijeet");
    wdContext.currentParentNodeElement().setLname("M");
i will suggest just check out if you are declaring some element of value node and without initialising taking its use or what?
if this doesnt solve your problem, please post the expanded exception.
hope it helps
let me know if you face nay problem
regards

Similar Messages

  • Problem with CrossComponent Context Mapping with PopupWindow (web dynpro ab

    The situation:
    I have four views (View V1, V2, V2_popup, V3) in three Components C1, C2,C3.
    View V1 is embeded in Component C1. View V2 is embeded in C2 with view V2_popup as Popup-Window.
    View V3 is embeded in Component-C3. And at last the View of Component C2 and C3 are embeded in View V1.
    The Problem is the CrossOver Context Mapping between the view V2 and V3.
    My first way is the "direct context mapping":
    I define a node in the ComponenteControllen from Component-C2 as interface and use it over the ComponentenController
    from Component-C3 in view-V3. Now I bind an attribute of the mapped node to an ui-element (e.g: inputfield),
    but the output of the Field is empty.
    The second way is, that I define an external Mapping for this situtation.
    I define a node in the componente-controllen from Component-C2 (an Component-C3)as interface with the attribute "Input Element (Ext)".
    Than I map the two nodes with a node from Component-C1. That's works fine.
    BUT, if I execute an action (e.g. action_save)in the popup for view-v2 (V2_popup) the changings from the inputfields don't write (show)in the context of the
    popup-view. I check this with the debugger. And if I close the popup and open it again, the changings are visible.
    Short: If I define a node with attribute "Input Element (Ext)", I don't can read changings from
    the screen in a popup-window.
    How I can solve this problem???
    Message was edited by:
            Maik Sturm

    Hi Maik,
    try this:
    at first you have to instantiate all! used components in the wddoinit method of the componentcontroller in your main (c1) component.
    e.g. instance of c2 Component
      lr_usage_c2_comp =   wd_this->wd_cpuse_c2_comp( ).
      IF lr_usage_c2_comp->has_active_component( ) IS INITIAL.
        lr_usage_c2_comp->create_component( ).
      ENDIF.
    and at the end set the reference:
      l_ref_interfacecontroller =  wd_this->wd_cpifc_c3_comp( ).
      l_ref_interfacecontroller->set_usage(
        ir_usage_c2_comp = lr_usage_c2_comp ).
    set_usage is a method in the c3 component controller,
    METHOD set_usage .
      DATA: lr_usage TYPE REF TO if_wd_component_usage.
      lr_usage = wd_this->wd_cpuse_c2_comp( ).
      lr_usage->enter_referencing_mode( ir_usage_c2_comp ).
    After doing this the components are using the same instance and you can simply use direct mapping between the components.
    Hope it helps.
    regards
    Christian

  • External context mapping with recursive treenode

    Hi,
    did anybody succeed with external context mapping of a recursive tree node?
    I get the following runtime error. Everything works fine if I use a "regular" value node. I´ve also experimented with manual and automatic component creation.
    Any help is appreciated
    Helmut
    com.sap.tc.webdynpro.progmodel.context.ContextException: NodeInfo(InnerCompInterface.OuterCompTree): cannot create nodes, no mapping defined yet
         at com.sap.tc.webdynpro.progmodel.context.MappingInfo.getDataNode(MappingInfo.java:102)
         at com.sap.tc.webdynpro.progmodel.context.RecursiveNodeInfo.init(RecursiveNodeInfo.java:127)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
         at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:38)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
         at com.sap.tc.webdynpro.progmodel.controller.Component.getCustomControllerInternal(Component.java:409)
         at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:347)
         at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:376)
         at com.sap.tc.webdynpro.progmodel.context.MappingInfo.init(MappingInfo.java:137)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:667)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
         at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:38)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:346)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.createComponent(ClientComponent.java:854)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.createComponent(ClientComponent.java:157)
         at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponentInternal(ComponentUsage.java:137)
         at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponent(ComponentUsage.java:104)
         at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createInstanceIfDemanded(ComponentUsage.java:659)
         at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getInterfaceControllerInternal(ComponentUsage.java:300)
         at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getControllerInternal(ComponentUsage.java:341)
         at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:381)
         at com.sap.tc.webdynpro.progmodel.context.MappingInfo.getContext(MappingInfo.java:54)
         at com.sap.tc.webdynpro.progmodel.context.MappingInfo.isComplete(MappingInfo.java:92)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.getStructureType(NodeInfo.java:247)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.getStructureType(NodeInfo.java:247)
         at com.sap.tc.webdynpro.progmodel.context.AttributeInfo.initNodeMapping(AttributeInfo.java:546)
         at com.sap.tc.webdynpro.progmodel.context.AttributeInfo.init(AttributeInfo.java:432)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAttributes(NodeInfo.java:692)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAfterCompletedMapping(NodeInfo.java:698)
         at com.sap.tc.webdynpro.progmodel.context.MappingInfo.initAfterCompletedMapping(MappingInfo.java:159)
         at com.sap.tc.webdynpro.progmodel.context.MappingInfo.initMapping(MappingInfo.java:152)
         at com.sap.tc.webdynpro.progmodel.context.MappingInfo.init(MappingInfo.java:142)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:667)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
         at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:38)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.getView(ViewManager.java:539)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.bindRoot(ViewManager.java:421)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.init(ViewManager.java:129)
         at com.sap.tc.webdynpro.progmodel.view.InterfaceView.initController(InterfaceView.java:41)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.displayToplevelComponent(ClientComponent.java:134)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:364)
         at com.sap.tc.webdynpro.clientserver.task.Task.createApplication(Task.java:217)
         at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:548)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:57)
         at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:249)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:139)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:101)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:38)
         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:383)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:263)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:333)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:311)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:811)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:235)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:147)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
         at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:144)
    /code

    Hi Helmut,
    I face exactly the same problem with NW 2.0.7.
    It is a bug in WebDynpro runtime.
    Good news is that it is fixed with SP9, so this functionality will work in final release (I believe WD team uses regression tests
    Regards,
    VS

  • External context mapping problem

    Hi,
    I am trying to create a sample application for external context mapping
    1. I created a webdynpro project.
    2. In that project i created  2 web dynpro components PrComp and ChComp. 
    3. In the ChComp Interface controller context created a node MappedNode with attribute text.The node property isInputElement is set to true and also the carinality to 0..1
    4. Added the ChComp as Used Component for PrComp.
    5. Mapped the context of the ChComp Interface controller to ChComp Component controller and PrComp component Controller.
    6. In the ChComp Component controller, i initialize the node atribute text with some value.
    public void wdDoInit()
        //@@begin wdDoInit()
         wdContext.currentMappednodeElement().setMappedText("Mapped Attribute");
        //@@end
    7. In the PrComp component controller i create the ChComp and try to retrieve the value of the node attribute text.
           public void wdDoInit()
        //@@begin wdDoInit()
         wdThis.wdGetChildCompComponentUsage().createComponent();
         String text = wdContext.currentMappednodeElement().getMappedText();
         wdComponentAPI.getMessageManager().reportSuccess("mapped value "+text);
        //@@end
    When i deploy and run the application i get the following error
    java.lang.NullPointerException
        at com.sap.tc.ram.sample.external.context.mapping.ChComp.wdDoInit(ChComp.java:98)
    I am creating this app as a sample for external context mapping.please tell me if i am doing the rigth thing.

    Shiram,
    Your code will not work until you remove any node access from wdDoInit in ChComp (step 6).
    Think about the actual execution sequence:
    1. PrComp creates usage of child (ChComp) via createComponent
    2. ChComp get initialized internally by WD framework, as part of process ChComp.wdDoInit is invoked
    3. Context mapping is applied parent(source) <->child(target)
    So step [2] happens always before [3], you didn't alter this behavior via cardinality as suggested by other readers.
    What you can to do?
    1. Do not use wdDoInit of ChComp to populate / access data. Populate data from PrComp instead.
    2. Do you really need isInputElement? Think about it. If you remove isInputElement setting in child, then create mapped node in parent, then node in child will be source of data and you may safely populate it ChComp.wdDoInit.
    And, as other pointed out, cardinality still can cause error -- you are using 0..* but not creating element manually. Either set cardinality to 1..* or create element in wdDoInit of "source" controller (PrComp for [1], ChComp for [2])
    Valery Silaev
    SaM Solutions
    http://www.sam-solutions.net

  • External context mapping with CID

    I have a component interface definition CID_A and a Main-Component M.
    At runtime one child component of CID_A should get an input in its view and put this value in the context of M. so I need external (reverse) context mapping.
    the component of CID_A determines the attribut in the (global) context of M.
    but how can I declare this attribut as externally mappable? the option "isInput-element" is not available in the interface controller of cid_a and in the components which implement cid_a it is deactivated and grayed out.
    what can I do to realise external mapping from the implementing component of cid_a to the mothercomponent M?

    >So you have one interface component IF_C which has the external input node and >several components which implement IF_C which should be filled thru external mapping >thru component M, rite?
    my scenario:
    IF_A has two cid-implementating components a1 and a2 which are chosen at runtime.
    a1 or a2 should fill the context of the main-component M via external context mapping. M should hold the global context and share the attribute (from the external mapping of IF_A) to other CID´s (let´s call them IF_B - IF_C). Another IF_L handels the layout from all components.
    I think I did it that way from the following seven steps from your link but I will look tomorrow at work:
    "1. Define the interface component with context node (Input Element Externl)
    2. Create a component which defines a usage to the interface component
    3. Go to the component usages folder and open it.
    4. Right click on the usage you just created and choose Create controller
    usage.
    5. Double click the interfacecontroller_usage you just created.
    6. Here you can add a controller usage using the button at the top.
    7. Now you should be able to define the external mapping by dragging the node of
    the component controller to the interfacecontroller_usage node."
    it´s a litte bit difficult in my scenario because the at runtime chosen components from IF A-C are shown in a window in M (handelt from if_L) and the attribut which I want to use for external mapping is bound to a input field in the view from the components a1 and a2. the input to that field should modify the output in the views from the components from IF_B and IF_C. could this be the fault? that I bound the attribut for external mapping in designtime to an ui-element? I realised this so far only at a1 and when I chose a2 (without that bound ui-element) testing my component works without faults.
    thanks and until tomorrow...

  • External Context Mapping - Pass data from Child to Parent

    Hello,
    I have the following scenario:
    DCParent Component (contains)
    - DCChildComp1    (used DC)
    - DCChildComp2    (used DC)
    - DCChildComp3    (used DC)
    - DCChildComp4    (used DC)
    What user enters in DCChildComp1 then needs to be made available to DCParent and all other DCChildComp(n) siblings.
    I have looked the posts and blogs in SDN and all of them seem to deal with passing inputField data from Parent to Child. May be I am missing it.
    In my case, I need the data to be passed from DCChildComp1 to DCParent ie Child to Parent. Then from DCParent to other DCChildComps.
    How should I go about
    a. defining the context nodes and Component Interface context nodes in parent vs child vs siblings and
    b. how should I map them externally?
    Step by step instruction would be helpful.
    Thanks in advance,
    SK.

    Thanks for all the help. As I had already seen all the links and blogs you had linked here, I was still confused about how it all came together. Finally, I got it after reading Bertram Ganz's response in this thread [Context Mapping problem;.
    when you map a context in the parent comp to an interface context in the used child component you do not define an external context mapping relation. That's normal context mapping as the data context resides in the child component.
    I have it working now and I am able to push the changes in the child component's context to the parent.
    For those who are interested in how I did it (and those who know a better way to do it
    In the child component DC:
    Map Child's View Context to Child's Controller Context
    Map Child's Controller Context to Child's Interface Controller (make sure the inputEnabled is FALSE - as the child is the data producer and the parent is the data consumer, in my case)
    In the parent DC:
    Add child DC as a Used DC
    Add child Component as a Used Component in the Parent Component
    Add Child's Interface Controller as Required Controller in Parent Component
    Map Child's Interface Controller Context to Parent's Controller Context
    Map Parent's Controller Context to Parent's View Context
    No external mapping required per the thread above. Now, any change in the child component's view is visible in the parent component view.
    Thanks again very much for the help.
    - Siva

  • Error in external context mapping

    Hi
    I want to send some data to a used web dynpro DC from the embedding DC. I tried using external context mapping by performing the below steps.
    created a value node and attribute at interface controller of the used DC
    set isInitial property to true for the value node in interface controller
    created context node and attribute with same name inside component controller of the embedding DC
    defined mapping between the nodes and attributes; which looks like
    UsedComponentInterface----
    >EmbeddingComponentController
    At run time I can't find any value inside the node in used DC. The used DC interface controller node is not getting populated with data from the embedding DC component controller node value.
    Can any one let me know the exact appraoch for this and where I did mistake in the above steps?
    Thanks in advance
    Cheers
    Sudip

    Hi Sudip,
        First make sure in your used DC interface controller context for the nodes that you need to populate data the inputElement property is set to true. The inputElement property for a node and attribute means that the data for those nodes are going to come from and external source. Nodes where the inputElement is set to true will not be initialized even if the cardianaliy is 1:1 or 1:n. The data instance has to come from an external source.
    Make sure that you create a public part for your used DC and add the component to the public part.
       If the input element property is set correctly in the interface controller of the used DC make sure that the data mapping between the interface controller of the used DC and you component/custom controller is correct. The data mapping arrow should point from your used DC interface to your component/custom controller. You can see this in your data modeler. Once you create the data link the mapping window will clearly say that this is an external mapping and only inputElements can be dragged.
    Once all the above are done if you add data instances to the external mapped node in your controller it will be available in your used DC context also.
    Hope this helps,
    Sanyev

  • Problem with external punchout in SRM Server 713

    Hello,
    We upgrade from SRM_SERVER 701 SP 04 to SRM_SERVER 713 SP 02, now we have a problem with external catalog, we did not change anything in standard call structure, however now when the user access to external catalog, select a product and "checkout", SRM returns to shopping cart screen without products and no message are register in log in transaction code SLG1.
    Our parameters in structure are:
    10                     https://xxxxxxxxx                          URL
    20 VIEW_ID          NAME                            Fixed value
    30 VIEW_PASSWD     XXXXXX               Fixed value
    40 USER_ID          SY-UNAME                   SAP field
    50 BRANDING      search5                     Fixed value
    60 LANGUAGE      ES                           Fixed value
    70 COUNTRY      MX                             Fixed value
    75 EASYORDER 1                          Fixed value
    80 target _top                                  Fixed value
    85 ~caller      CTLG                              Fixed value
    90 OCI_VERSION     4.0                     Fixed value
    91 FILTER                                      Fixed value
    92 OPI_VERSION 1.0                     Fixed value
    100 HOOK_URL                             return URL
    110 returntarget      _top                       Fixed value
    we made some test with parameter BYPASS_INB_HANDLER, set as 'X' but this not solve our issue.
    We have an implementation in badi BBP_CATALOG_TRANSFER to map product category, even if I set an external breakpoint in this implementation, system does not pass through it, also we test with this implementation inactive and behavior is the same, nothing transfer to shopping cart
    Does anyone know what's missing?
    Thanks in advance.
    Best regards,
    José Luis D.

    Hello Jason,
    Thank you for your answer, but as I told, If I set an external breakpoint it does not stop for debugging, so I can't see table as you recomended. This process (debugging) is familiar to me, in last version I can do it.
    Any suggestion?
    Thanks in advance, best regards
    José Luis D

  • Doing external context mapping *Dynamically*

    Dear All,
    Can anybody tell me how to do do external context mapping dynamically?
    I have literally read thousands of documents/ blogs/ forum posts on external mapping. but not a single one is explaining DYNAMIC part of it properly.
    If anybody has worked on this then please share your experiences with me.
    Awaiting for helpful replies.
    Thanks and regards,
    Amey Mogare

    Hi
    Check out this
    http://help.sap.com/saphelp_nw2004s/helpdata/EN/67/cc744176cb127de10000000a155106/frameset.htm
    Thanks

  • External context mapping

    Hi everybody,
    I have a question please help me out.
    As stated in tutorial 14 (Server side eventing):
    <At design time, a Web Dynpro component does not know the context structures of its embedding Web Dynpro component. Therefore, it is not possible at design time to map context elements in the component interface controller of Web Dynpro component A to context elements that belong to a controller context of Web Dynpro component B, which has declared a usage of A. However, if Web Dynpro component A itself uses another Web Dynpro component within itself, this is possible (general context mapping)>
    Let say that I have some properties (let say some options)in component A to be set from component B. Is there any  way to do an external mapping given that component A is not inside component B (embedding component) or I must create a new method with parameters in interface controller A to be called from component B?
    Thanks a lot guys in advance
    Raplh

    Ralph,
    <i>Later I found out that external context mapping worked only on component within another component only</i>... Absolutely correct, hence <b>Inner</b>A and <b>Outer</b>B should work. Why this is not working for you? Could you provide more detals? Runt-time error? Any messages in designer?
    Re-read my post -- I described more complex case, i.e. there are actually 3 components, Outer, InnerA and InnerB. 2-nd and 3-rd are children of first. So even InnerA and InnerB has no parent-child relationship, they may communicate via common parent.
    Valery Silaev
    SaM Solutions
    http://www.sam-solutions.net

  • External context mapping issue: cannot create nodes,no mapping defined yet

    Hello everybody,
    I'm trying to use the external context mapping as it is explained in http://help.sap.com/saphelp_nw04/helpdata/en/d7/e551cf896c3a49bb87bb4ce38c99c8/frameset.htm
    I did it in the past without any problem, but now, when i try to create a new node, i get the error "cannot create nodes,no mapping defined yet." This error appears as i try to create an element of the node (in the Internal Component), this way:
         IPruebaNodoElement elto = wdContext.nodePruebaNodo().createPruebaNodoElement();
         elto.setPrueba("Esto es una prueba");
         wdContext.nodePruebaNodo().addElement(elto);
    The mapping is correctly done in the "Embedder Component", and the attribute "isInputElement"=true in the Interface Controller of the "Internal Component".
    Any idea, any clue?
    Thank you very much in advance
    Isidro López

    Frankly speaking: I just read again, but very carefully, all the steps explained at
    http://help.sap.com/saphelp_nw04/helpdata/en/d7/e551cf896c3a49bb87bb4ce38c99c8/frameset.htm.
    Read it carefully and try to implement that example, that could be really helpful.

  • Doubt in external context mapping

    Hi,
    whiel practicing the external context mapping exmaple i read the following lines in the PDF file
    "At design time, a Web Dynpro component does not know the context structures of its
    embedding Web Dynpro component. Therefore, it is not possible at design time to map
    context elements in the component interface controller of Web Dynpro component A to
    context elements that belong to a controller context of Web Dynpro component B, which has
    declared a usage of A. However, if Web Dynpro component A itself uses another Web Dynpro
    component within itself, this is possible (general context mapping)."
    I could not understand the difference between the second and the third lines Can any one let me know if at all there is any difference? Also i would want to know the reason behind such restriction as to y the parent cant red the context of the child component?
    Also can any one let me know the reason y cant we do the external context mapping for the attributes of the root node?

    Hi P K,
    What the lines you mentioned is trying to say is that -
    The Context of an Controller in WD Development Component can only be mapped to Component Controller/View Controller/Custom Controller/Interface Controller of its own WD DC as general context mapping but it wound not be possible for the Controller of DC 1 (other than Interface Controller) to be mapped in design time to the Component Controller/View Controller/Custom Controller of some other DC 2 which has DC 1 as used component (which is known as external mapping). DC 1 can interact with some other DC 2 only through interfaces. So, if DC 1 is put as Used DC for DC 2 then, you can only map and use methods (i mean access) of the DC 1 in DC 2 through Interface Controllers. Rest of the Controller contexts/methods of DC 1 is not readable by DC 2.
    Regards,
    Tushar Sinha

  • Difference Between Normal and External Context Mapping

    Hi,
    I wonder the Difference Between Normal and External Context Mapping.
    I1ve already read the docs and articles but I didnt understand.
    Thanks,
    Jorge Luiz
    Edited by: Jorge Castro on Oct 9, 2008 4:23 PM

    Jorge,
    With this type of Mapping (also called Reverse Mapping) you can map the context of an using component, to that of the used component.
    You can find an example of this concept in WDA ALV: If you look at component SALV_WD_TABLE (which you declare as used when you intend to use ALV), you'll see that it has a node DATA declared as external. In your using component, you map your actual data node to this node.
    This allows the ALV to leave the DATA node type open and so to be reused, adjusting it's structure depending on the using component's data.
    Edited by: Alejandro Bindi on Oct 9, 2008 4:42 PM
    Made a mistake! Have not used this in a while...Ext. mapping is the OTHER way...Using -map-> Used Fixed.

  • Problem with castor xml mapping

    Hi,
    we have following problem with castor xml mapping.
    How to use references in the collections(Hashmap or vector)?
    WE have a method called getAttribute map which will return a hashmap consist different type of objects. We want to keep only the
    references of objects if that object occurs more than once,instead of keeping the whole object
    Following is the the xml mapping file.
    <mapping>
    <class name="com.opvista.ndtool.core.mos.ManagedObject" identity="Id" auto-complete="false" verify-constructable="false">
    <map-to xml="ManagedObject"/>
    <field name="Id" get-method="getId" set-method="setId" type="string">
    <bind-xml name="Id" node="attribute"/>
    </field>
    <field name="AttributeMap" type="org.exolab.castor.mapping.MapItem" collection="map" get-method="getAttributeMap">
    <bind-xml name="AttributeMap" node="element">
         <class name="org.exolab.castor.mapping.MapItem">
    <field name="key" type="java.lang.Object">
         <bind-xml name="key" node="attribute"/>
    </field>
    <field name="value" type="java.lang.Object">
         <bind-xml name="value" node="element" reference="true"/>
         </field>
    </class>
         </bind-xml>
    </field>
    </class>
    </mapping>
    we are using reference=true for the values. But it will throw below exception.
    Unable to resolve ID for instance of class 'java.lang.String' due to the following error: Unable to resolve ClassDescriptor.
         at org.exolab.castor.xml.Marshaller.getObjectID(Marshaller.java:1988)
         at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1628)
         at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1831)
         at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1814)
         at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1825)
         at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:821)
    Please help us to overcome from this problem?
    Thanks,
    Dileep

    for your ref here is what i think the basic mapping file would look like
    <class name="Person">
    <map-to xml="person"/>
    <field name="name" type="string">
    <bind-xml name="name" node="attribute" />
    </field>
    <field name="age" type="string">
    <bind-xml name="age" node="attribute" />
    </field>
    </class>
    <class name="MetaPerson">
    <map-to xml="person"/>
    <field name="dependents" type="string">
    <bind-xml name="dependents" node="attribute" />
    </field>
    <field name="presentAdd" type="string">
    <bind-xml name="present_add " node="attribute" />
    </field>
    <field name="permanentAdd" type="string">
    <bind-xml name="permanent_add " node="attribute" />
    </field>
    </class>
    however i am still not clear as to how i can use the metaperson object in the person class as well as in the mapping file.
    hope this gives a better idea abt my problem statement.
    Please help me out

  • I have a problem with external editing preferences where Photoshop will not launch when I choose "Edit In"...

    Hi. I have a problem with external editing preferences. If I add Photoshop as an external editor, it won't launch when selected, if I add it as an additional external editor it will. Why? How can I fix this as I need to use Photoshop and another program as the additional external editor.
    I use a Mac running OS X (10.8.5) and PS CS4 and LR 5.7. Any ideas on a fix? Thanks in advance.

    I don't know why Photoshop won't start. However, it's possible to create external editor presets using the additional external editor tools. There are instructions on how to do this in the Lightroom help. You could assign Photoshop and create one preset, and then assign another program and create another preset.
    I don't know if deleting your preferences would fix the problem or not. It can sometimes fix other problems.
    Preference and other file locations in Lightroom 5

Maybe you are looking for

  • My preloader doesn't want to work

    I'm creating a website using Flash CS5 and AS3. For this website I've put a preloader on the 1st frame and the site on the 2nd. I've tested the site after having created a small animation which makes appear the main menu, a logo and an image. Everyth

  • Set default value for product type

    I want to set default value in product type drop  down box in component PRD01QR. view  SearchHelp. I tried with setter and getter , but not working they are using query string.

  • How to create orders and deliveries on Non-working day.

    Greeting all, We set up all our national holidays and Sundays as non-working day in our working calendar for Japan(OY05) . But I have a request from Sales Dept that only one customer wants us to deliver products on the holidays. We don't want to affe

  • What exactly is a wrapper class?

    In so far as Integer, Byte, Double et al. are concerned I understand that those wrapper classes are a way to handle primitive types as objects. But I've come across references to wrapper classes in documentation and other technical articles and I don

  • HT201210 i have 3G since 3,5 years now, what happened yesterday for the 1st time since ever - is that the phone has

    Hi everybody! I have 3G iphone since 3,5 years now, what happened yesterday for the 1st time since ever - is that the phone has switched off itself even when was charged n since then it refuses to reboot ! Indeed, application says - Enjoy your jailbr