Mapping tool: mapping child nodes (level2 hierarchy) to bapi wrapper fields

Hi,
I'm new to MI7.1. I'll try the demo on help.sap.com. I have following data object EQUIPMENT with node structure in DOE:
ROOTNODE (attr: EQUIPMENT_ID/ SERIAL_NO)
   child node level 1 DETAILS (attr: SERIAL_NO/TYPE/BRAND/INSTRUCTIONS)
       child node level 2 LOCATION (attr: SERIAL_NO/ADDRESS_LINE1/
ADDRESS_LINE2/ZIP_CODE/...)
In backend my bapi wrapper is build using structures:
  TOP: ZSEQUIPMENT (attr: EQUIPMENT_ID/SERIAL_NO)
  010: ZSEQUIPMENT_DET(attr: SERIAL_NO/TYPE/BRAND/INSTRUCTIONS)
  020: ZSLOCATION(attr: SERIAL_NO/ADDRESS_LINE1/...)
When i want to use mapping tool in middleware for the backend adapter, after mapping the fields, during activation i get the error:
Referential integrity between node DETAILS and it's parent is not complete.
Referential integrity between node LOCATION and it's parent is not complete.
What does that mean? How can I solve this?
thanks
Peter

Solved it myself with explicit key mapping. thanks anyway

