Recursive structure - CORBA

Hello
i am having some problems with a particular situation in CORBA. i am trying to invoke a server call and i am getting a BAD_PARAM exception (==? NULL references). Any kind of help would be greatly appreciated. Here is the sample codes:
IDL structure:
struct NestedStructure
    string name;
    sequence<NestedStructure> subField;
void getNestedStructure(out NestedStructureList data);
Server implementation :
public void getNestedStructure(NestedStructureListHolder data)
    System.out.println(data.value);
    data.value = myNestedStructure;
Client implementation :
public void getNestedStructure()
    NestedStructureListHolder dataHolder = new NestedStructureListHolder();
    myStub.getNestedStructure(dataHolder);
When i run them, i receive the following error message:
org.omg.CORBA.BAD_PARAM:   vmcid: 0x0  minor code: 0  completed: No
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at com.inprise.vbroker.orb.SE.read(SE.java:28)
        at com.inprise.vbroker.orb.DelegateImpl.handleReply(DelegateImpl.java:874)
        at com.inprise.vbroker.orb.DelegateImpl.invoke(DelegateImpl.java:759)
        at org.omg.CORBA.portable.ObjectImpl._invoke(Unknown Source)
...when i add some value to the holder on the client before making the remote call, i still get the same exceptions. Moreover, the system output on the server side is also NULL in this case.
Any kind of help would be most appreciated. This has been annoying me for a while now.
Kind regards,
vik

solved :)
vik

