Exratcing data of different types from a Vector

Hello Evryone
Hope all is well,
I'm having difficulties in extracting resultsets of different data types, from a vector, the following code is an extract from my remote server implementations; it works fine on the client side providing im only extracting a string.
Server remote method (Implementaions)
public Vector selecta(String query)throws SQLException,
RemoteException
Vector results=new Vector();
       ResultSet rs = statement.executeQuery(query);
       ResultSetMetaData metaData = rs.getMetaData();
       int columns = metaData.getColumnCount();
        int i=0;
          while( rs.next())
        for (int j=0; j<columns; j++)
         results.add(rs.getString( j+1 ));
         results.add(rs.getByte( j+1 ));
  return results;
}The client side extract:
Vector dataVector=new Vector();
   dataVector= data.selecta("SELECT columnname1" +
        "FROM Tablename");
       for (int i = 0; i <dataVector.size() ; i++)
        jcmbo.addItem( dataVector.get(i));
       } the above works only if i want to extract a string, and if the server impl didnt have the getbyte, is it possible pack all the resultset result of diffrent data type from the same table into a vector? and if it is, what mechanism would one use to extract each data type from a vector to put into diffrent components, e.g if one would want to put strings into a combo, like the above, and extract a byte[] with the use of type casting extract from the same vector and put in a lable.
I've been trying and its resulted only in to extracting one data type, can any one please shed some light on the above scienario,
thanking you in advance