Similar Messages

  • Context Mapping: child-nodes of non-mapped parent nodes

    I am somewhat curious about Context Mapping in WebDynpro.
    Which parents nodes need to be mapped in order to map child nodes ? Does a child node has more than one parent node (e.g. grandparent - two steps above) ?
    A.1  -
    MAPPED----
    >    B.1
      - A1.1   NOT MAPPED
      - A1.2   NOT MAPPED
            - A.1.2.1     MAPPED TO>    B.1.2.4
            - A.1.2.2   NOT MAPPED
      - A1.3   NOT MAPPED
    Is it sufficient that only one of these parent nodes (e.g. direct parent node not mapped, but parent node of this parent node is mapped) need to be mapped so that the child node can be mapped ?
    Is this assumption true or not ?
    The SAP library states:
    "Conversely, child nodes of non-mapped parent nodes cannot be mapped, otherwise this would result in irresolvable conflicts at runtime with respect to the parent-child relation in the context and the mapping relation." (http://help.sap.com/saphelp_nw04/helpdata/de/51/a3384162316532e10000000a1550b0/content.htm)
    This statement is not absolutely clear on this issue.

    Let me put it this way
    You have a node vehicle and you have a child node for that the car. The car node have parameters car1, car2.
    Let the vehicle node have parameters veh1 and veh2
    Then if you map vehicle node one to any other node (say in the comp. controller) you have the option of mapping its children i.e veh1,veh2 and carnode.
    You can have that veh1 is mapped and veh2 is not mapped.
    vehicle node(mapped)
    veh1(may or may not be mapped)
    veh2(may or may not be mapped)
    car node(may or may not be mapped)
    If instead you try to map only the car node the vehicle node will also get mapped automatically but not it's child parameters like veh1 and veh2.
    vehicle node(mapped)
    veh1(may or may not be mapped)
    veh2(may or may not be mapped)
    car nodemapped)
    car1(may or may not be mapped)
    car2(may or may not be mapped)
    Hope this would help.
    Do revert for further clarification
    Regards
    Noufal

  • Mapping child node to ALV .

    Hi Dear Friends,
                                  Could you please make me clear how to use ALV for more parent node and sub node. . Like VBAK VBAP . . .
    Here is my question :
    Re: How to assign ALV for parent node and child node that uses supply method.?
    Thank you.

    Hi Karthik,
    Resume two ALV's in your component for ex: VBAK_ALV (SALV_WD_TABLE) and VBAP_ALV(SALV_WD_TABLE),Take 2 View Containers and map them accordingly.
    Instantiate both the resued components and use it as per your requirement.
    Thanks
    KH

  • Problem with childs nodes and automatic key mapping in a Data Object

    Hi experts!
    I'm doing the service order tutorial from the mobile help at [this link|http://help.sap.com/saphelp_nwmobile71/helpdata/en/21/9b5b924c3b434fba4767731794b029/frameset.htm] and I have a problem...
    In the topic "Modeling the Equipment Data Object", says you have to mark the "Automatic Key Mapping" checkbox. So when I had to create a third child node ( the location node ) the system raised an exception with the message "Deselect automatic key mapping flag for more than two-level nodes". I'm trying deselecting the flag and creating the location node, but when I want mark again the automatic key mapping flag, this is disabled.
    What can I do to solve this and create the three child nodes with the flag marked? It's a configuration thing?
    Any help it's very welcome. Thanks in advance.
    Best regards,
    Simon.

    The thing is: Its not allowed to use automatic keymapping if you have more than two levels. This is why the message showed up, and this is why its been disabled.
    What automatic keymapping does: Figures out automatically which child node belongs to which parent (by guessing from the field name and type, which fields in the child correspond to which key fields of the parent).
    On three levels, this becomes more complicated => Its disabled.
    How to do keymapping yourself instead of having the DOE do it automatically: Do 'Explicit keymapping' from each child to its parent. Explicit keymapping is done by clicking on the corresponding menu button in the child node. Here you need to associate child node fields (they need not be key fields of the child, but they are allowed to be that as well) to each of its parent nodes key fields (so that each child can be associated to its parent).
    Cheers

  • The Mapping to Node &ATTRIBUTE_NAME& Has Not Been Completed.

    Hi All,
    Could anybody tell me when this exception arises.
    we could not track this exception as all the mappings have been done as desired.
    Need help immediately.
    Regards,
    ARti.

    Hi Aarti,
    I encountered the same problem, but could resolve it.
    There are two kinds of context mapping possible:
    1)Cross component context mapping - In this case, the properties of the interface context node of the used component would look like:
    Interface Node: X
    Input Element (Ext.): must not be set
    Then in the COMPONENT CONTROLLER of the using component, map the desired context node on the left hand side (of the component controller) to the interface node of the used component on the right hand side.
    This is done when we need to receive value of the interface context node of the used component in the using component.
    2)External context mapping: In this case, properties of the interface context node of the used component would look like:
    Interface Node: X
    Input Element (Ext.): X
    Next in the CONTROLLER USAGE in the using component(this is a new node added in the hierarchy in SE80 when displaying the WD component, when component usage has been declared in the current component), right click the desired component usage and select 'Create controller usage'. Now it is here where you define mapping between the interface context node and the context node of the current component controller. By doing this, component controller of the using component would act as the data source.
    This is done when we need to pass value to the used component from the using component.
    The important point to remember is that whenever attribute Input Element (Ext.) of the interface node has been marked as X, ensure to define a mapping for this context, else it results in a runtime error "The Mapping to Node COMPONENTCONTROLLER.1.<interface_context_node> Has Not Been Completed" .
    Regards,
    Chitrali

  • The error is " The Mapping to Node has not been completed

    Hi All,
    I am getting a strange type of error and need help immediately.
    The error is " The Mapping to Node COMPONENTCONTROLLER.1.PLANNING_ENTITY Has Not Been Completed" for the node that exists in the Parent component and is being used in all the child nodes thru reverse mapping.
    I have done mapping in all the child nodes but still the message is coming.
    Could anybody tell me the reason .
    Regards,
    Arti.

    Basically somewhere you have defined a context node 'PLANNING_ENTITY'  to be an Input-Element. At the same time you did not define (through a component usage at design time) where the input to that node is coming from. This means the mapping path to the node is not complete, and the node does not know where it is mapped to.
    Either:
    - You untick the checkbox 'Input-Element (ext.)' inside the controller context, or
    - You find the component that uses the component with the node 'PLANNING_ENTITY' and select Component_Usage->'Name of Usage'->'Add controller usage'. Inside the controller menu you see then, you can now provide a mapping to the context node.
    I realise this now sounds a little confusing, but I'm happy to provide more details should you need them.
    Cheers,
    Robin

  • External Context Mapping and "The Mapping to Node...Has Not Been Completed"

    Hi there,
    I've got 2 components: A, B where A consumes the data provided by B.
    I'm calling the component B which includes a view provided by A. This view (provided by A) needs data inputted by the user in a view in B.
    The context of B contains a node called MULTIVALUES flagged as Interface + Input Element Ext.
    The component A uses the component B, in the component usage interface controller of the component A I've referenced the component controller of A. I have then created a node in A's component controller and done the mapping from the component usage interface controller of A to A's component controller.
    The manually created component controller node in A is NOT an interface.
    Now when I invoke B I'm getting an error:
    The Mapping to Node COMPONENTCONTROLLER.1.MULTIVALUES Has Not Been Completed.
    What's still missing?
    Thank you!

    it is indeed much more complex and you need lot of understanding about the component instances and their life time.
    What i do normally for such complex cyclic dependency , i try to split the common part which is needed in bot component_a and component_b and create a new super component_s.
    Component_s is used in both components. You can even go further that you create view component which has nothing but the viewContainer UI elements to embed the views from component_a and Component_b.
    The view component has to create all the used components (comp_s,comp_a,comp_b) and after creating call the interface method in comp_a and comp_b to set the component usage of comp_s (use the if_wd_comp_usage=>entering-referencemode).
    In this way the comp_a,comp_b share the same instance of comp_s.
    What i am saying is to look for a solution in application architecture and not with in the exiting components coding.

  • Mapping one node to many nodes

    How do you map one node in a controller context to many other nodes in another controller context?
    Here's the situation I'd be using this.
    I have an Adaptive RFC model from which I created a Custom Controller. I then used the wizard to map to the model.
    The model corresponds to RFC functions and many of those functions accept the same parameters, LanID for instance. I simply want to have one "LanID" node in a controller that I would set. The change would then propagate to the other LanID context nodes in the Custom Controller mapped to the model.
    What's the best way to handle this?

    If I understand correctly.. B1, B2 and B3 are all in the SAME custom controller?  Even if they are, I don't see a problem of mapping them all to A1 which is in another controller. Let's say that A1 is the "original" node, and B1, B2 and B3 are the "mapped" nodes.
    If you require that B1, B2 and B3 are "original" nodes, and A1 is the "mapped" node, then this is scenario is impossible.
    If you can be more specific, I will try to answer your question better.
    Walter

  • Hierarchy node not displaying some of child nodes

    Hi all,
    In my bex query for one of the hierarchy node  is not showing sum of its child nodes even though the belownodes got some data in it.
    What could be the reason.as all the other nodes at the same level are showing the sum of their child nodes.
    Thanks

    Display as hierarchy : no sum on node level.
    If the rows are set as u2018display as hierarchyu2019, all the objects in the rows section must have as setting for result rows : u2018always displayu2019

  • Map context node  web dynpro to context DATA of  interface controller ALV

    Hi Experts,
    I have started creating simple ALV by following the example in the below mentioned link.
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/3439404a-0801-0010-dda5-8c14514d690d
    I have completed 95% development but stuck with last bit of
    Set data to ALV for display (via reverse context mapping).
    When Click on the Controller Usage button. The component controller of your Web Dynpro component DOES NOT appears on the right side of the screen.
    Therefore I can not  Map context node NODE_FLIGHTTAB of your Web Dynpro component to context DATA of the interface controller of the ALV component.
    Could you please shed me light on this.
    Your time and help much appreciated.
    Best Regards
    CB

    Hi Chandra,
    You need to add component controller first. Just go to the property tab of interface controller of the alv component and click on create button and then add the component controller. After that you'll be able to see the node in the context tab.
    Regards
    Arjun

  • How to map the node which i have created dynamically into the view

    Hi All,
    Many thanks to all ur answers in advance.
    I have created a node dynamically.I want to display the fields which i have fetched in that node.
    i dont know how to map the node which i have created dynamically into the layout of the view.
    Other than Using ALV is there any other way to do.
    for example usin table control

    Hi,
    use the reference variable of view to access the corresponding UI element and then use the method of that UI element to do data binding with context node.
    for ex:
    Context node = flights
    element = inputfield, ID = inp_name
    data view type ref to if_wd_view.
    data lr_inp type ref to cl_wd_input_field.
    lr_inp ?= view->get_child_element( ' INP_NAME' ).
    use following methods of input field to define the data binding.
    SET__DDIC_BINDING( )
    BOUND__PROPERTY( ).
    BOUND__PRIMARY_PROPERTY( ). " for input field it is value property.
    Get the reference of view from wddomodifyview method as importing parameter(view). Store this parameter as controller attribute.
    Thanks,
    Rahul

  • Hierarchy Child Node Insert using ABAP Program

    Hi,
    Requirement is to add  one more child node to an existing child Node for available Custom Cost Center Hierarchy (in BI environment). To meet this requirement,  ABAP Code  is best solution- CMOD-Exit EXIT_SAPLRSAP_004 (ZXRSAU04).
    Is there any Function modules available for inserting Hierarchy Node. I have gone to "How to Download A Hierarchy to a Flat File.pdf" document.
    Any Sample Codes or any documents (on the above mentioned topic) or suggestions to achieve the result is highly appreciated.
    Regards,
    Sanni

    Any chance you could share what you did here?
    I am looking to read values from a hierarchy using ABAP, and am not sure where to start. Is there a standard table where hierarchy information is stored, or are custom tables created per hierarchy created?
    Cheers,
    Andrew

  • How to get Parent nodes and corresponding child nodes in BI Hierarchy

    Hi all,
    I have a standard function module 'RSNDI_SHIE_STRUCTURE_GET3'  to get child node if i pass parent node. But I need child nodes along with the provided parent node as I use this in a loop in BI.
    Thanks

    Could any one help me in this regards .
    Thanks in advance
    Regards,
    sri

  • Attibute mapping not defined for Hierarchy

    Hi
    I keep getting the above error message when trying to
    access a cube - why?
    I have validated the dimensions and cube and everything looks fine. I have created an AW based on the cube using AWM. But if I try to access the cube through BI Beans or OEM Cube Viewer I get the same error messages.
    Below are some samples of the code used to create the dimensions:
    CREATE DIMENSION nperd.BILLING_ITEM
    LEVEL BILLING_ITEM IS DIM_BILLING_ITEM.BILLING_ITEM_ID
    LEVEL BILLING_ITEM_TYPE IS DIM_BILLING_ITEM.BILLING_ITEM_TYPE
    LEVEL BOOKING_GROUP IS DIM_BILLING_ITEM.BOOKING_GROUP_ID
    LEVEL BOOKING_GROUP_TYPE IS DIM_BILLING_ITEM.BOOKING_GROUP_TYPE
    HIERARCHY BILLING_ITEM (BILLING_ITEM CHILD OF BILLING_ITEM_TYPE)
    HIERARCHY BILLING_ITEM_BOOKING_GROUP (BILLING_ITEM CHILD OF BOOKING_GROUP CHILD OF BOOKING_GROUP_TYPE)
    ATTRIBUTE BILLING_ITEM DETERMINES (DIM_BILLING_ITEM.BILLING_ITEM_ID , DIM_BILLING_ITEM.BILLING_ITEM_NAME)
    ATTRIBUTE BILLING_ITEM_TYPE DETERMINES DIM_BILLING_ITEM.BILLING_ITEM_TYPE
    ATTRIBUTE BOOKING_GROUP DETERMINES (DIM_BILLING_ITEM.BOOKING_GROUP_ID , DIM_BILLING_ITEM.BOOKING_GROUP_NAME )
    ATTRIBUTE BOOKING_GROUP_TYPE DETERMINES DIM_BILLING_ITEM.BOOKING_GROUP_TYPE ;
    begin
    cwm_olap_dimension.set_plural_name('NPERD', 'BILLING_ITEM', 'BILLING_ITEMs');
    cwm_olap_dimension.set_display_name('NPERD', 'BILLING_ITEM', 'BILLING_ITEM');
    cwm_olap_dim_attribute.create_dimension_attribute('NPERD', 'BILLING_ITEM', 'BILLING_ITEM_ID', 'BILLING_ITEM_ID','');
    cwm_olap_dim_attribute.create_dimension_attribute('NPERD', 'BILLING_ITEM', 'BILLING_ITEM_TYPE', 'BILLING_ITEM_TYPE','');
    cwm_olap_dim_attribute.create_dimension_attribute('NPERD', 'BILLING_ITEM', 'BILLING_ITEM_NAME', 'BILLING_ITEM_NAME','');
    cwm_olap_dim_attribute.create_dimension_attribute('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP_ID', 'BOOKING_GROUP_ID','');
    cwm_olap_dim_attribute.create_dimension_attribute('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP_NAME', 'BOOKING_GROUP_NAME','');
    cwm_olap_dim_attribute.create_dimension_attribute('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP_TYPE', 'BOOKING_GROUP_TYPE','');
    cwm_olap_level.set_display_name('NPERD', 'BILLING_ITEM', 'BILLING_ITEM', 'BILLING_ITEM');
    cwm_olap_level.set_display_name('NPERD', 'BILLING_ITEM', 'BILLING_ITEM_TYPE', 'BILLING_ITEM_TYPE');
    cwm_olap_level.set_display_name('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP', 'BOOKING_GROUP');
    cwm_olap_level.set_display_name('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP_TYPE', 'BOOKING_GROUP_TYPE');
    cwm_olap_level_attribute.set_name('NPERD', 'BILLING_ITEM', 'BILLING_ITEM', 'BILLING_ITEM_ID', 'BILLING_ITEM_ID');
    cwm_olap_level_attribute.set_name('NPERD', 'BILLING_ITEM', 'BILLING_ITEM_TYPE', 'BILLING_ITEM_TYPE', 'BILLING_ITEM_TYPE');
    cwm_olap_level_attribute.set_name('NPERD', 'BILLING_ITEM', 'BILLING_ITEM', 'BILLING_ITEM_NAME', 'BILLING_ITEM_NAME');
    cwm_olap_level_attribute.set_name('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP', 'BOOKING_GROUP_ID', 'BOOKING_GROUP_ID');
    cwm_olap_level_attribute.set_name('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP', 'BOOKING_GROUP_NAME', 'BOOKING_GROUP_NAME');
    cwm_olap_level_attribute.set_name('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP_TYPE', 'BOOKING_GROUP_TYPE', 'BOOKING_GROUP_TYPE');
    cwm_olap_dim_attribute.add_level_attribute('NPERD', 'BILLING_ITEM', 'BILLING_ITEM_ID', 'BILLING_ITEM', 'BILLING_ITEM_ID');
    cwm_olap_dim_attribute.add_level_attribute('NPERD', 'BILLING_ITEM', 'BILLING_ITEM_TYPE', 'BILLING_ITEM_TYPE', 'BILLING_ITEM_TYPE');
    cwm_olap_dim_attribute.add_level_attribute('NPERD', 'BILLING_ITEM', 'BILLING_ITEM_NAME', 'BILLING_ITEM', 'BILLING_ITEM_NAME');
    cwm_olap_dim_attribute.add_level_attribute('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP_ID', 'BOOKING_GROUP', 'BOOKING_GROUP_ID');
    cwm_olap_dim_attribute.add_level_attribute('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP_NAME', 'BOOKING_GROUP', 'BOOKING_GROUP_NAME');
    cwm_olap_dim_attribute.add_level_attribute('NPERD', 'BILLING_ITEM', 'BOOKING_GROUP_TYPE', 'BOOKING_GROUP_TYPE', 'BOOKING_GROUP_TYPE');
    cwm_olap_hierarchy.set_display_name('NPERD', 'BILLING_ITEM', 'BILLING_ITEM', 'BILLING_ITEM');
    cwm_olap_hierarchy.set_display_name('NPERD', 'BILLING_ITEM', 'BILLING_ITEM_BOOKING_GROUP', 'BILLING_ITEM_BOOKING_GROUP');
    cwm_olap_dimension.set_default_display_hierarchy('NPERD', 'BILLING_ITEM', 'BILLING_ITEM');
    commit;
         CWM2_OLAP_METADATA_REFRESH.MR_AC_REFRESH;
         CWM2_OLAP_METADATA_REFRESH.MR_REFRESH;
    end;

    Can you please tell what was the solution? We are facing same problem

  • Child node attributes do not appear in ABAP WD

    Hi,
      I have the following context hierarchy (in ABAP WD):
    -Context
    ---Child_Node_A
    Sub_Child_NodeB
    AttributeE_of_Sub_Child_NodeB
    AttributeF_of_Sub_Child_NodeB
    AttributeG_of_Sub_Child_NodeB
    Sub_Child_NodeC
    AttributeH_of_Sub_Child_NodeC
    AttributeI_of_Sub_Child_NodeC
    AttributeJ_of_Sub_Child_NodeC
    AttributeA_of_Child_Node_A
    AttributeB_of_Child_Node_A
    AttributeC_of_Child_Node_A
    The attributes A, B, C of Child_Node_A are displayed in an ALV grid and the idea is that when the user selects a row in the ALV grid and clicks on a button, a popup is to be shown with additional details of the selected row in the ALV.  In this popup, I have some fields which are mapped to the attributes E, F, G of Sub_Child_NodeB and attributes H, I, J of Sub_Child_NodeC.  But when I show the popup the fields are empty.
    I use a supply function in the Component Controller to fill Child_Node_A and its children, so typically when the popup appears I should see the attributes of the Sub_Child_Node B and C which are linked to the lead selection of the ALV grid (i.e.: Child_Node_A), right?
    By the way, I have linked Child_Node_A from the Component Controller Context to the Context of my Main View and Popup View.  Also, I checked in the INIT method of my Main view to see if after the supply function has been called the Sub_Child_Nodes attributes were still there for a given lead selection in the ALV grid and they were.  But in my action handler to show the popup window from my Main view, I checked again to see if the Sub_Child_Nodes attributes were still there and they were not.
    I hope I was clear enough in my explanation.
    Thanks in advance for your help,
    Christian

    Hi Christian,
    We discussed this problem offline, but I would like to give some feedback on what we found out.
    (a) Since Child_Node_A had a supply function that also supplied Sub_Child_NodeB and since Sub_Child_NodeB was a singleton, it was not resupplied. The initial element originated from having Sub_Child_NodeB as 1..1 cardinality. In this case the runtime recreates an initial node element upon invalidation of the node.
    (b) The second problem might be related to the ALV. As the ALV does not support child nodes being present for the data displayed, the assumption is that Sub_Child_NodeB might have been invalidated once the data was copied back from the ALV to Child_Node_A.
    The solution is to have a supply function for Sub_Child_NodeB as well, which will counter any invalidation at any point in time and will restore the original data.
    I am curious if (b) is really the cause of the problem described.
    Best regards,
    Thomas