Similar Messages

  • Recursive structure - complex mapping issue

    I have a recursive structure involved mapping requirement. here is the issue simplified...
    Source is a details about person which has a element called father which itself is of the type person. Target is just a list or person with n father attribute. Target has to have all the persons, father and father's father with no limitation. Below are the XSDs and XML for source and target. I know I can do this in java or abap mapping or even xslt, but is it possible to achieve this in the mapping too? Any help will be appreciated and rewarded.
    No where in the forum or blog I could find a sample mapping.
    <b>Sorry for the long post</b>
    Thanks
    <b>Source XML</b>
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:PersonsMT xmlns:ns0="http://xyz.com/scratchpad">
       <Persons>
          <Person>
             <Name>Smith</Name>
             <Height>22</Height>
             <Father>
                <Name>Paul</Name>
                <Height>23</Height>
                <Father>
                       <Name>Sr Paul</Name>
                       <Height>23</Height>
                <Father/>
             </Father>
             </Father>
          </Person>
          <Person>
             <Name>Brad</Name>
             <Height>22</Height>
             <Father>
                <Name>Luke</Name>
                <Height>23</Height>
                <Father/>
             </Father>
          </Person>
       </Persons>
    </ns0:PersonsMT>
    <b>Expected output:</b>
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:PersonsListOutputMT xmlns:ns0="http://xyz.com/scratchpad">
    <Persons>
         <Person>
              <Name>Smith</Name>
              <Height>22</Height>
         </Person>
         <Person>
              <Name>Paul</Name>
              <Height>23</Height>
         </Person>
         <Person>
              <Name>Sr Paul</Name>
              <Height>23</Height>
         </Person>
         <Person>
              <Name>Brad</Name>
              <Height>22</Height>
         </Person>
         <Person>
              <Name>Luke</Name>
              <Height>23</Height>
         </Person>
    </Persons>
    </ns0:PersonsListOutputMT>
    <b>Source Schema:</b>
    <i>Message Type: PersonsMT</i>
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xyz.com/scratchpad" targetNamespace="http://xyz.com/scratchpad">
         <xsd:element name="PersonsMT" type="PersonsDT" />
         <xsd:complexType name="PersonDT">
              <xsd:annotation>
                   <xsd:appinfo source="http://sap.com/xi/TextID">
                   34bfd3107ba111dcc4e600188b447e47
                   </xsd:appinfo>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="Name" type="xsd:string">
                        <xsd:annotation>
                             <xsd:appinfo source="http://sap.com/xi/TextID">
                             56bf53607b7d11dca285000f1ffb32b9
                             </xsd:appinfo>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Height" type="xsd:string">
                        <xsd:annotation>
                             <xsd:appinfo source="http://sap.com/xi/TextID">
                             56bf53617b7d11dcc38a000f1ffb32b9
                             </xsd:appinfo>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Father" type="PersonDT">
                        <xsd:annotation>
                             <xsd:appinfo source="http://sap.com/xi/TextID">
                             56bf53627b7d11dccc3d000f1ffb32b9
                             </xsd:appinfo>
                        </xsd:annotation>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="PersonsDT">
              <xsd:annotation>
                   <xsd:appinfo source="http://sap.com/xi/TextID">
                   34bd89227ba111dcc2fa00188b447e47
                   </xsd:appinfo>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="Persons" maxOccurs="unbounded">
                        <xsd:annotation>
                             <xsd:appinfo source="http://sap.com/xi/TextID">
                             9915e6707b7d11dcadc7000f1ffb32b9
                             </xsd:appinfo>
                        </xsd:annotation>
                        <xsd:complexType>
                             <xsd:sequence>
                                  <xsd:element name="Person" type="PersonDT">
                                       <xsd:annotation>
                                            <xsd:appinfo source="http://sap.com/xi/TextID">
                                            9915e6717b7d11dc8f84000f1ffb32b9
                                            </xsd:appinfo>
                                       </xsd:annotation>
                                  </xsd:element>
                             </xsd:sequence>
                        </xsd:complexType>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
    </xsd:schema>
    <b>Target Schema:</b>
    <i>Message Type: PersonsListOutputMT</i>
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xyz.com/scratchpad" targetNamespace="http://xyz.com/scratchpad">
         <xsd:element name="PersonsListOutputMT" type="PersonListOutputDT" />
         <xsd:complexType name="PersonListOutputDT">
              <xsd:annotation>
                   <xsd:appinfo source="http://sap.com/xi/TextID">
                   380defd37ba511dcb27400188b447e47
                   </xsd:appinfo>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="Persons" maxOccurs="unbounded">
                        <xsd:annotation>
                             <xsd:appinfo source="http://sap.com/xi/TextID">
                             edfc5ae07b9e11dca41b001422795f21
                             </xsd:appinfo>
                        </xsd:annotation>
                        <xsd:complexType>
                             <xsd:sequence>
                                  <xsd:element name="Person">
                                       <xsd:annotation>
                                            <xsd:appinfo source="http://sap.com/xi/TextID">
                                            edfc5ae17b9e11dcb186001422795f21
                                            </xsd:appinfo>
                                       </xsd:annotation>
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="Name">
                                                      <xsd:annotation>
                                                           <xsd:appinfo source="http://sap.com/xi/TextID">
                                                           edfc5ae27b9e11dc9e93001422795f21
                                                           </xsd:appinfo>
                                                      </xsd:annotation>
                                                 </xsd:element>
                                                 <xsd:element name="Height">
                                                      <xsd:annotation>
                                                           <xsd:appinfo source="http://sap.com/xi/TextID">
                                                           edfc5ae37b9e11dcb5e1001422795f21
                                                           </xsd:appinfo>
                                                      </xsd:annotation>
                                                 </xsd:element>
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:sequence>
                        </xsd:complexType>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
    </xsd:schema>
    Message was edited by:
            xi_ted
    Message was edited by:
            xi_ted

    Hi,
    Can you please cheack your generated source and target WSDL. According to me, you need some modification in that. You can generate xd using xmlspy.
    context will be the problem in graphical mapping as well as xslt. So best is to go for java mapping for this.
    In graphical mapping you can generate required target provided you know max hirarchy for father. In that case its possible to use graphical mapping.
    -Kavita

  • Recursive Structure

    Hi,
    I need to generate target recursive structure dynamically. When I right click on recursive node (In message mapping), it gives me option "Expand Recursive Structure". But how to achieve this dynamically (run time)?
    Any help would be appreciated.
    Thanks
    Sagar

    For Ex: A message structure ‘City’ (Type: CityType) again contains a node ‘City’ with type ‘CityType’. So here ‘City’ node is recursive node.
    In the message mapping, XI gives option of Expanding Recursive Structure (at design time). But how to achieve this dynamically?

  • Recursive structure definition

    Dear Experts,
    I would like to know how can I create a TYPE with recursive structure. The main objective is to construct an internal table for my organization structure and then export it to XML using simple transformation. Currently, I can only export this XML by construct the XML document like a string composition which is harder to read and modify.
    Regards,
    Alex

    You want something like in java (from wikipedia article)
    class List<E> {
        E value;
        List<E> next;
    That's only possible in ABAP using data references.
    TYPES: BEGIN OF list,
             e  TYPE i,
             pn TYPE REF TO data,
           END OF list.
    DATA: lp_data TYPE REF TO data.
    FIELD-SYMBOLS: <ls_list> TYPE list.
    CREATE DATA lp_data TYPE list.
    ASSIGN lp_data->* TO <ls_list>.
    * Add elements
    DO 10 TIMES.
      <ls_list>-e = sy-index.
      CREATE DATA <ls_list>-pn TYPE list.
      ASSIGN <ls_list>-pn->* TO <ls_list>.
    ENDDO.
    <ls_list>-e = 11.
    * Display elements
    ASSIGN lp_data->* TO <ls_list>.
    WRITE: / <ls_list>-e.
    DO.
      IF <ls_list>-pn IS INITIAL.
        EXIT.
      ENDIF.
      ASSIGN <ls_list>-pn->* TO <ls_list>.
      WRITE: / <ls_list>-e.
    ENDDO.
    Don't know if that helps with your XML question.
    matt

  • Expand Recursive Structure .. Error

    Hi
    I am doing Mapping from XSD to the IDOC .. in the XSD they are Repeating the Sturucture .. that forms the Recursive Structure when i imported the XSD in to PI ..
    I have to get the Values the from the Recursive Structure .. when i expand the Recursive Structure and Mapped .. and when i saved the its giving error
    The source structure, target structure, or a function library has been changed or could not be found in the Enterprise Services Repository. The mapping definition contains elements or attributes that do not exist in the changed structure, or functions that were changed in a function library. The relevant entries will be deleted.
    Node with path /QRY/QRY/QRY/ROW/Units not found in source structure..
    any suggestions .

    even if it is repeating structure, make the node's maxoccurance as unbounded... that will take care

  • PI 7.0: recursive structure can not be mapping to a flat structure

    I use PI 7.0 ,the source structure is like this:
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">     
            <wsdl:types>
              <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                        <xsd:complexType xmlns:p0="http://www.w3.org/XML/1998/namespace" name="NodeA">                    
                        <xsd:element name="NodeA" type="NodeA" minOccurs="0" maxOccurs="unbounded" />                    
                        <xsd:attribute name="ID"   type="xsd:string" />
                        <xsd:attribute name="NAME" type="xsd:string" />                    
                     </xsd:complexType>
         </wsdl:types>
         <wsdl:message name="root">
              <wsdl:part name="root" element="root" />
         </wsdl:message>
    </wsdl:definitions>
    "NodeA" is recursive type.
    I want to transform the source data to flat file.
    examples:
    source xml(tree):
      101 AAA
      __201 BBB
      _______301 CCC
      _______302 DDD
      _____________401 EEE
    destination (flat file):
    ID  NAME  FID
    101 AAA
    201 BBB   101
    301 CCC   201
    302 DDD   201
    401 EEE   302
    Because NodeA is recursive, I can not make the mapping work.
    can Anyone help me?
                      Thanks!
    Edited by: Harry on Feb 26, 2009 8:50 AM
    Edited by: Harry on Feb 26, 2009 8:51 AM

    This is my Message Type, you can import them as External Defination:
    Then map MT_Src to MT_DEST.   Thanks!
    MT_Src:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema targetNamespace="http://test.com/diss" xmlns="http://test.com/diss" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:element name="MT_SRC" type="DT_SRC" /><xsd:complexType name="DT_SRC"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">82c08380046b11de920c001a4b064ae2</xsd:appinfo></xsd:annotation><xsd:sequence><xsd:element name="TEST" type="DT_TEST" minOccurs="0" maxOccurs="unbounded" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">c23a4750046911decc490019210863b9</xsd:appinfo></xsd:annotation></xsd:element></xsd:sequence></xsd:complexType><xsd:complexType name="DT_TEST"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">82c23130046b11de833d001a4b064ae2</xsd:appinfo></xsd:annotation><xsd:sequence><xsd:element name="SELF" type="DT_TEST" minOccurs="0" maxOccurs="unbounded" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">71c72500046811de98e60019210863b9</xsd:appinfo></xsd:annotation></xsd:element></xsd:sequence><xsd:attribute name="ID" type="xsd:string" use="required" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">4a0a4dc0046911deaff30019210863b9</xsd:appinfo></xsd:annotation></xsd:attribute><xsd:attribute name="NAME" type="xsd:string" use="required" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">4a0a4dc1046911dec5290019210863b9</xsd:appinfo></xsd:annotation></xsd:attribute><xsd:attribute name="DES" type="xsd:string"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">61958680046911de964c0019210863b9</xsd:appinfo></xsd:annotation></xsd:attribute></xsd:complexType></xsd:schema>
    MT_DEST:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema targetNamespace="http://test.com/diss" xmlns="http://test.com/diss" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:element name="MT_DEST" type="DT_DEST" /><xsd:complexType name="DT_DEST1"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">8ead08d0046b11de9c38001a4b064ae2</xsd:appinfo></xsd:annotation><xsd:sequence><xsd:element name="ID" type="xsd:string"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">0112d730046a11de9e6f0019210863b9</xsd:appinfo></xsd:annotation></xsd:element><xsd:element name="NAME" type="xsd:string"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">0112d731046a11dea46d0019210863b9</xsd:appinfo></xsd:annotation></xsd:element><xsd:element name="FID" type="xsd:string"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">0112d732046a11deace60019210863b9</xsd:appinfo></xsd:annotation></xsd:element></xsd:sequence></xsd:complexType><xsd:complexType name="DT_DEST"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">8eab5b20046b11deba72001a4b064ae2</xsd:appinfo></xsd:annotation><xsd:sequence><xsd:element name="D1" type="DT_DEST1" minOccurs="0" maxOccurs="unbounded" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:annotation><xsd:appinfo source="http://sap.com/xi/TextID">18188c40046a11deac300019210863b9</xsd:appinfo></xsd:annotation></xsd:element></xsd:sequence></xsd:complexType></xsd:schema>

  • Message Mapping of Recursive Source Structure?

    Hello,
    a mapping needs to be implemented from a custom source structure to an IDoc. An XSD has been provided for the source structures which contains recursive elements --> an element of a specific type contains another element with the same type.
    If I import the XSD then the type of the recursive element is displayed in "red", but I still can expand it. If I want to use the source structure in the message mapping I cannot expand the recursive elements anymore. Does anyone of you have an idea how to handle this? I want to avoid XSLT if possible.
    Thank you!

    Hi again Florian,
    please have a look at [Structure Overview in Message Mappings on SAP help|http://help.sap.com/saphelp_nwpi71/helpdata/en/e3/92be7c6cd34fd485c967144e302fb6/content.htm]. There is a paragraph on Recursive Structures:
    ...It is possible to map these elements in the mapping editor in a rudimentary fashion by using the context menu to expand a specific number of subnodes and then use them in target-field mappings...
    That works for both source and target message.

  • Recursive Message Structure

    Hi ,
    For message mapping we are using an external defination with recursive structure.
    The name of the fields will be same but with different attribute value.  In Message mapping we duplicate the node and map the attribute to constant values during design but once we save this,  nodes get disappeared in desing tab in message mapping but will be visible when we test the mapping in the test tab.
    Is there any procedure , so that we can keep these nodes visible in design tab even after saving the Message Mapping.
    Regards,
    0mar.

    >
    Umar Syed wrote:
    > Hi ,
    >
    > For message mapping we are using an external defination with recursive structure.
    >
    > The name of the fields will be same but with different attribute value.  In Message mapping we duplicate the node and map the attribute to constant values during design but once we save this,  nodes get disappeared in desing tab in message mapping but will be visible when we test the mapping in the test tab.
    >
    > Is there any procedure , so that we can keep these nodes visible in design tab even after saving the Message Mapping.
    >
    > Regards,
    > 0mar.
    the issue is because you have not handled the node mapping for these fields. That is why during saving it goes away.
    Do the required mapping for the parent Node of the field you are duplicating

  • Recursive Data types

    Hi all,
    There have been some threads about mapping of a message that has some recursive structures.
    I am wondering how to define recursive structures.
    Eg
    <Persons>
         <Person>
           <Name>
           <Height>
           <Father>
                  <Name>
                   <Height>
                    <Father>
                            <Name>
                            <Height>
                            <Father>
    Can someone  please explain me?
    Message was edited by:
            Aarthi
    Message was edited by:
            Aarthi

    Hi Aarthi
    <b>look at this thread discuss the same</b>
    Re: Issue with GUI Mapping
    Recursive structure - complex mapping issue
    Thanks!!

  • Mapping of recursive item

    Component I am working on consists of two Views.
    One recursive structure is shared by both of them.
    Fist View fills the structure and second one displays the structure data in accordance with different filters.
    I defined global structure in the Component context and created identical one through mapping manipulation between component and View contexts for each of the iViews.
    I didn’t succeed to map recursive item.
    How can I map recursive item of the Component context to the one of the View Context?

    Anna,
    <i>I didn’t succeed to map recursive item.</i>
    Could you provide more details? What exactly goes wrong? Does your WD application fail to compile / build? Does it behave incorrectly at runtime? How does it manifest symptoms?
    I know that there were problems with recursive node mapping between components before SP9. Probably the same error happens for mapping inside single component.
    Regards,
    VS

  • Recursive node in xsd

    Hello PI people.
    I have a problem reguarding to a XSD file (standard DSML found here: [DSMLv2|http://www.oasis-open.org/committees/dsml/docs/DSMLv2.xsd]).
    When I Import it as external definition to PI Integration builder it all works fine but if I undfold the message "Filter" the there is problem with the defintions for "not" and after one more fold on "and" or "or" the same problem is shown. It looks like PI understands the XSD but it just not permit recursive nodes?
    Is it the XSD that dosent meet the PI standard or is it a internal thing in PI that needs to be activated to handle recursive nodes i XSD?
    (When a message is mapped with this DSML all the error prone nodes are stripped..)
    // Jesper

    Hello Jesper,
    You can refer to this document for supported XSD and WSDL:
    http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/00a9a425-1769-2a10-9196-bd8eeed72e4c
    Once you open this excel document go to row 94 for Recursive Data Structures, it says it is supported but there is a reference to row 143 which says
    Recursive data structure must be expanded in design-time manually to the desired depth
    If what you are thinking is dynamic recursion, then it is not possible. You have to use Java Mapping/XSLT for that. Now as for the nodes not displaying, right-click on the node and then select expand recursive structure.
    Hope this helps,
    Mark

  • Reg:Cost Estimate without Quantity Structure

    Hi Guru's,
    For Cost Estimate with Quantity Structure we need to run the following T.Codes....
    1) KP06
    2) KP26
    3) KSPI
    4) CS01
    5) CA01
    6) CR01
    7) CK11N
    8) CK24
    I want what are the T.Codes for Cost Estimate without Quantity Structure

    Hi,
    while am doing T.Code:KKPAN the following issue is coming....
    *Material F29 in plant 1000 w/o cost comp split: price acc to val strategy
    Message no. CK193*
    Diagnosis
    When valuating material components,
    the system could not find a cost component split for F29 in plant 1000.
    Possible causes:
    The material has not been costed.
    The material has not been selected for the costing run.
    The BOM was changed after the selection or BOM explosion for the costing run was carried out, and the material now has a new low-level code.
    This is a configurable material and does not have a costing view in the material master.
    The default value for price control is not set in the material type.
    The material belongs to a recursive structure. With this material, the system begins the iterative costing of the cycle. You can check in the material overview of the cost estimate whether the material belongs to a cycle.
    System Response
    The material is valuated with the price determined through the valuation strategy.
    Procedure
    Check the log.
    Carry out selection and BOM explosion for the costing run again.
    If the material is a configured material, create a costing view in its master record.
    Note: I already checked cost component spilt assigned for Plant....

  • Tree structure isn't built up properly

    I use a TreeByNestingTableColumn to build up a hierarchical structure. The first entry of the structure is filled in a supply method of the component controller. Subordinate elements are filled through a method ONACTIONCHILDREN_LOAD in the controller of the view in which the structure is displayed. When I try to build up a "regular" structure, no problems occur. But in my scenario there is the case that some elements which have children should be marked as expandable but the appropriate children shouldn't be loaded in order to avoid recursive structures. My problem is: When the user tries to expand such an element, the method ONACTIONCHILDREN_LOAD is called. In this method no children are added to the recursive node. This causes that the supply method is called and the first entry of the structure is taken as a child of the element that shouldn't be expandable!!! Is that a bug of WebDynpro?
    When I fill the first entry of the structure in the WDDOINIT method of the view which displays the structure, this problem doesn't occur! But in our application, it isn't possible to use the WDDOINIT method because of instantiation reasons.
    Thanks for your help,
    Karin

    Hi Karin,
    Load-on-demand via a supply function and ui element action don't work together for the reasons you pointed out. Is it possible for you to use another hook method like wdDoModifyView instead of wdDoInit? In wdDoModifyView you could check for the first_time parameter to perform this initialization only once.
    Best regards,
    Thomas

  • Lead selection with a tree-based table.

    I've created a recursive context node to display contents of a KM folder.  The structure has been mapped to a table, which works just fine.  I can expand nodes of the tree and display the contents of sub-folders.  Great.  However, I need to know which backing KM object has been selected via the table.  Since this is a recursive structure, using
    wdContext.currentXXXX()
    does not work, since that's the top of the tree.  Parameter mapping will only give you the column and/or row of the item selected in the table, not the object itself.
    I'm missing something obvious here, but I can't figure out how to get the context element behind the selected row in a table which is displaying a recursive structure.
    I can do this with a Tree structure, since you can map the 'path' parameter to the actual context object.  However, the Table UI doesn't offset that information (a severe oversight, at least in my mind).
    Suggestions?

    Thanks Armin, that works great.
    Had I finished reading this page:
    http://help.sap.com/saphelp_nw70/helpdata/en/60/1f1f056f057d4d962375efd3c92ed0/frameset.htm
    I would have found the correct documentation.

  • Help needed ... Default tables in XML Schema

    Hi all,
    I got a xsd definition here that does not do as I say ... g
    Though I specified default tables for Cisco_Card and Cisco_LogicalModule, not only the default tables with the names I specified are created but also additionally tables with the default name that is used if no name is specified.
    Actually I am trying to tell it defaultTable="" so no table at all is created. But there are always two tables: Cisco_Card1529_TAB and Cisco_LogicalModule1501_TAB.
    Can someone explain to me what I am doing wrong here?
    Thanks,
    Steff
    <xs:schema xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xdb:storeVarrayAsTable="true">
         <xs:element name="InvDetails" xdb:defaultTable="XML_CISCOWORKS" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="SchemaInfo" minOccurs="0"/>
                        <xs:element ref="RMEPlatform" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="SchemaInfo" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="RMEServer" type="xs:string" minOccurs="0"/>
                        <xs:element name="CreatedAt" type="xs:string" minOccurs="0"/>
                        <xs:element name="SchemaVersion" type="xs:string" minOccurs="0"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="RMEPlatform" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="Cisco_Chassis" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_NetworkElement" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_ComputerSystemPackage" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_Chassis" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:string"/>
                        <xs:element name="Model" type="xs:string" minOccurs="0"/>
                        <xs:element name="HardwareVersion" type="xs:string" minOccurs="0"/>
                        <xs:element name="SerialNumber" type="xs:string" minOccurs="0"/>
                        <xs:element name="ChassisSystemType" type="xs:string" minOccurs="0"/>
                        <xs:element name="NumberOfSlots" type="xs:integer" minOccurs="0"/>
                        <xs:element name="NoOfCommunicationConnectors" type="xs:integer" minOccurs="0"/>
                        <xs:element ref="Cisco_Backplane" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_Card" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_Backplane" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="BackplaneType" type="xs:string" minOccurs="0"/>
                        <xs:element name="Model" type="xs:string" minOccurs="0"/>
                        <xs:element name="SerialNumber" type="xs:string" minOccurs="0"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_Card" xdb:defaultTable="lala" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:integer"/>
                        <xs:element name="RequiresDaughterBoard" type="xs:boolean" minOccurs="0"/>
                        <xs:element name="Model" type="xs:string" minOccurs="0"/>
                        <xs:element name="SerialNumber" type="xs:string" minOccurs="0"/>
                        <xs:element name="LocationWithinContainer" type="xs:string" minOccurs="0"/>
                        <xs:element name="PartNumber" type="xs:string" minOccurs="0"/>
                        <xs:element name="CardType" type="xs:string" minOccurs="0"/>
                        <xs:element name="HardwareVersion" type="xs:string" minOccurs="0"/>
                        <xs:element name="Description" type="xs:string" minOccurs="0"/>
                        <xs:element name="OperationalStatus" type="xs:string" minOccurs="0"/>
                        <xs:element name="FWManufacturer" type="xs:string" minOccurs="0"/>
                        <xs:element name="Manufacturer" type="xs:string" minOccurs="0"/>
                        <xs:element name="NumberOfSlots" type="xs:integer" minOccurs="0"/>
                        <xs:element name="NoOfCommunicationConnectors" type="xs:integer" minOccurs="0"/>
                        <xs:element ref="SoftwareIdentity" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_CommunicationConnector" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_FlashDevice" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_PhysicalMemory" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_Card" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_CommunicationConnector" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:integer"/>
                        <xs:element name="ConnectorType" type="xs:string" minOccurs="0"/>
                        <xs:element name="Description" type="xs:string" minOccurs="0"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_FlashDevice" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:integer"/>
                        <xs:element name="InstanceName" type="xs:string" minOccurs="0"/>
                        <xs:element name="FlashDeviceType" type="xs:string" minOccurs="0"/>
                        <xs:element name="Size" type="xs:string" minOccurs="0"/>
                        <xs:element name="NumberOfPartitions" type="xs:integer" minOccurs="0"/>
                        <xs:element name="ChipCount" type="xs:integer" minOccurs="0"/>
                        <xs:element name="Description" type="xs:string" minOccurs="0"/>
                        <xs:element name="Removable" type="xs:boolean" minOccurs="0"/>
                        <xs:element ref="Cisco_FlashPartition" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_FlashPartition" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:integer"/>
                        <xs:element name="InstanceName" type="xs:string" minOccurs="0"/>
                        <xs:element name="Upgrade" type="xs:string" minOccurs="0"/>
                        <xs:element name="NeedsErasure" type="xs:boolean" minOccurs="0"/>
                        <xs:element name="PartitionStatus" minOccurs="0">
                             <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                       <xs:enumeration value="unknown"/>
                                       <xs:enumeration value="readOnly"/>
                                       <xs:enumeration value="runFromFlash"/>
                                       <xs:enumeration value="readWrite"/>
                                  </xs:restriction>
                             </xs:simpleType>
                        </xs:element>
                        <xs:element name="FileSystemSize" type="xs:string" minOccurs="0"/>
                        <xs:element name="AvailableSpace" type="xs:string" minOccurs="0"/>
                        <xs:element name="FileCount" type="xs:integer" minOccurs="0"/>
                        <xs:element ref="Cisco_FlashFile" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_FlashFile" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:integer"/>
                        <xs:element name="FileSize" type="xs:string" minOccurs="0"/>
                        <xs:element name="FileStatus" minOccurs="0">
                             <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                       <xs:enumeration value="unknown"/>
                                       <xs:enumeration value="deleted"/>
                                       <xs:enumeration value="invalidChecksum"/>
                                       <xs:enumeration value="valid"/>
                                  </xs:restriction>
                             </xs:simpleType>
                        </xs:element>
                        <xs:element name="Checksum" type="xs:string" minOccurs="0"/>
                        <xs:element name="InstanceName" type="xs:string" minOccurs="0"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_PhysicalMemory" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="MemoryType" minOccurs="0">
                             <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                       <xs:enumeration value="nvRam"/>
                                       <xs:enumeration value="NVRAM"/>
                                       <xs:enumeration value="processorRam"/>
                                       <xs:enumeration value="RAM"/>
                                       <xs:enumeration value="ROM"/>
                                       <xs:enumeration value="FEPROM"/>
                                       <xs:enumeration value="BRAM"/>
                                  </xs:restriction>
                             </xs:simpleType>
                        </xs:element>
                        <xs:element name="Capacity" type="xs:string" minOccurs="0"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_NetworkElement" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:integer"/>
                        <xs:element name="Description" type="xs:string" minOccurs="0"/>
                        <xs:element name="PrimaryOwnerName" type="xs:string" minOccurs="0"/>
                        <xs:element name="InstanceName" type="xs:string" minOccurs="0"/>
                        <xs:element name="PhysicalPosition" type="xs:string" minOccurs="0"/>
                        <xs:element name="SysObjectId" type="xs:string" minOccurs="0"/>
                        <xs:element name="SysUpTime" type="xs:string" minOccurs="0"/>
                        <xs:element name="OfficialHostName" type="xs:string" minOccurs="0"/>
                        <xs:element name="NumberOfPorts" type="xs:integer" minOccurs="0"/>
                        <xs:element ref="Cisco_LogicalModule" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_Port" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_MemoryPool" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_IfEntry" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_IPProtocolEndpoint" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_PEHasIfEntry" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_LogicalModule" xdb:defaultTable="lolo" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:integer"/>
                        <xs:element name="ModuleNumber" type="xs:integer" minOccurs="0"/>
                        <xs:element name="ModuleType" type="xs:string" minOccurs="0"/>
                        <xs:element name="InstanceName" type="xs:string" minOccurs="0"/>
                        <xs:element name="EnabledStatus" type="xs:string" minOccurs="0"/>
                        <xs:element name="NumberOfPorts" type="xs:integer" minOccurs="0"/>
                        <xs:element ref="Cisco_Port" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_LogicalModule" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_OSElement" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_Port" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="PortNumber" type="xs:integer" minOccurs="0"/>
                        <xs:element name="PortType" type="xs:string" minOccurs="0"/>
                        <xs:element name="InstanceName" type="xs:string" minOccurs="0"/>
                        <xs:element name="IfInstanceID" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_MemoryPool" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceName" type="xs:string" minOccurs="0"/>
                        <xs:element name="PoolType" type="xs:integer" minOccurs="0"/>
                        <xs:element name="DynamicPoolType" type="xs:string" minOccurs="0"/>
                        <xs:element name="AlternatePoolType" type="xs:string" minOccurs="0"/>
                        <xs:element name="IsValid" type="xs:boolean" minOccurs="0"/>
                        <xs:element name="Allocated" type="xs:string" minOccurs="0"/>
                        <xs:element name="Free" type="xs:string" minOccurs="0"/>
                        <xs:element name="LargestFree" type="xs:string" minOccurs="0"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                        <!--PoolType ValueMap {"0", "1", "2", "3", "4", "5", "65536"},
    Values {"Unknown", "Processor", "I/O", "PCI", "Fast", "Multibus", "Dynamic"},
    -->
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_OSElement" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceName" type="xs:string" minOccurs="0"/>
                        <xs:element name="OSFamily" type="xs:string" minOccurs="0"/>
                        <xs:element name="Version" type="xs:string" minOccurs="0"/>
                        <xs:element name="Description" type="xs:string" minOccurs="0"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_IfEntry" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:string"/>
                        <xs:element name="InstanceName" type="xs:string" minOccurs="0"/>
                        <xs:element name="ProtocolType" type="xs:string" minOccurs="0"/>
                        <xs:element name="Speed" type="xs:string" minOccurs="0"/>
                        <xs:element name="RequestedStatus" minOccurs="0">
                             <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                       <xs:enumeration value="up"/>
                                       <xs:enumeration value="down"/>
                                       <xs:enumeration value="testing"/>
                                  </xs:restriction>
                             </xs:simpleType>
                        </xs:element>
                        <xs:element name="OperationalStatus" minOccurs="0">
                             <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                       <xs:enumeration value="Up"/>
                                       <xs:enumeration value="Down"/>
                                       <xs:enumeration value="Testing"/>
                                       <xs:enumeration value="Unknown"/>
                                       <xs:enumeration value="Dormant"/>
                                  </xs:restriction>
                             </xs:simpleType>
                        </xs:element>
                        <xs:element name="Description" type="xs:string" minOccurs="0"/>
                        <xs:element name="PhysicalAddress" type="xs:string" minOccurs="0"/>
                        <xs:element name="NetworkAddress" type="xs:string" minOccurs="0"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_IPProtocolEndpoint" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="Address" type="xs:string" minOccurs="0"/>
                        <xs:element name="SubnetMask" type="xs:string" minOccurs="0"/>
                        <xs:element name="DefaultGateway" type="xs:string" minOccurs="0"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_PEHasIfEntry" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="Cisco_IPProtocolEndpoint" type="xs:string" minOccurs="0"/>
                        <xs:element name="Cisco_IfEntry" type="xs:string" minOccurs="0"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Cisco_ComputerSystemPackage" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="Antecedent" type="xs:string" minOccurs="0"/>
                        <xs:element name="Dependent" type="xs:string" minOccurs="0"/>
                        <!--
    Antecedent is the InstanceID from Cisco_Chassis Element
    Dependent is the InstanceID from Cisco_NetworkElement
    -->
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="SoftwareIdentity" xdb:defaultTable="" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="Classification" minOccurs="0">
                             <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                       <xs:enumeration value="Firmware"/>
                                       <xs:enumeration value="Software"/>
                                  </xs:restriction>
                             </xs:simpleType>
                        </xs:element>
                        <xs:element name="VersionString" type="xs:string" minOccurs="0"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="AdditionalInformation" xdb:defaultTable="" xdb:maintainDOM="true">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="AD" minOccurs="0" maxOccurs="unbounded" xdb:maintainDOM="false">
                             <xs:complexType>
                                  <xs:attribute name="name" type="xs:string"/>
                                  <xs:attribute name="value" type="xs:string"/>
                             </xs:complexType>
                        </xs:element>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
    </xs:schema>

    Here's the Culprit
    <xs:element name="Cisco_Card" xdb:defaultTable="lala" xdb:maintainDOM="false">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="InstanceID" type="xs:integer"/>
                        <xs:element name="RequiresDaughterBoard" type="xs:boolean" minOccurs="0"/>
                        <xs:element name="Model" type="xs:string" minOccurs="0"/>
                        <xs:element name="SerialNumber" type="xs:string" minOccurs="0"/>
                        <xs:element name="LocationWithinContainer" type="xs:string" minOccurs="0"/>
                        <xs:element name="PartNumber" type="xs:string" minOccurs="0"/>
                        <xs:element name="CardType" type="xs:string" minOccurs="0"/>
                        <xs:element name="HardwareVersion" type="xs:string" minOccurs="0"/>
                        <xs:element name="Description" type="xs:string" minOccurs="0"/>
                        <xs:element name="OperationalStatus" type="xs:string" minOccurs="0"/>
                        <xs:element name="FWManufacturer" type="xs:string" minOccurs="0"/>
                        <xs:element name="Manufacturer" type="xs:string" minOccurs="0"/>
                        <xs:element name="NumberOfSlots" type="xs:integer" minOccurs="0"/>
                        <xs:element name="NoOfCommunicationConnectors" type="xs:integer" minOccurs="0"/>
                        <xs:element ref="SoftwareIdentity" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_CommunicationConnector" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_FlashDevice" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_PhysicalMemory" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Cisco_Card" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="AdditionalInformation" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>Note that the element Cisco_Card contains a ref to itself. The same is true of the element Cisco_LogicalModule.
    When we encounter recursive structures we break the recursion by storing the recursive elements out-out-line is a seperate table and using a pointer (REF XMLType) column to track the relationionship..
    You can name these elements by putting an xdb:SQLInline="false" and xdb:defaultTable="YOUR_TABLE_NAME" on the recursive element.
    If you need to query accross these elements I would strongly advise upgrading to 10.2.x. In 10.2.x we implemented a number of optimizations for dealing with storing and querying this kind of structure.

Maybe you are looking for