you can't do
List list = new ArrayList(); // Better to use this rather than Vector;
list.add(resultSet.getByte(1)); // Compile error - cannot add a primitive to a List.
Instead use
list.add(new Byte(resultSet.getByte(1)));
You will of course on the Clientside need to check what type the column value is...
eg
if(list.get(3) instanceof Byte) {
Byte b = (Byte) list.get(3);
// do stuff here with the Byte instance.
Hope that helps
NB: Better would be to consider a structured approach to storing a result row such as a class whose instance represents a particular row in the results.
Talden

Similar Messages

  • Struts - collecting data in different bean from display.

    I have a problem which I can't seem to solve using struts.
    I have a set of data input forms from which I want to generate a report. I want to list the available forms, let the user select which ones to include and pass this list of ids to the class which produces the report.
    I have a List of forms in request scope ("notes") and am using using <logic:iterate /> to display them in a simple table.
          <html:form action="selectSummaryForms.do">
            <table width="100%" cellspacing="0" class="table">
              <tr class="tableHeader">
                <th class="tableColHeader">Type</th>
                <th class="tableColHeader">Date</th>
                <th class="tableColHeader">Include?</th>
                <th class="tableColHeader"/>
              </tr>
              <logic:iterate id="notes" name="consultationNotes" type="com.ardeo.emdt.ConsultationNote" indexId="index">
                <tr>
                  <td >
                    <bean:write name="notes" property="formName"/>
                  </td>
                  <td >
                    <bean:write name="notes" property="creationDate" format="dd/MM/yyyy"/>
                  </td>
                  <td >
                    <html:checkbox name="notes"  property="selected"  indexed="true"/>
                    <html:hidden name="notes" property="id"  indexed="true" />
                  </td>
                </tr>
              </logic:iterate>
              <tr>
                <td align="right" valign="bottom">
                  <html:submit value="Display"/>
                </td>
                <td align="right" valign="bottom">
                  <html:cancel/>
                </td>
              </tr>
            </table>
          </html:form>I wan the "id" and "selected" html fields to be available to selectSummaryForms.do (SelectSummaryFormsAction.java) but they are not there (and its not complaining about missing accessors as I would expect)

    You're trying to get 2 different pop-up VIs to display at the same time or you can't get the second VI to pop-up at all? If it's the first, you would have to use VI Server to call the VIs. If it's the second problem, make sure that the subVIs property is set to be Show Front Panel When Called and Close Afterwards if Originally Closed.
    I don't understand your comment about the port setting of the second instrument. What type of instruments are you talking about?

  • Appending data with different type

    In follow up to an earlier post, regarding appending data from one table to anlther, please could I have some advice on the appropriatness of using certain data types to accommodate data from a non-SQL data type?
    The following is displayed as
    non-SQL data type > SQL data type
    i) Real > FLOAT
    ii) Integer > NUMBER
    iii) Boolean > VarChar2
    iv) Character > CLOB
    v) Integer > FLOAT
    vi) Date > VarChar2
    My feeling is that i), ii), v) are acceptable, and the rest not acceptable. Please let me know if you disagree.
    From an earlier post, I gather that "to_char" is better than "VarChar2" when holding numerical data.
    Many thanks

    803242 wrote:
    In follow up to an earlier post, regarding appending data from one table to anlther, please could I have some advice on the appropriatness of using certain data types to accommodate data from a non-SQL data type?If you are copying data from one table to another, only SQL types are relevant because you cannot create tables with columns using non-SQL types.
    The following is displayed as
    non-SQL data type > SQL data type
    i) Real > FLOAT
    ii) Integer > NUMBER
    iii) Boolean > VarChar2
    iv) Character > CLOB
    v) Integer > FLOAT
    vi) Date > VarChar2
    Only boolean that you have listed as non-SQL types, is actually a non-SQL type.
    From an earlier post, I gather that "to_char" is better than "VarChar2" when holding numerical data.For holding numerical data you would use number or a variation such as integer or real, you would definitely not use varchar2. to_char is a data type conversion function, not a data type so is irrelevant.

  • Restore data to different laptop from time machine

    Hello! All my data from my old macbook was saved in TM on an external HD. Now I bought a macbook air and would like to restore some of my old data from the external HD (TM) to my new laptop. The air has less memory than the old macbook had. How to choose the data I need for restoration onto my macbook air?

    Apple does not make a device suitable directly to do what you want.
    There are NAS devices from the big three that provide proper raid disks, mirrored backup, rsync and itunes servers.. although the itunes may not do what you need. Netgear Synology Qnap.
    But the solution often adopted by Apple fanbois.. is to use a Mac Mini as a media centre. You don't need a brand new one.. even a 2ghz C2D from a few years ago will work well enough.. you need to add disk capacity via firewire.. would be preferred as it is much faster than USB.

  • Exporting data clusters with type version

    Hi all,
    let's assume we are saving some ABAP data as a cluster to database using the IMPORT TO ... functionality, e.g.
    EXPORT VBAK FROM LS_VBAK VBAP FROM LT_VBAP  TO DATABASE INDX(QT) ID 'TEST'
    Some days later, the data can be imported
    IMPORT VBAK TO LS_VBAK VBAP TO LT_VBAP FROM DATABASE INDX(QT) ID 'TEST'.
    Some months or years later, however, the IMPORT may crash: Since it is the most normal thing in the world that ABAP types are extended, some new fields may have been added to the structures VBAP or VBAK in the meantime.
    The data are not lost, however: Using method CL_ABAP_EXPIMP_UTILITIES=>DBUF_IMPORT_CREATE_DATA, they can be recovered from an XSTRING. This will create data objects apt to the content of the buffer. But the component names are lost - they get auto-generated names like COMP00001, COMP00002 etc., replacing the original names MANDT, VBELN, etc.
    So a natural question is how to save the type info ( = metadata) for the extracted data together with the data themselves:
    EXPORT TYPES FROM LT_TYPES VBAK FROM LS_VBAK VBAP FROM LT_VBAP TO DATABASE INDX(QT) ID 'TEST'.
    The table LT_TYPES should contain the meta type info for all exported data. For structures, this could be a DDFIELDS-like table containing the component information. For tables, additionally the table kind, key uniqueness and key components should be saved.
    Actually, LT_TYPES should contain persistent versions of CL_ABAP_STRUCTDESCR, CL_ABAP_TABLEDESCR, etc. But it seems there is no serialization provided for the RTTI type info classes.
    (In an optimized version, the type info could be stored in a separate cluster, and being referenced by a version number only in the data cluster, for efficiency).
    In the import step, the LT_TYPES could be imported first, and then instances for these historical data types could be created as containers for the real data import (here, I am inventing a class zcl_abap_expimp_utilities):
    IMPORT TYPES TO LT_TYPES FROM DATABASE INDX(QT) ID 'TEST'.
    DATA(LO_TYPES) = ZCL_ABAP_EXPIMP_UITLITIES=>CREATE_TYPE_INFOS ( LT_TYPES ).
    assign lo_types->data_object('VBAK')->* to <LS_VBAK>.
    assign lo_types->data_object('VBAP')->* to <LT_VBAP>.
    IMPORT VBAK TO <LS_VBAK> VBAP TO <LT_VBAP> FROM DATABASE INDX(QT) ID 'TEST'.
    Now the data can be recovered with their historical types (i.e. the types they had when the export statement was performed) and processed further.
    For example, structures and table-lines could be mixed into the current versions using MOVE-CORRESPONDING, and so on.
    My question: Is there any support from the standard for this functionality: Exporting data clusters with type version?
    Regards,
    Rüdiger

    The IMPORT statement works fine if target internal table has all fields of source internal table, plus some additional fields at the end, something like append structure of vbak.
    Here is the snippet used.
    TYPES:
    BEGIN OF ty,
      a TYPE i,
    END OF ty,
    BEGIN OF ty2.
            INCLUDE TYPE ty.
    TYPES:
      b TYPE i,
    END OF ty2.
    DATA: lt1 TYPE TABLE OF ty,
          ls TYPE ty,
          lt2 TYPE TABLE OF ty2.
    ls-a = 2. APPEND ls TO lt1.
    ls-a = 4. APPEND ls TO lt1.
    EXPORT table = lt1 TO MEMORY ID 'ZTEST'.
    IMPORT table = lt2 FROM MEMORY ID 'ZTEST'.
    I guess IMPORT statement would behave fine if current VBAK has more fields than older VBAK.

  • How do you save dynamic data type, from the DAQ assistant, for use in Excel or matlab?

    Currently, I have the following basic VI setup to save Data from my PCI6221 Data Aquisition Card.  The problem I'm having is I keep getting the last iteration of the while loop in the measurement file and that's pretty much it.  When I try to index the data leaving the loop it gives me a 2D array of Data which cannot be input into the "Write to Measurement File" VI.  How would I save this to a useful Data/time step format?  I was wondering of a way to continuously collect the Data and then save it in a large measurement file that I would manipulate in Matlab/excel?  Am I using the wrong type of loop for this application?  I also noticed my Dynamic Data array consists of data, time, timestep and then a vector of the data taken.  Is it possible to just get a vector of the time change per sample alongside the data?    Sorry for the barrage of questions but any help would be greatly appreciated, and thanks in advance!
    -Bryan
    Attachments:
    basic DAQ.vi ‏120 KB

    There is a VI in the Express > Signal Manipulation palette called "From DDT" that lets you convert from the Dynamic Data Type to other data types that are more compatible with operations like File I/O....for instance, you could convert your DDT into a 2D array and use the Write To Spreadsheet File.vi.  Just a thought...
    -D
    Darren Nattinger, CLA
    LabVIEW Artisan and Nugget Penman

  • How to send different type of data

    Hello, everyone,
    I am trying to send different types of data between client and server.
    For example, from server to client, I need to send some String data, using PrintWriter.println(String n); and send some other stuff using OutputStream.write(byte[] b, int x, int y). What I did is setting up a socket, then send them one by one. But it didn't work.
    I am just wondering if there is anything I need to do right after I finished sending the String data and before I start sending other stuff using OutputStream. (Because if I only send one of them, then it works; but when I send them together, then the error always happened to the second one no matter I use PrintWriter first or the OutputStream first)

    To send mixed type of data by hand allways using the same output/input stream, you could do:
    on server side
            ServerSocket serverSocket = null;
            Socket clientSocket = null;
            OutputStream out = null;
            try
                /*setup a socket*/
                serverSocket = new ServerSocket(4444);
                clientSocket = clientSocket = serverSocket.accept();
                out = new BufferedOutputStream(clientSocket.getOutputStream());
                /*send a byte*/
                int send1 = 3;
                out.write(send1);
                /*send a string with a line termination*/
                String send2 = "a string sample";
                out.write(send2.getBytes("ISO-8859-1"));
                out.write('\n');
            finally
                try { out.close(); }
                catch (Exception e) {}
                try { clientSocket.close(); }
                catch (Exception e) {}
                try { serverSocket.close(); }
                catch (Exception e) {}
    on client side
            Socket clientSocket = null;
            InputStream in = null;
            try
                clientSocket = new Socket("localhost", 4444);
                in = new BufferedInputStream(clientSocket.getInputStream());
                /*receive the byte*/
                int receive1 = in.read();
                System.out.println("The received message #1 is: " + receive1);
                /*receive the string up to the line termination*/
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                int c;
                while (((c = in.read()) != '\n') && (c != -1))
                    baos.write(c);
                String receive2 = baos.toString("ISO-8859-1");
                System.out.println("the received message #2 is: " + receive2);
            finally
                try { in.close(); }
                catch (Exception e) {}
                try { clientSocket.close(); }
                catch (Exception e) {}

  • Passing data to different internal tables with different columns from a comma delimited file

    Hi,
    I have a program wherein we upload a comma delimited file and based on the region( we have drop down in the selection screen to pick the region).  Based on the region, the data from the file is passed to internal table. For region A, we have 10 columns and for region B we have 9 columns.
    There is a split statement (split at comma) used to break the data into different columns.
    I need to add hard error messages if the no. of columns in the uploaded file are incorrect. For example, if the uploaded file is of type region A, then the uploaded file should be split into 10 columns. If the file contains lesser or more columns thenan error message should be added. Similar is the case with region B.
    I do not want to remove the existing split statement(existing code). Is there a way I can exactly pass the data into the internal table accurately? I have gone through some posts where in they have made use of the method cl_alv_table_create=>create_dynamic_table by passing the field catalog. But I cannot use this as I have two different internal tables to be populated based on the region. Appreciate help on this.
    Thanks,
    Pavan

    Hi Abhishek,
    I have no issues with the rows. I have a file with format like a1,b1,c1,d1,e1, the file should be uploaded and split at comma. So far its fine. After this, if the file is related to region A say Asia, then it should have 5 fields( as an example). So, all the 5 values a1,b1..e1 will be passed to 5 fields of itab1.
    I also have region B( say Europe)  whose file will have only 4 fields. So, file is of the form a2,b2,c2,d2. Again data is split at comma and passed to itab2.
    If some one loads file related to Asia and the file has only 4 fields  then the data would be incorrect. Similar is the case when someone tries to load Europe file with 5 fields related data. To avoid this, I want to validate the data uploaded. For this, I want to count the no. of fields (seperated by comma). If no. of fields is 5 then the file is related to Asia or if no. of fields is 4 then it is Europe file.
    Well, the no. of commas is nothing but no. of fields - 1. If the file is of the form a1,b1..e1 then I can say like if no. of commas = 4 then it is File Asia.But I am not sure how to write a code for this.Please advise.
    Thanks,
    Pavan

  • Mini-DVI to DVI Adapter issues (2 different types, no info from Apple)

    as you can see below, I have an iBook G4 1.2GHz
    three weeks ago I got a Mini-DVI to Video Adapter
    there were two different types in the Apple Store because there are two generations of Mini-DVI outputs, therefore some close inspection and it was easy to get the right part.
    Now, three weeks later, all that stuff is off the shelf so it looks like they only have up the more recent size plug. Thus, I cannot find the slightly smaller Mini-DVI to DVI Adapter. (typical Apple, probably just wants me to spend more money on a new machine)
    Anyone have a line on where to buy the older type of adapter?
    be very careful out there. They are pimping the heck out of the newer generations. I'm looking for the older one.
    (if not, I'll probably just stop buying Apple stuff. No need for the headache any more since they are no longer really different products. Just fashion)

    I have both an iBook G4 and a MacBook, which use each of the adaptors you have described. I found the information on the Apple site by identifying the Model iBook I had, Dual USB, and looking at he detailed views of each model to identify the type of 'video output port'. I obtained a '2 input' VGA switch from Tiger Direct to be able to switch my monitor from iBook to MacBook.
    Hope this helps!

  • Transport data types from PI 7.1 to 7.0

    Hi,
    I need to create in PI .70 a datatype that contains 30 datatypes, these datatypes are created in other machine PI 7.1, It's possible transport this objects from PI 7.1 to 7.0?
    How I can do it?
    Thanks in advance
    Jose Manuel

    Export the data types from the IR in PI 7.0 and then import them into PI 7.1.
    http://help.sap.com/saphelp_nw04/helpdata/en/a8/5e56006c17e748a68bb3843ed5aab8/content.htm
    Regards,
    Ravi

  • Vendor 800040 and posting data have different withholding tax types

    HI
    need some help..
    i ve created the lease in contract but unable to activate it... getting the following error
    Vendor 800040 and posting data have different withholding tax types...
    how to solve this issue,,

    Hi,
    could you please add the error message ID and error message number.
    Thank you.
    Regards, Franz

  • How to access  complex data type from a soap web services?

    hello
    can u please tell me how can i access complex data type from a soap web service from jdeveloper 10g
    Jdeveloper generates 3 classes
    serviceStub
    getproperties
    response
    i have to retreview the data which is a complex data type it gives some
    unknown type. and the return value is a key-value pair data type .
    regards
    vs

    After you create the partner link and the invoke (to create the variables), change the element type of the response message to the complex type definition of your collection that appears in the XSD. You can do the same thing if you want to change the element type of the payload of the request message as well.

  • How to crete data type from XSD

    Hi All,
    can anyone tell me ...how to create data type from agiven xsd.
    I need urgently....
    thanks in advance....

    import this XSD, load this in your mapping editor and then use this to crate the datatype manually.
    Or, use XML spy, load this XSD and then you should be able to see the Structure, or,
    Look into the XSD data and decipher things yourself
    Regards
    Bhavesh

  • Create Data Type from XSD

    Hey guys
    i need to create Data Type from and XSD,in the beginning i had an XML document which i converted to XSD using Altova ,then i imported this XSD in IR under External definition,now how should i go ahead with creating Data Type?
    my sample XSD is something like this
    <?xml version="1.0" encoding="UTF-8"?>
    <!W3C Schema generated by XMLSpy v2007 sp2 (http://www.altova.com)>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
         <xs:element name="WorkOrderNumber">
              <xs:simpleType>
                   <xs:restriction base="xs:short">
                        <xs:enumeration value="10942"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="VendorNumber">
              <xs:simpleType>
                   <xs:restriction base="xs:int">
                        <xs:enumeration value="109845"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
    Its not the complete XSD,just the first few lines.
    thanx
    Ahmad

    Hey Prabhu
    my XSD looks like this
    <?xml version="1.0" encoding="UTF-8"?>
    <!W3C Schema generated by XMLSpy v2007 sp2 (http://www.altova.com)>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
         <xs:element name="WorkOrderNumber">
              <xs:simpleType>
                   <xs:restriction base="xs:short">
                        <xs:enumeration value="10942"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="VendorNumber">
              <xs:simpleType>
                   <xs:restriction base="xs:int">
                        <xs:enumeration value="109845"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="UnitPrice">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="MonetaryAmount"/>
                        <xs:element ref="UnitOfMeasureCode"/>
                        <xs:element ref="CurrencyCode"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="UnitOfMeasureCode">
              <xs:simpleType>
                   <xs:restriction base="xs:string">
                        <xs:enumeration value="EA"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="TotalLineItems">
              <xs:simpleType>
                   <xs:restriction base="xs:byte">
                        <xs:enumeration value="6"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="TaxTypeCode">
              <xs:simpleType>
                   <xs:restriction base="xs:string">
                        <xs:enumeration value="GoodsAndServicesTax"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="TaxReference">
              <xs:simpleType>
                   <xs:restriction base="xs:string">
                        <xs:enumeration value="GST"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="TaxAmount">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="MonetaryAmount"/>
                        <xs:element ref="CurrencyCode"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Tax">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="TaxTypeCode"/>
                        <xs:element ref="TaxAmount"/>
                        <xs:element ref="TaxReference"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Requisition">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="Number"/>
                        <xs:element ref="LineItemNumber"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Quantity">
              <xs:simpleType>
                   <xs:restriction base="xs:decimal">
                        <xs:enumeration value="1.0"/>
                        <xs:enumeration value="2.0"/>
                        <xs:enumeration value="6.0"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="PrimaryCurrency">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="CurrencyCode"/>
                        <xs:element ref="ExchangeRate"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="Pricing">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="UnitPrice"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="PaymentTerms">
              <xs:simpleType>
                   <xs:restriction base="xs:string">
                        <xs:enumeration value="NT30"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="Number">
              <xs:simpleType>
                   <xs:restriction base="xs:string">
                        <xs:enumeration value="Q173849"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="MonetaryAmount">
              <xs:simpleType>
                   <xs:restriction base="xs:decimal">
                        <xs:enumeration value="1.98"/>
                        <xs:enumeration value="12.48"/>
                        <xs:enumeration value="12.63"/>
                        <xs:enumeration value="16.75"/>
                        <xs:enumeration value="24.96"/>
                        <xs:enumeration value="240.0"/>
                        <xs:enumeration value="33.84"/>
                        <xs:enumeration value="43.83"/>
                        <xs:enumeration value="5.64"/>
                        <xs:enumeration value="74.81"/>
                        <xs:enumeration value="87.66"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="LineItemTotal">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="MonetaryAmount"/>
                        <xs:element ref="CurrencyCode"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="LineItemNumber">
              <xs:simpleType>
                   <xs:restriction base="xs:byte">
                        <xs:enumeration value="10"/>
                        <xs:enumeration value="20"/>
                        <xs:enumeration value="30"/>
                        <xs:enumeration value="40"/>
                        <xs:enumeration value="50"/>
                        <xs:enumeration value="60"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="LineItemMaterialNumber">
              <xs:simpleType>
                   <xs:restriction base="xs:string">
                        <xs:enumeration value="108739"/>
                        <xs:enumeration value="192740-A"/>
                        <xs:enumeration value="380495"/>
                        <xs:enumeration value="43998"/>
                        <xs:enumeration value="54727S"/>
                        <xs:enumeration value="5746"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="LineItemInformation">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="LineItemMaterialNumber"/>
                        <xs:element ref="LineItemDescription"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="LineItemDescription">
              <xs:simpleType>
                   <xs:restriction base="xs:string">
                        <xs:enumeration value="ABSRBT PAD 17 IN X 19 IN X 3/8 IN UNIV P"/>
                        <xs:enumeration value="BSHG HEX 1 IN X 1/2 IN THD FS A105N"/>
                        <xs:enumeration value="GGE 4 IN 1M / 7000 DL SCALE 1/2 IN LM WI"/>
                        <xs:enumeration value="PEN REC RD MED GRAPHIC 39-202"/>
                        <xs:enumeration value="PL ORF 3 IN .5 IN ORF SER 500 316 SS"/>
                        <xs:enumeration value="WPR F-200 FLC NOV LABEL 20"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="Invoices">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="Invoice"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="InvoiceTypeCode">
              <xs:simpleType>
                   <xs:restriction base="xs:string">
                        <xs:enumeration value="ProductOrService"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="InvoiceTotal">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="MonetaryAmount"/>
                        <xs:element ref="CurrencyCode"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="InvoiceSummary">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="TotalLineItems"/>
                        <xs:element ref="InvoiceTotal"/>
                        <xs:element ref="Tax"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="InvoiceQuantity">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="Quantity"/>
                        <xs:element ref="UnitOfMeasureCode"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="InvoiceProperties">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="InvoiceNumber"/>
                        <xs:element ref="InvoiceDate"/>
                        <xs:element ref="VendorNumber"/>
                        <xs:element ref="InvoiceTypeCode"/>
                        <xs:element ref="PrimaryCurrency"/>
                        <xs:element ref="PaymentTerms"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="InvoiceNumber">
              <xs:simpleType>
                   <xs:restriction base="xs:int">
                        <xs:enumeration value="98815236"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="InvoiceLineItem">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="WorkOrderNumber"/>
                        <xs:element ref="LineItemNumber"/>
                        <xs:element ref="InvoiceQuantity"/>
                        <xs:element ref="LineItemInformation"/>
                        <xs:element ref="Pricing"/>
                        <xs:element ref="LineItemTotal"/>
                        <xs:element ref="Requisition"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="InvoiceDetails">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="InvoiceLineItem" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="InvoiceDate">
              <xs:simpleType>
                   <xs:restriction base="xs:date">
                        <xs:enumeration value="2007-01-25"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
         <xs:element name="Invoice">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="InvoiceProperties"/>
                        <xs:element ref="InvoiceDetails"/>
                        <xs:element ref="InvoiceSummary"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:element name="ExchangeRate">
              <xs:complexType/>
         </xs:element>
         <xs:element name="CurrencyCode">
              <xs:simpleType>
                   <xs:restriction base="xs:string">
                        <xs:enumeration value="CAD"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:element>
    </xs:schema>
    can you please tell me how to nest the structures,i m fairly new to XSD and stuffs
    thanx
    ahmad

  • What message type to use for syndicating data back to R3 from XI

    What message type to use for syndicating data back to R3 from XI. It gives a Message type IDOC error code 51.

    Hi Rehman,
    You are getting error 51 which means "Error: Application document not posted".
    This might because of two reasons:
    1. Your IDoc doesn't contains all the mandatory fields required by the inbound function module to post the IDoc.
    2. You have assigned wrong inbound function module to post the IDoc.
    Please check these cases.
    Hope this will help you.
    Thanks,
    Shiv Prashant Dixit

Maybe you are looking for