Maybe you are looking for

  • Names are associated with email address in Mail but not in Contacts. How do I fix this?

    When writing a new email if I begin typing someone's name, it automatically starts showing matching first and last names and email addresses. So if I start typing Bob it'll start showing matching contacts and have selected by default Bob Doe <[email 

  • Account 'Acc.dep. accnt.for ordinary depreciation' Message no. AU133

    Hi GURUS, When i execute depreciation in repeat run system showing below error and i checked t.code - AO90 GL codes are mapped correctly but i canu2019t understand why it showing this error. Highly appreciable for your quick solution. Account 'Acc.de

  • XQuery on XML DB

    I'm using the XQuery Java API (OJXQI) and I managed to combine the content of local XML file and relational table from database in the following way: FOR $a IN document ("bib.xml")/bib/book FOR $b IN sqlquery("select * from scott.emp")/ROW WHERE $b/S

  • Sendmail & SunOne Messaging Server issue

    Hi, I am trying to run SunOne messaging server & sendmail on same sun box. When i run [b][b]sendmail it gives me an error message " This server is running iPlanet Internet Mail; skipping Sendmail startup." even though i have stopped all SunOne messag

  • Enhancement Request - KickStart files for Oracle Validated Configurations

    Just a thought, but I would like to request that the "Oracle Validate Configurations" also include an example kickstart file that contains the necessary RPMs above the default. In addition, in the %post section, all of the OS modifications (e.g. sysc