Indention in Hirerchical Data Grouing

I have created one report with Hierarchical grouping ..In Hierarchical Grouping option. i set a indent of 1 cm.. Now In detail section there are two field. but i want to indent only first field and not to second. I just want to display second field on report's right side.. Just like this
Level1               Title
    1                   ABC
        2               DEF
            3           HIJ
   4                    JKM
      5                 JKL
How to Do this???
Edited by: try abc on Oct 3, 2008 12:50 PM
Edited by: try abc on Oct 3, 2008 12:52 PM

>
Charliy Nash wrote:
> You can create 2 Detail sections and do a conditional print suppression on them.
>
> One section will only print for the the first item in the group:
> = Previous(Groupfield})
>
> The other section prints for subsequent items:
> <> Previous()
I create two Detail Section D1 and D2, then put the Group Filed (Level) on First D1 section and Other Field(Title ) On Second D2 section.
Add the above condition , but it does not display anything in second detail section

Similar Messages

  • XML data into itab

    Hi Experts,
    I have a XML file on my desk top.
    How to upload data from XML file into ITAB?
    Regards

    check this code
    this mat be useful to u
    REPORT  Z_NTVI_XML_TO_ABAP                      .
    Load iXML Lib.
    type-pools: ixml.
    class cl_ixml definition load.
    data: G_IXML type ref to if_ixml.
    data: STREAMFACTORY type ref to if_ixml_stream_factory.
    data: ISTREAM type ref to if_ixml_istream.
    data: DOCUMENT type ref to if_ixml_document.
    data: PARSER type ref to if_ixml_parser.
    data: LV_FILE_URL type rlgrap-filename.
    You should provide the parameter for file name
    LV_FILE_URL = 'C:input_xml.xml'.
    types: begin of XML_LINE,
            DATA(256) type x,
          end of XML_LINE.
    types: begin of TY_HEADER,
             CUST_NAME(20)     type c,
             CARD_NO(20)       type c,
             TAX_AMOUNT(10)    type c,
             TOTAL_AMOUNT(10)  type c,
           end of TY_HEADER.
    types: begin of TY_ITEM,
             ITEM_NO(4)      type n,
             ITEM_ID(20)     type c,
             ITEM_TITLE(50)  type c,
             ITEM_QTY(10)    type c,
             ITEM_UPRICE(10) type c,
           end of TY_ITEM.
    data: GV_HEADER type TY_HEADER.
    data: GT_ITEM   type standard table of TY_ITEM   with header line.
    data: XML_TABLE      type table of XML_LINE,
          XML_TABLE_SIZE type i.
    The next step is creating the main factory for the iXML library:
    G_IXML = cl_ixml=>create( ).
    Now Create Stream Factory
    STREAMFACTORY = G_IXML->create_stream_factory( ).
    upload a file from the client's workstation
    call function 'WS_UPLOAD'
         exporting
              filename   = LV_FILE_URL
              filetype   = 'BIN'
         importing
              filelength = XML_TABLE_SIZE
         tables
              data_tab   = XML_TABLE
         exceptions
              others     = 11.
    wrap the table containing the file into a stream
    ISTREAM = STREAMFACTORY->create_istream_itable( table = XML_TABLE
                                                    size  = XML_TABLE_SIZE )
    Get the file data as Stream
    *istream = streamfactory->create_istream_uri( public_id = lv_file_url
                                                system_id = lv_file_url ).
    Create XML Document instance
    DOCUMENT = G_IXML->create_document( ).
    Create parser Object
    PARSER = G_IXML->create_parser( stream_factory = STREAMFACTORY
                                    ISTREAM = istream
                                    DOCUMENT = document ).
    Parse an XML document into a DOM tree
    *parser->parse( ).
    Parsing Error Processing
    if PARSER->parse( ) ne 0.
      if PARSER->num_errors( ) ne 0.
        data: PARSEERROR type ref to if_ixml_parse_error,
              STR        type STRING,
              I          type i,
              COUNT      type I,
              INDEX      type i.
        COUNT = PARSER->num_errors( ).
        write: COUNT, ' parse errors have occured:'.
        INDEX = 0.
        while INDEX < COUNT.
          PARSEERROR = PARSER->get_error( INDEX = index ).
          I = PARSEERROR->get_line( ).
          write: 'line: ', i.
          I = PARSEERROR->get_column( ).
          write: 'column: ', i.
          STR = PARSEERROR->get_reason( ).
          write: STR.
          INDEX = index + 1.
        endwhile.
      endif.
    endif.
    Close the stream since it �s not needed anymore
    call method ISTREAM->close( ).
    clear ISTREAM.
    Now try to make it look good
    data : lv_size     type sytabix,
            lv_ret_code type sysubrc.
    data: lo_xml_document type ref to cl_xml_document.
    field-symbols: <fs_xml_data> type any table.
    lo_xml_document = document.
    call method lo_xml_document->get_as_table
       importing
         table   = <fs_xml_data>
         size    = lv_size
         retcode = lv_ret_code
    *data: items type ref to if_ixml_node_collection.
    *items = document->get_elements_by_tag_name( name = 'Item' ).
    *data: iterator type ref to if_ixml_node_iterator,
         node     type ref to if_ixml_node.
    *iterator = document->create_iterator( ).
    *node = iterator->get_next( ).
    *while not node is initial.
    do something with the node
    node = iterator->get_next( ).
    *endwhile.
    DATA : GV_NODE type ref to if_ixml_node.
    DATA : GV_NODETEXT type STRING.
    data:  GV_FIRST_TIME.
    GV_FIRST_TIME = 'X'.
    GV_NODE = DOCUMENT.
    GT_ITEM-item_no = 1.
    perform GET_DATA tables     GT_ITEM
                     using      GV_NODE
                     changing   GV_HEADER.
    Last item is still not added.
      append GT_ITEM.
    write  : GV_HEADER-cust_name,
             GV_HEADER-card_no,
             GV_HEADER-tax_amount,
             GV_HEADER-total_amount.
    loop at GT_ITEM.
      write  /:.
      write  : GT_ITEM-item_no,
               GT_ITEM-item_id,
               GT_ITEM-item_title,
               GT_ITEM-item_qty,
               GT_ITEM-item_uprice.
    endloop.
          FORM Get_data                                                 *
    form get_data tables   YT_ITEM    structure GT_ITEM
                  using value(x_node) type ref to if_ixml_node
                  changing Y_HEADER   type TY_HEADER.
      data: INDENT      type i.
      data: PTEXT       type ref to if_ixml_text.
      data: STRING      type string.
      data: TEMP_STRING(100).
      case X_NODE->get_type( ).
        when if_ixml_node=>co_node_element.
          STRING = X_NODE->get_name( ).
          GV_NODETEXT = STRING.
        when if_ixml_node=>co_node_text.
          PTEXT ?= X_NODE->query_interface( IXML_IID_TEXT ).
          if PTEXT->ws_only( ) is initial.
            STRING = X_NODE->get_value( ).
            case GV_NODETEXT.
              when 'Customer'.
                clear GV_HEADER.
              when 'Name'.
                move STRING to GV_HEADER-cust_name.
              when 'Cardnum'.
                move STRING to GV_HEADER-card_no.
              when 'Tax'.
                move STRING to GV_HEADER-tax_amount.
              when 'Total'.
                move STRING to GV_HEADER-total_amount.
            Iteam details
              when 'ID'.
                move STRING to GT_ITEM-item_id.
              when 'Title'.
                move STRING to TEMP_STRING.
                move TEMP_STRING to GT_ITEM-item_title.
              when 'Quantity'.
                move STRING to GT_ITEM-item_qty.
              when 'UnitPrice'.
                move STRING to GT_ITEM-item_uprice.
            endcase.
          endif.
      endcase.
      if GV_NODETEXT = 'Customer'.
        clear GV_HEADER.
      elseif GV_NODETEXT = 'Item'.
        if GV_FIRST_TIME ne 'X'.
           append GT_ITEM.
         clear : gt_item.
           GT_ITEM-item_no = gt_item-item_no + 1.
        endif.
        GV_FIRST_TIME = ' '.
      endif.
    Get the next child
      X_NODE = x_node->get_first_child( ).
    Recurse
      while not X_NODE is initial.
        perform GET_DATA tables     GT_ITEM
                         using      X_NODE
                         changing   GV_HEADER.
        X_NODE = x_node->get_next( ).
      endwhile.
    endform.
    *sample xml file
    <Name>Satya Mandiga</Name>
    <Cardnum>234 234 234 234</Cardnum>
    </Customer>
    <ID>209</ID>
    <Title>Duke: A Biography of the SAP Java Guru</Title>
    <Quantity>1</Quantity>
    <UnitPrice>Rs10.75</UnitPrice>
    </Item>
    <ID>208</ID>
    <Title>100% Pure: Making Cross Platform Deployment a Reality</Title>
    <Quantity>1</Quantity>
    <UnitPrice>Rs10.75</UnitPrice>
    </Item>
    <ID>204</ID>
    <Title>Making the Transition from C++ to the Java(tm)
    *Language</Title>
    <Quantity>1</Quantity>
    <UnitPrice>Rs10.75</UnitPrice>
    </Item>
    <ID>202</ID>
    <Title>Web Servers for Fun and Profit</Title>
    <Quantity>1</Quantity>
    <UnitPrice>Rs10.75</UnitPrice>
    </Item>
    <ID>210</ID>
    <Title>I Think Not: Dukes Likeness to the Federation Insignia</Title>
    <Quantity>1</Quantity>
    <UnitPrice>Rs10.75</UnitPrice>
    </Item>
    </Manifest>
    <Subtotal>Rs53.75</Subtotal>
    <Tax>Rs4.43</Tax>
    <Total>Rs58.18</Total>
    </Receipt>
    </Order>
    reward the points

  • XML data into sap

    Hi guys,
    How to upload a XML file into sap?
    is there any function module?
    can anybody give me an example program for converting or uploading XML data into sap.
    regards,
    vinoth.

    Hi all,
    The XML code and XML file given is running fine for me, but when i am using it, my XML file and code, the tables GV_header and GT_item are filling in the perform but outside perform it's empty.  Please find the code and XML file , PLease give the answer its urgent, points will be given for sure.
    My function module code is:-
    FUNCTION Z_MMI_XML_EXTRACT_COPY.
    ""Local interface:
    *"       IMPORTING
    *"             REFERENCE(DOCTYPE) LIKE  DRAW-DOKAR
    *"             REFERENCE(DOCNUM) LIKE  DRAW-DOKNR
    *"             REFERENCE(DOCVER) LIKE  DRAW-DOKVR
    *"             REFERENCE(DOCPART) LIKE  DRAW-DOKTL
    *"       TABLES
    *"              T_HEADER STRUCTURE  ZFI_HEADER
    *"              T_ITEMS STRUCTURE  ZFI_ITEMS
    Load iXML Lib.
    type-pools: ixml.
    class cl_ixml definition load.
    data: G_IXML type ref to if_ixml.
    data: STREAMFACTORY type ref to if_ixml_stream_factory.
    data: ISTREAM type ref to if_ixml_istream.
    data: DOCUMENT type ref to if_ixml_document.
    data: PARSER type ref to if_ixml_parser.
    You should provide the parameter for file name
    *LV_FILE_URL = 'C:input_xml.xml'.
    types: begin of XML_LINE,
            DATA(256) type x,
          end of XML_LINE.
    ***types: begin of TY_HEADER,
            CUST_NAME(20)     type c,
            CARD_NO(20)       type c,
            TAX_AMOUNT(10)    type c,
            TOTAL_AMOUNT(10)  type c,
          end of TY_HEADER.
    ***types: begin of TY_ITEM,
            ITEM_NO(4)      type n,
            ITEM_ID(20)     type c,
            ITEM_TITLE(50)  type c,
            ITEM_QTY(10)    type c,
            ITEM_UPRICE(10) type c,
          end of TY_ITEM.
    *data: GV_HEADER type TY_HEADER.
    *data: GV_HEADER like zfi_header occurs 0 with header line.
    data : GV_HEADER LIKE ZFI_HEADER.
    *data: GT_ITEM   type standard table of TY_ITEM   with header line.
    *data: GT_ITEM type standard table of zfi_items with header line.
    data: GT_ITEM type standard table of zfi_items with header line.
    data: XML_TABLE      type table of XML_LINE,
          XML_TABLE_SIZE type i.
    data: LV_FILE_URL type rlgrap-filename.
      DATA : BEGIN OF itab OCCURS 0,
      a(100) TYPE c,
      END OF itab.
      DATA: xml_out TYPE string .
      DATA : BEGIN OF upl OCCURS 0,
      f(255) TYPE c,
      END OF upl.
      DATA: xmlupl TYPE string .
      DATA : BEGIN OF wa_draw OCCURS 0,
             dokar LIKE draw-dokar,
             doknr LIKE draw-doknr,
             dokvr LIKE draw-dokvr,
             doktl LIKE draw-doktl,
             END OF wa_draw.
      DATA : g_documenttype LIKE bapi_doc_aux-doctype,
             g_documentnumber LIKE bapi_doc_aux-docnumber,
             g_documentpart LIKE bapi_doc_aux-docpart,
             g_documentversion LIKE bapi_doc_aux-docversion.
    *" Itab required in IMPORTING parameter of BAPI
      DATA : t_documentfile LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE.
    DATA : t_documentstructure LIKE bapi_doc_structure OCCURS 0 WITH HEADER
    LINE,
    itab required in TABLES parameters of BAPI
           t_documentfiles LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE,
           t_components LIKE bapi_doc_comp OCCURS 0 WITH HEADER LINE,
           t_return LIKE bapiret2.
      DATA : l_docfile TYPE string.
    ***FILL THE TYPE OF ATTACHMENT in IMPORTING itab**
      t_documentfile-wsapplication = 'XML'.
      APPEND t_documentfile.
      wa_draw-dokar = DOCTYPE.
      wa_draw-doknr = DOCNUM.
      wa_draw-doktl = DOCPART.
      wa_draw-dokvr = DOCVER.
      CALL FUNCTION 'BAPI_DOCUMENT_CHECKOUTVIEW2'
        EXPORTING
          documenttype              = wa_draw-dokar
          documentnumber            = wa_draw-doknr
          documentpart              = wa_draw-doktl
          documentversion           = wa_draw-dokvr
          documentfile              = t_documentfile "IMPORTING itab of BAPI
         getstructure              = '1'
         getcomponents             = 'X'
      ORIGINALPATH              = ' '
      HOSTNAME                  = ' '
         getheader                 = 'X'
      DOCBOMCHANGENUMBER        =
      DOCBOMVALIDFROM           =
      DOCBOMREVISIONLEVEL       =
       IMPORTING
         return                    = t_return
       TABLES
         documentstructure         = t_documentstructure
         documentfiles             = t_documentfiles "TABLES itab of BAPI
         components                = t_components
      LOOP AT t_documentfiles .
      ENDLOOP.
      l_docfile = t_documentfiles-docfile.
    The next step is creating the main factory for the iXML library:
    G_IXML = cl_ixml=>create( ).
    Now Create Stream Factory
    STREAMFACTORY = G_IXML->create_stream_factory( ).
      CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
    *filename = 'C:DMS_SPA.XML'
      filename = l_docfile
      filetype = 'BIN'
      IMPORTING
       FILELENGTH = XML_TABLE_SIZE
      TABLES
      data_tab = XML_TABLE.
    ISTREAM = STREAMFACTORY->create_istream_itable( table = XML_TABLE
                                                    size  = XML_TABLE_SIZE )
    Create XML Document instance
    DOCUMENT = G_IXML->create_document( ).
    Create parser Object
    PARSER = G_IXML->create_parser( stream_factory = STREAMFACTORY
                                    ISTREAM = istream
                                    DOCUMENT = document ).
    Parse an XML document into a DOM tree
    *parser->parse( ).
    Parsing Error Processing
    if PARSER->parse( ) ne 0.
      if PARSER->num_errors( ) ne 0.
        data: PARSEERROR type ref to if_ixml_parse_error,
              STR        type STRING,
              I          type i,
              COUNT      type I,
              INDEX      type i.
        COUNT = PARSER->num_errors( ).
        write: COUNT, ' parse errors have occured:'.
        INDEX = 0.
        while INDEX < COUNT.
          PARSEERROR = PARSER->get_error( INDEX = index ).
          I = PARSEERROR->get_line( ).
          write: 'line: ', i.
          I = PARSEERROR->get_column( ).
          write: 'column: ', i.
          STR = PARSEERROR->get_reason( ).
          write: STR.
          INDEX = index + 1.
        endwhile.
      endif.
    endif.
    Close the stream since it �s not needed anymore
    call method ISTREAM->close( ).
    clear ISTREAM.
    DATA : GV_NODE type ref to if_ixml_node.
    DATA : GV_NODETEXT type STRING.
    data:  GV_FIRST_TIME.
    GV_FIRST_TIME = 'X'.
    GV_NODE = DOCUMENT.
    *GT_ITEM-item_no = 1.
    GT_ITEM-itemno_acc = 1.
    perform GET_DATA tables     GT_ITEM
                     using      GV_NODE
                     changing   GV_HEADER.
    Last item is still not added.
      append GT_ITEM.
    APPEND GV_HEADER.
    *T_HEADER[] = gv_header[].
    t_items[] = gt_item[].
    **write  : GV_HEADER-cust_name,
            GV_HEADER-card_no,
            GV_HEADER-tax_amount,
            GV_HEADER-total_amount.
    **loop at GT_ITEM.
    write  /:.
    write  : GT_ITEM-item_no,
              GT_ITEM-item_id,
              GT_ITEM-item_title,
              GT_ITEM-item_qty,
              GT_ITEM-item_uprice.
    **endloop.
    ENDFUNCTION.
          FORM Get_data                                                 *
    ***form get_data tables   YT_ITEM    structure gt_ITEM
                 using value(x_node) type ref to if_ixml_node
                 changing Y_HEADER   type TY_HEADER.
    form get_data1 tables   YT_ITEM    structure zfi_items
                  using value(x_node) type ref to if_ixml_node
                  changing Y_HEADER   type zfi_header.
    ***form get_data tables   YT_ITEM    structure GT_ITEM
                 using value(x_node) type ref to if_ixml_node
                 changing Y_HEADER   type TY_HEADER.
      data: INDENT      type i.
      data: PTEXT       type ref to if_ixml_text.
      data: STRING      type string.
      data: TEMP_STRING(100).
      case X_NODE->get_type( ).
        when if_ixml_node=>co_node_element.
          STRING = X_NODE->get_name( ).
          GV_NODETEXT = STRING.
        when if_ixml_node=>co_node_text.
          PTEXT ?= X_NODE->query_interface( IXML_IID_TEXT ).
          if PTEXT->ws_only( ) is initial.
            STRING = X_NODE->get_value( ).
            case GV_NODETEXT.
             when 'Customer'.
                when 'HEADER'.
                clear GV_HEADER.
             when 'Name'.
               when 'INVOICE_IND'.
               move STRING to GV_HEADER-cust_name.
                move STRING to GV_HEADER-INVOICE_IND.
              when 'CompanyCode'.
                move STRING to GV_HEADER-CompanyCode.
              when 'OBJ_TYPE'.
                move STRING to GV_HEADER-OBJ_TYPE.
              when 'username'.
                move STRING to GV_HEADER-username.
              when 'PO_reference'.
                move STRING to GV_HEADER-PO_reference.
              when 'Invoice_Date'.
                move STRING to GV_HEADER-Invoice_Date.
              when 'Posting_Date'.
                move STRING to GV_HEADER-Posting_Date.
              when 'Amount'.
                move STRING to GV_HEADER-Amount.
              when 'Currency'.
                move STRING to GV_HEADER-Currency.
    *APPEND GV_HEADER.
            Iteam details
              when 'invoice_doc_item'.
                move STRING to GT_ITEM-ITEMNO_ACC.
              when 'currency'.
                move STRING to TEMP_STRING.
                move TEMP_STRING to GT_ITEM-CURRENCY.
              when 'Quantity'.
                move STRING to GT_ITEM-Quantity.
              when 'UoM'.
                move STRING to GT_ITEM-UoM.
            endcase.
          endif.
      endcase.
      if GV_NODETEXT = 'Header'.
        clear GV_HEADER.
      elseif GV_NODETEXT = 'Item'.
        if GV_FIRST_TIME ne 'X'.
           append GT_ITEM.
         clear : gt_item.
           GT_ITEM-ITEMNO_ACC = gt_item-itemno_acc + 1.
        endif.
        GV_FIRST_TIME = ' '.
      endif.
    Get the next child
      X_NODE = x_node->get_first_child( ).
    Recurse
      while not X_NODE is initial.
        perform GET_DATA tables     GT_ITEM
                         using      X_NODE
                         changing   GV_HEADER.
        X_NODE = x_node->get_next( ).
      endwhile.
    endform.
    the XML file is:-
    Thanx in advance

  • Error while opening the XML file

    Hi all,
    i'am trying to download data from internal table to XML file with root node and its
    corresponding child nodes.i have written the program in this way.
    tables: mara.
    include bcciixml_decl.
    include bcciixml_impl.
    parameters: p_matnr like mara-matnr.
    start-of-selection.
    data: piXML          type ref to if_ixml,
            pDocument      type ref to if_ixml_document,
            pStreamFactory type ref to if_ixml_stream_factory,
            pIStream       type ref to if_ixml_istream,
            pParser        type ref to if_ixml_parser,
            pNode          type ref to if_ixml_node,
            pText          type ref to if_ixml_text,
            string         type string,
            count          type i,
            index          type i,
            totalSize      type i,
            dsn(40)        type C,
            xstr           type xstring.
      types: begin of it_mara,
                matnr like mara-matnr,
                ernam like mara-ernam,
                aenam like mara-aenam,
                vpsta like mara-vpsta,
            end of it_mara.
    data: itab_mara type table of it_mara.
    select matnr ernam aenam vpsta from mara into table itab_mara where
           matnr =  p_matnr.
    types: begin of xml_line,
            data(256) type X,
          end of xml_line.
    data: xml_table type table of xml_line.
    parameters: filename like rlgrap-filename.
    pixml = cl_ixml=>create( ).
    *-- create the initial document
      pDocument = pixml->create_document( ).
      pStreamFactory = pixml->create_stream_factory( ).
    *-- create an input stream for the table
    *pIStream = pStreamFactory->create_istream_itable( table = xml_table
                                                     size  = totalSize ).
      pParser = piXML->create_parser( stream_factory = pStreamFactory
                                      istream        = pIStream
                                      document       = pDocument ).
    data: pOStream type ref to if_ixml_ostream.
    pOStream = pStreamFactory->create_ostream_itable( table = xml_table ).
    call method pDocument->render( ostream   = pOStream ).
    *-- how many bytes were written to the table?
    totalSize = pOStream->get_num_written_raw( ).
    *-- write the XML document back to the frontend
    concatenate filename '.out' into filename.
    condense filename no-gaps.
    CALL FUNCTION 'WS_DOWNLOAD'
         EXPORTING
              BIN_FILESIZE            = totalSize
              FILENAME                = filename
              FILETYPE                = 'BIN'
         TABLES
              DATA_TAB                = itab_mara
         EXCEPTIONS
              OTHERS                  = 11
    IF SY-SUBRC <> 0.
    ENDIF.
    *-- print the whole DOM tree as a list...
    pNode = pDocument.
    perform print_node using pNode.
          FORM print_node                                               *
    form print_node using value(pNode) type ref to if_ixml_node.
      data: indent      type i.
      data: pText       type ref to if_ixml_text.
      data: string      type string.
      indent  = pNode->get_height( ) * 2.
      case pnode->get_type( ).
        when if_ixml_node=>co_node_element.
          string = pNode->get_name( ).
          write: at /indent '<', string, '> '.
        when if_ixml_node=>co_node_text.
           pText ?= pNode->query_interface( ixml_iid_text ).
           if pText->ws_only( ) is initial.
            string = pNode->get_value( ).
            write: at /indent string.
           endif.
      endcase.
      pNode = pNode->get_first_child( ).
      while not pNode is initial.
         perform print_node using pNode.
         pNode = pNode->get_next( ).
      endwhile.
    endform.
    but when open the XML file which i created on the desktop it shows the following error.
    The XML page cannot be displayed
    Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
    XML document must have a top level element. Error processing resource 'file:///C:/Documents and Settings/anilda/Desktop/sim...
    how to rectify this error.
    Regards,
    satish.

    You are going to need to provide more details about this shell script file you are executing and the environment it is in. Beyond being on a Windows box, you have provided none of those details.
    If the SQL statement will execute cleanly in SQLDeveloper but not your script, then the issue lies in the script. How do you know the error is that SQL statement? Can your script even "select * from dual;" successfully?
    Also, SQLDeveloper (which I don't use) may contain its own libraries for accessing the DB. You probably should consider upgrading to a SQL*Plus client that is at least the same version or later as your database.
    Note:
    As I recall, xmlgen in 9.2 is now a synonym for dbms_xmlgen. You should change the package name accordingly [url http://docs.oracle.com/cd/B10501_01/appdev.920/a96612/d_xmlge2.htm#1010709]dbms_xmlgen.getXML

  • XML to ABAP

    hello all,
    my requirement is to read an XML file into a structure of type string, for that i have written an XSLT transformations but when am trying to pass the XML file to the parser am getting run time error saying
    XSLT_BAD_SOURCE_CONTEXT
    CX_XSLT_RUNTIME_ERROR
    below is the code for calling XSLT program
    TYPES: BEGIN OF ty_xml_line,
             data(256) TYPE x,
           END OF ty_xml_line.
    DATA: gt_in        type table of ty_xml_line,
              gt_out       type string.
    DATA: xslt_error   TYPE REF TO cx_xslt_exception,
              xslt_message TYPE string .
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename = 'T:\Documents and Settings\sgolla\Desktop\xmlorder1.xml'
      TABLES
        data_tab = gt_in.
    TRY .
        CALL TRANSFORMATION zord1
      SOURCE XML gt_in
      RESULT xml_output = gt_out .
      CATCH cx_xslt_exception INTO xslt_error.
        xslt_message = xslt_error->get_text( ).
    ENDTRY.
    please help me how to solve it......
    thx in advance
    Sippy.

    REPORT  ZSRK_022                                .
    Read XML file from presentation server*
    Load iXML Lib.
    TYPE-POOLS: IXML.
    CLASS CL_IXML DEFINITION LOAD.
    DATA: G_IXML TYPE REF TO IF_IXML.
    DATA: STREAMFACTORY TYPE REF TO IF_IXML_STREAM_FACTORY.
    DATA: ISTREAM TYPE REF TO IF_IXML_ISTREAM.
    DATA: DOCUMENT TYPE REF TO IF_IXML_DOCUMENT.
    DATA: PARSER TYPE REF TO IF_IXML_PARSER.
    DATA: LV_FILE_URL TYPE RLGRAP-FILENAME.
    You should provide the parameter for file name
    LV_FILE_URL = 'C:input_xml.xml'.
    TYPES: BEGIN OF XML_LINE,
            DATA(256) TYPE X,
          END OF XML_LINE.
    TYPES: BEGIN OF TY_HEADER,
             CUST_NAME(20)     TYPE C,
             CARD_NO(20)       TYPE C,
             TAX_AMOUNT(10)    TYPE C,
             TOTAL_AMOUNT(10)  TYPE C,
           END OF TY_HEADER.
    TYPES: BEGIN OF TY_ITEM,
             ITEM_NO(4)      TYPE N,
             ITEM_ID(20)     TYPE C,
             ITEM_TITLE(50)  TYPE C,
             ITEM_QTY(10)    TYPE C,
             ITEM_UPRICE(10) TYPE C,
           END OF TY_ITEM.
    DATA: GV_HEADER TYPE TY_HEADER.
    DATA: GT_ITEM   TYPE STANDARD TABLE OF TY_ITEM   WITH HEADER LINE.
    DATA: XML_TABLE      TYPE TABLE OF XML_LINE,
          XML_TABLE_SIZE TYPE I.
    The next step is creating the main factory for the iXML library:
    G_IXML = CL_IXML=>CREATE( ).
    Now Create Stream Factory
    STREAMFACTORY = G_IXML->CREATE_STREAM_FACTORY( ).
    upload a file from the client's workstation
    CALL FUNCTION 'WS_UPLOAD'
      EXPORTING
        FILENAME   = LV_FILE_URL
        FILETYPE   = 'BIN'
      IMPORTING
        FILELENGTH = XML_TABLE_SIZE
      TABLES
        DATA_TAB   = XML_TABLE
      EXCEPTIONS
        OTHERS     = 11.
    wrap the table containing the file into a stream
    ISTREAM = STREAMFACTORY->CREATE_ISTREAM_ITABLE( TABLE = XML_TABLE
                                                    SIZE  = XML_TABLE_SIZE ).
    Create XML Document instance
    DOCUMENT = G_IXML->CREATE_DOCUMENT( ).
    Create parser Object
    PARSER = G_IXML->CREATE_PARSER( STREAM_FACTORY = STREAMFACTORY
                                    ISTREAM = ISTREAM
                                    DOCUMENT = DOCUMENT ).
    Parse an XML document into a DOM tree
    *parser-&gtparse( ).
    Parsing Error Processing
    IF PARSER->PARSE( ) NE 0.
      IF PARSER->NUM_ERRORS( ) NE 0.
        DATA: PARSEERROR TYPE REF TO IF_IXML_PARSE_ERROR,
              STR        TYPE STRING,
              I          TYPE I,
              COUNT      TYPE I,
              INDEX      TYPE I.
        COUNT = PARSER->NUM_ERRORS( ).
        WRITE: COUNT, ' parse errors have occured:'.
        INDEX = 0.
        WHILE INDEX < COUNT.
          PARSEERROR = PARSER->GET_ERROR( INDEX = INDEX ).
          I = PARSEERROR->GET_LINE( ).
          WRITE: 'line: ', I.
          I = PARSEERROR->GET_COLUMN( ).
          WRITE: 'column: ', I.
          STR = PARSEERROR->GET_REASON( ).
          WRITE: STR.
          INDEX = INDEX + 1.
        ENDWHILE.
      ENDIF.
    ENDIF.
    Close the stream since it �s not needed anymore
    CALL METHOD ISTREAM->CLOSE( ).
    CLEAR ISTREAM.
    DATA : GV_NODE TYPE REF TO IF_IXML_NODE.
    DATA : GV_NODETEXT TYPE STRING.
    DATA:  GV_FIRST_TIME.
    GV_FIRST_TIME = 'X'.
    GV_NODE = DOCUMENT.
    GT_ITEM-ITEM_NO = 1.
    PERFORM GET_DATA TABLES     GT_ITEM
                     USING      GV_NODE
                     CHANGING   GV_HEADER.
    Last item is still not added.
    APPEND GT_ITEM.
    WRITE  : GV_HEADER-CUST_NAME,
             GV_HEADER-CARD_NO,
             GV_HEADER-TAX_AMOUNT,
             GV_HEADER-TOTAL_AMOUNT.
    LOOP AT GT_ITEM.
      WRITE  /:.
      WRITE  : GT_ITEM-ITEM_NO,
               GT_ITEM-ITEM_ID,
               GT_ITEM-ITEM_TITLE,
               GT_ITEM-ITEM_QTY,
               GT_ITEM-ITEM_UPRICE.
    ENDLOOP.
          FORM Get_data                                                 *
    FORM GET_DATA TABLES   YT_ITEM    STRUCTURE GT_ITEM
                  USING VALUE(X_NODE) TYPE REF TO IF_IXML_NODE
                  CHANGING Y_HEADER   TYPE TY_HEADER.
      DATA: INDENT      TYPE I.
      DATA: PTEXT       TYPE REF TO IF_IXML_TEXT.
      DATA: STRING      TYPE STRING.
      DATA: TEMP_STRING(100).
      CASE X_NODE->GET_TYPE( ).
        WHEN IF_IXML_NODE=>CO_NODE_ELEMENT.
          STRING = X_NODE->GET_NAME( ).
          GV_NODETEXT = STRING.
        WHEN IF_IXML_NODE=>CO_NODE_TEXT.
          PTEXT ?= X_NODE->QUERY_INTERFACE( IXML_IID_TEXT ).
          IF PTEXT->WS_ONLY( ) IS INITIAL.
            STRING = X_NODE->GET_VALUE( ).
            CASE GV_NODETEXT.
              WHEN 'Customer'.
                CLEAR GV_HEADER.
              WHEN 'Name'.
                MOVE STRING TO GV_HEADER-CUST_NAME.
              WHEN 'Cardnum'.
                MOVE STRING TO GV_HEADER-CARD_NO.
              WHEN 'Tax'.
                MOVE STRING TO GV_HEADER-TAX_AMOUNT.
              WHEN 'Total'.
                MOVE STRING TO GV_HEADER-TOTAL_AMOUNT.
            Iteam details
              WHEN 'ID'.
                MOVE STRING TO GT_ITEM-ITEM_ID.
              WHEN 'Title'.
                MOVE STRING TO TEMP_STRING.
                MOVE TEMP_STRING TO GT_ITEM-ITEM_TITLE.
              WHEN 'Quantity'.
                MOVE STRING TO GT_ITEM-ITEM_QTY.
              WHEN 'UnitPrice'.
                MOVE STRING TO GT_ITEM-ITEM_UPRICE.
            ENDCASE.
          ENDIF.
      ENDCASE.
      IF GV_NODETEXT = 'Customer'.
        CLEAR GV_HEADER.
      ELSEIF GV_NODETEXT = 'Item'.
        IF GV_FIRST_TIME NE 'X'.
          APPEND GT_ITEM.
         clear : gt_item.
          GT_ITEM-ITEM_NO = GT_ITEM-ITEM_NO + 1.
        ENDIF.
        GV_FIRST_TIME = ' '.
      ENDIF.
    Get the next child
      X_NODE = X_NODE->GET_FIRST_CHILD( ).
    Recurse
      WHILE NOT X_NODE IS INITIAL.
        PERFORM GET_DATA TABLES     GT_ITEM
                         USING      X_NODE
                         CHANGING   GV_HEADER.
        X_NODE = X_NODE->GET_NEXT( ).
      ENDWHILE.
    ENDFORM.                    "get_data

  • Convert XML to SAP internal table

    Hi gurus,
    My program is suppose to get current exchange rate file from website and upload it in SAP.
    by using FM 'HTTP_GET', im getting the data in XML format.My problem is..i have tried to use transformation but failed to
    map it against XML data element..and i have tried to use CALL FUNCTION 'SCMS_TEXT_TO_XSTRING' and then CALL FUNCTION 'SMUM_XML_PARSE' but it returns initial value with error ''line   0 col  12-unexpected symbol: '>'' .
    Below is an excerpt of my XML file:
    ..<xml version>
    ..<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
    .. xmlns:o="urn:schemas-microsoft-com:office:office"
    .. xmlns:x="urn:schemas-    microsoft-com:office:excel"
    .. xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
    .. <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <WindowHeight>10875</WindowHeight>........ <WindowWidth>13260</WindowWidth><WindowTopX>480</WindowTopX><WindowTopY>30</Wind
    ..  <Style ss:ID="Default" ss:Name="Normal">
    ..  <Alignment ss:Vertical="Bottom"/>
    ..  <Borders/>
    ..  <Font/>
    ..  <Interior/>
    ..  <NumberFormat/>
    ..  <Protection/>
    ..  </Style>
    ..  <Style ss:ID="BoldColumn">
    ..  <Font ss:FontName="Microsoft Sans Serif" x:Family="Swiss" ss:Bold="1"/>
    .. <Worksheet ss:Name="Page1"><Table ss:StyleID="s21"   > <Column   ss:Width="130"/> <Column   ss:Width="85"/> <Column   .. ss:Width="85"/> <Column   ss:Width="85"/> <Column   ss:Widt
    .. Cell><Cell ss:MergeAcross="1" ss:StyleID="BoldColumn"><Data ss:Type="String">Average Buying Rates</Data></Cell><Cell .. ss:MergeDown="1" ss:StyleID="BoldColumn"><Data ss:Type="Stri
    .. ss:Type="Number">47.3732</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">47.5374</Data></Cell><Cell .. ss:StyleID="Decimal"><Data ss:Type="Number">48.2323</Data></Ce
    .. "  ><Data ss:Type="String">HONG KONG</Data></Cell><Cell ss:StyleID="StringLiteralCenter"  ><Data .. .. ss:Type="String">HKD</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Numb
    .. ss:Type="Number">22.8131</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">23.2595</Data></Cell>.. .. </Row><Row><Cell ss:StyleID="StringLiteral"  ><Data ss:Type="String"
    .. ss:StyleID="StringLiteralCenter"  ><Data ss:Type="String">IDR</Data></Cell><Cell ss:StyleID="Decimal"><Data .. ss:Type="Number">3.0395</Data></Cell><Cell ss:StyleID="Decimal"><Data
    .. ecimal"><Data ss:Type="Number">30.6424</Data></Cell></Row><Row><Cell ss:StyleID="StringLiteral"  ><Data .. ss:Type="String">AUSTRALIA</Data></Cell><Cell ss:StyleID="StringLiteralCe
    .. ell ss:StyleID="Decimal"><Data ss:Type="Number">0.3392</Data></Cell><Cell ss:StyleID="Decimal"><Data .. ss:Type="Number">0.3409</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Typ
    .. StringLiteral"  ><Data ss:Type="String">DENMARK</Data></Cell><Cell ss:StyleID="StringLiteralCenter"  ><Data .. ss:Type="String">DKK</Data></Cell><Cell ss:StyleID="Decimal"><Data ss
    .. ata ss:Type="Number">4.4550</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">4.6073</Data></Cell>.. </Row><Row></Row><Row></Row><Row><Cell ss:MergeAcross="4" ss:Style
    .. s of   23 November 2010</Data></Cell></Row><Row></Row><Row><Cell ss:MergeAcross="4" .. ss:StyleID="BoldColumn_Left" ><Data ss:Type="String">2. Foreign Exchange Rates (THOMSON REUTE
    ..  ><Data ss:Type="String">ZAR</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">4.2735</Data></Cell>.. <Cell ss:StyleID="Decimal"><Data ss:Type="Number">4.3125</Data></
    .. ="Decimal"><Data ss:Type="Number">106.5459</Data></Cell><Cell ss:StyleID="Decimal"><Data .. ss:Type="Number">107.5164</Data></Cell></Row><Row><Cell ss:StyleID="StringLiteral"  ><Da
    .. a></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">4.6916</Data></Cell></Row><Row><Cell .. ss:StyleID="StringLiteral"  ><Data ss:Type="String">BANGLADESH</Data></Cell><Cell
    .. r">0.0074</Data></Cell></Row><Row><Cell ss:StyleID="StringLiteral"  ><Data ss:Type="String">KENYA</Data></Cell><Cell .. ss:StyleID="StringLiteralCenter"  ><Data ss:Type="String">KE
    .. ><Cell ss:StyleID="StringLiteral"  ><Data ss:Type="String">VIET NAM</Data></Cell><Cell ss:StyleID="StringLiteralCenter"  >.. <Data ss:Type="String">VND</Data></Cell><Cell ss:StyleI
    .. A</Data></Cell><Cell ss:StyleID="StringLiteralCenter"  ><Data ss:Type="String">LKR</Data></Cell><Cell .. .. ss:StyleID="Decimal"><Data ss:Type="Number">0.2686</Data></Cell><Cell ss:St
    .. String">OMR</Data></Cell><Cell ss:StyleID="Decimal"><Data ss:Type="Number">77.7094</Data></Cell><Cell
    Please help me to translate my XML file into SAP format...i need it fixed urgently..
    Edited by: Guest101 on Dec 28, 2010 12:11 PM

    It has 2 part one is source code and another is the XML file
    create an XML file with the data provided in the last 2.
    then place it in a path mention the path in the below source.
    1. Complete code for converting XML to internal table in SAP.
    *& Report  ZTST_PGM02
    REPORT  ZTST_PGM02.
    Load iXML Lib.
    type-pools: ixml.
    class cl_ixml definition load.
    data: G_IXML type ref to if_ixml.
    data: STREAMFACTORY type ref to if_ixml_stream_factory.
    data: ISTREAM type ref to if_ixml_istream.
    data: DOCUMENT type ref to if_ixml_document.
    data: PARSER type ref to if_ixml_parser.
    data: LV_FILE_URL type rlgrap-filename.
    You should provide the parameter for file name
    LV_FILE_URL = 'D:\navps\input_xml.xml'.
    types: begin of XML_LINE,
            DATA(256) type x,
          end of XML_LINE.
    types: begin of TY_HEADER,
             CUST_NAME(20)     type c,
             CARD_NO(20)       type c,
             TAX_AMOUNT(10)    type c,
             TOTAL_AMOUNT(10)  type c,
           end of TY_HEADER.
    types: begin of TY_ITEM,
             ITEM_NO(4)      type n,
             ITEM_ID(20)     type c,
             ITEM_TITLE(50)  type c,
             ITEM_QTY(10)    type c,
             ITEM_UPRICE(10) type c,
           end of TY_ITEM.
    data: GV_HEADER type TY_HEADER.
    data: GT_ITEM   type standard table of TY_ITEM  with header line.
    data: XML_TABLE      type table of XML_LINE,
          XML_TABLE_SIZE type i.
    The next step is creating the main factory for the iXML library:
    G_IXML = cl_ixml=>create( ).
    Now Create Stream Factory
    STREAMFACTORY = G_IXML->create_stream_factory( ).
    upload a file from the client's workstation
    call function 'WS_UPLOAD'
         exporting
              filename   = LV_FILE_URL
              filetype   = 'BIN'
         importing
              filelength = XML_TABLE_SIZE
         tables
              data_tab   = XML_TABLE
         exceptions
              others     = 11.
    wrap the table containing the file into a stream
    ISTREAM = STREAMFACTORY->create_istream_itable( table = XML_TABLE
                                                    size  = XML_TABLE_SIZE )
    Get the file data as Stream
    *istream = streamfactory->create_istream_uri( public_id = lv_file_url
                                                system_id = lv_file_url ).
    Create XML Document instance
    DOCUMENT = G_IXML->create_document( ).
    Create parser Object
    PARSER = G_IXML->create_parser( stream_factory = STREAMFACTORY
                                    ISTREAM = istream
                                    DOCUMENT = document ).
    Parse an XML document into a DOM tree
    *parser->parse( ).
    Parsing Error Processing
    if PARSER->parse( ) ne 0.
      if PARSER->num_errors( ) ne 0.
        data: PARSEERROR type ref to if_ixml_parse_error,
              STR        type STRING,
              I          type i,
              COUNT      type I,
              INDEX      type i.
        COUNT = PARSER->num_errors( ).
        write: COUNT, ' parse errors have occured:'.
        INDEX = 0.
        while INDEX < COUNT.
          PARSEERROR = PARSER->get_error( INDEX = index ).
          I = PARSEERROR->get_line( ).
          write: 'line: ', i.
          I = PARSEERROR->get_column( ).
          write: 'column: ', i.
          STR = PARSEERROR->get_reason( ).
          write: STR.
          INDEX = index + 1.
        endwhile.
      endif.
    endif.
    Close the stream since it #s not needed anymore
    call method ISTREAM->close( ).
    clear ISTREAM.
    Now try to make it look good
    data : lv_size     type sytabix,
            lv_ret_code type sysubrc.
    data: lo_xml_document type ref to cl_xml_document.
    field-symbols: <fs_xml_data> type any table.
    lo_xml_document = document.
    call method lo_xml_document->get_as_table
       importing
         table   = <fs_xml_data>
         size    = lv_size
         retcode = lv_ret_code
    *data: items type ref to if_ixml_node_collection.
    *items = document->get_elements_by_tag_name( name = 'Item' ).
    *data: iterator type ref to if_ixml_node_iterator,
         node     type ref to if_ixml_node.
    *iterator = document->create_iterator( ).
    *node = iterator->get_next( ).
    *while not node is initial.
    do something with the node
    node = iterator->get_next( ).
    *endwhile.
    DATA : GV_NODE type ref to if_ixml_node.
    DATA : GV_NODETEXT type STRING.
    data:  GV_FIRST_TIME.
    GV_FIRST_TIME = 'X'.
    GV_NODE = DOCUMENT.
    GT_ITEM-item_no = 1.
    perform GET_DATA tables     GT_ITEM
                     using      GV_NODE
                     changing   GV_HEADER.
    Last item is still not added.
      append GT_ITEM.
    write  : GV_HEADER-cust_name,
             GV_HEADER-card_no,
             GV_HEADER-tax_amount,
             GV_HEADER-total_amount.
    loop at GT_ITEM.
      write  /:.
      write  : GT_ITEM-item_no,
               GT_ITEM-item_id,
               GT_ITEM-item_title,
               GT_ITEM-item_qty,
               GT_ITEM-item_uprice.
    endloop.
          FORM Get_data                                                 *
    form get_data tables   YT_ITEM    structure GT_ITEM
                  using value(x_node) type ref to if_ixml_node
                  changing Y_HEADER   type TY_HEADER.
      data: INDENT      type i.
      data: PTEXT       type ref to if_ixml_text.
      data: STRING      type string.
      data: TEMP_STRING(100).
      case X_NODE->get_type( ).
        when if_ixml_node=>co_node_element.
          STRING = X_NODE->get_name( ).
          GV_NODETEXT = STRING.
        when if_ixml_node=>co_node_text.
          PTEXT ?= X_NODE->query_interface( IXML_IID_TEXT ).
          if PTEXT->ws_only( ) is initial.
            STRING = X_NODE->get_value( ).
            case GV_NODETEXT.
              when 'Customer'.
                clear GV_HEADER.
              when 'Name'.
                move STRING to GV_HEADER-cust_name.
              when 'Cardnum'.
                move STRING to GV_HEADER-card_no.
              when 'Tax'.
                move STRING to GV_HEADER-tax_amount.
              when 'Total'.
                move STRING to GV_HEADER-total_amount.
            Iteam details
              when 'ID'.
                move STRING to GT_ITEM-item_id.
              when 'Title'.
                move STRING to TEMP_STRING.
                move TEMP_STRING to GT_ITEM-item_title.
              when 'Quantity'.
                move STRING to GT_ITEM-item_qty.
              when 'UnitPrice'.
                move STRING to GT_ITEM-item_uprice.
            endcase.
          endif.
      endcase.
      if GV_NODETEXT = 'Customer'.
        clear GV_HEADER.
      elseif GV_NODETEXT = 'Item'.
        if GV_FIRST_TIME ne 'X'.
           append GT_ITEM.
         clear : gt_item.
           GT_ITEM-item_no = gt_item-item_no + 1.
        endif.
        GV_FIRST_TIME = ' '.
      endif.
    Get the next child
      X_NODE = x_node->get_first_child( ).
    Recurse
      while not X_NODE is initial.
        perform GET_DATA tables     GT_ITEM
                         using      X_NODE
                         changing   GV_HEADER.
        X_NODE = x_node->get_next( ).
      endwhile.
    endform.
    Create an XML file with the following DATA given below and place it in the path mentioned above source code.
    2. XML File DATA. You create an XML File in this format to test the same.
      <?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
    - <Order>
    - <Customer>
      <Name>Bill Buckram</Name>
      <Cardnum>234 234 234 234</Cardnum>
      </Customer>
    - <Manifest>
    - <Item>
      <ID>209</ID>
      <Title>Duke: A Biography of the Java Evangelist</Title>
      <Quantity>1</Quantity>
      <UnitPrice>$10.75</UnitPrice>
      </Item>
    - <Item>
      <ID>208</ID>
      <Title>100% Pure: Making Cross Platform Deployment a Reality</Title>
      <Quantity>1</Quantity>
      <UnitPrice>$10.75</UnitPrice>
      </Item>
    - <Item>
      <ID>204</ID>
      <Title>Making the Transition from C++ to the Java(tm) Language</Title>
      <Quantity>1</Quantity>
      <UnitPrice>$10.75</UnitPrice>
      </Item>
    - <Item>
      <ID>202</ID>
      <Title>Web Servers for Fun and Profit</Title>
      <Quantity>1</Quantity>
      <UnitPrice>$10.75</UnitPrice>
      </Item>
    - <Item>
      <ID>210</ID>
      <Title>I Think Not: Dukes Likeness to the Federation Insignia</Title>
      <Quantity>1</Quantity>
      <UnitPrice>$10.75</UnitPrice>
      </Item>
      </Manifest>
    - <Receipt>
      <Subtotal>$53.75</Subtotal>
      <Tax>$4.43</Tax>
      <Total>$58.18</Total>
      </Receipt>
      </Order>

  • AdvancedDataGrid scrolling up issue

    Hi,
    I have a AdvancedDataGrid that display a hierarchy source, there is one issue that when scrolling up from bottom, the item are repeating,
    such as : pciture 1 (currect display the hierarchy), pciture 2 (items are repeated after scrolling up), picture 3 (the expected display)
    picture 1
    picture 2
    picture 3
    Here is the definition for the AdvancedDataGrid:
    <mx:AdvancedDataGrid id="layer_datagrid" headerHeight="0"
    editable="true" selectable="true" verticalGridLines="false"
    iconFunction="{null}" folderClosedIcon="{null}" folderOpenIcon="{null}" >
    <mx:dataProvider>
    <mx:HierarchicalData source="{this.layerList}"/>
    </mx:dataProvider>
    <mx:columns>
    <mx:AdvancedDataGridColumn id="empty_Col" editable="false" draggable="false" width="50"/>
    <mx:AdvancedDataGridColumn id="layersName_col" dataField="name" editable="false" itemRenderer="com.woodwing.digitalmagazine.views.renderers.LayerNameRenderer" draggable="false"/>
    <mx:AdvancedDataGridColumn id="layersCheckBox_col" dataField="selected" editable = "false" itemRenderer="com.woodwing.digitalmagazine.views.renderers.LayerRenderer" width="18" headerText="" resizable="false" draggable="false"/>
    </mx:columns>
    Definition for the LayerNameRenderer
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
    width="100%" height="60" >
    <mx:Script>
    <![CDATA[
    import com.LayerItemVO;
    ]]>
    </mx:Script>
    <mx:HBox>
    <mx:HBox id="indent" width="{LayerItemVO(data).indent}"/>
    <mx:HBox>
    <mx:HBox id="color" backgroundColor="{LayerItemVO(data).layerColor}" width="9" height="14"/>
    <mx:Label id="layerNameInUse" height="18" enabled="{LayerItemVO(data).enabled}" text="{LayerItemVO(data).name}"/>
    </mx:HBox>
    </mx:HBox>
    </mx:Canvas>
    Please provide any hint to solve this issue.
    p.s. I need to define an empty column (id=empty_col), otherwise the enabled on layerRenderer dose not work.
    Thanks.

    Sree_D,
    I defined the hierarchy source for renderer as Bindable object, such as
    this.LayerList is ArrayCollection of LayerItemVO
    [Bindable]
    public class LayerItemVO {
         public var children:ArrayCollection;
         public var name:String = "";
         public var layerColor:uint = 0x0;
         public var enabled:Boolean = true;
         public function LayerItemVO () {
              this.children = new ArrayCollection();
    You also see the definition of LayerNameRenderer in previous post.
    Do you see any problem on the code snippet?
    I have tried to follow what Adobe taught about how to define the AdvancedDataGrid, and still not know why the renderer didn't get updated when scrolling up/down. The AdvancedDataGrid did display the hierarchy data correctly.
    Can you let me know how to verify the data are getting set in renderers when scrolled up/down? Is there any event followed the scrolling?
    Maybe I can write out some log on this event.
    Also you mentioned that the first column should be group item renderer, can you give me example how to define a group item renderer?
    Thanks.

  • Best Practice - HLevel for Alternate Hierarchy

    Good morning,
    Our Account dimension contains both a standard and alternate hierarchy.  We currently use the HLevel property to drive a variety of formatting (hierarchy indentations, outline for "data bottom", bold for "parent", etc.).  The formulas we've developed for the standard hierarchy work well, but they don't always work with the alternate hierarchy.  I'm considering the creation of a new "Alt_HLevel" property that would contain the associated numerical hierarchy levels for the alternate.  This would provide a level of simplicity in reporting as it would allow us to use consistent formulas.  Downside is the added maintenance.  Before proceeding, I'd like to know if anyone has a better solution.  Thanks!

    Hi Kim,
    As far as my understanding says, HLEVEL will work with the 1st hierarchy of your dimension. So, if you want, you can definitely go ahead by adding another property for the second hierarchy. But yes, as you have already figured out, the cost would be at the maintenance. If you are having regular additions to your dimension, it might be difficult to maintain this property. If the addition of members is not frequent, then I dont see any challenge.
    Alternatively, you can try using H2 when you are calling the HLEVEL property. I have never checked this, so not sure whether it will work or not. But worth trying.
    Hope this helps.

  • Save tree structure to text file and load textfile to another tree control

    I'm able to save the structure and data to a text file, thanks to the "save tree structure to textfile" info found on this msg board, but can't seem to load the complete tree structure data from the text file into another tree. I've only been able to load parent data but can't get the hierarchy of the tree with the indents and child data to work.
    Thanks

    Thanks Tanya,
    However, I'm still stumped on how to copy (from text file) to other columns in the tree (from one tree to another).  I can only get the first column to load.
    I've attached my working VI and a textfile that I use to load into the "User list" tree.
    Rick
    Attachments:
    Text File to Tree V2.2.vi ‏58 KB
    test file save16.txt ‏1 KB

  • Tabs in JList

    Hi all!
    I have just used JList for the first time and have run into problem. I would like to print a name and then have some spaces and in the end print another string representing a date. The problem is that depending on which characters the name contains the indenting of the date string isn't always the same. Example:
    Andreas 25FEB
    iiiiiii 24FEB
    There are equal amout of characters but they have different "size". Anyone have a tip of how to solve this? I have tried to add '\t' between the strings but then it prints a box in between the strings in the list. Do I have to use JTable?
    Thanks in advance!
    regards,
    Andreas

    Yeah, your right. Unfortunatelly then it isn't possible to use the icons I want to use. Somebody knows of how to modify the example to get it to work using icons as well? What I want to show in the list is:
    * A small icon
    * A short text
    * A tab
    * Another short text
    Example:
    ICON MyName'\t'Date
    // Andreas

  • Upload XML output into DMS

    Hello all,
                 I have generated an XML output through Smartforms. Now I need to load this file into DMS . Please let me know how I can achieve this.
    Thanks,
    Kalyan

    check this code and use it...
    REPORT  Z_RMTIWARI_XML_TO_ABAP_46C              .
    Load iXML Lib.
    type-pools: ixml.
    class cl_ixml definition load.
    data: G_IXML type ref to if_ixml.
    data: STREAMFACTORY type ref to if_ixml_stream_factory.
    data: ISTREAM type ref to if_ixml_istream.
    data: DOCUMENT type ref to if_ixml_document.
    data: PARSER type ref to if_ixml_parser.
    data: LV_FILE_URL type rlgrap-filename.
    You should provide the parameter for file name
    LV_FILE_URL = 'C:input_xml.xml'.
    types: begin of XML_LINE,
            DATA(256) type x,
          end of XML_LINE.
    types: begin of TY_HEADER,
             CUST_NAME(20)     type c,
             CARD_NO(20)       type c,
             TAX_AMOUNT(10)    type c,
             TOTAL_AMOUNT(10)  type c,
           end of TY_HEADER.
    types: begin of TY_ITEM,
             ITEM_NO(4)      type n,
             ITEM_ID(20)     type c,
             ITEM_TITLE(50)  type c,
             ITEM_QTY(10)    type c,
             ITEM_UPRICE(10) type c,
           end of TY_ITEM.
    data: GV_HEADER type TY_HEADER.
    data: GT_ITEM   type standard table of TY_ITEM   with header line.
    data: XML_TABLE      type table of XML_LINE,
          XML_TABLE_SIZE type i.
    The next step is creating the main factory for the iXML library:
    G_IXML = cl_ixml=>create( ).
    Now Create Stream Factory
    STREAMFACTORY = G_IXML->create_stream_factory( ).
    upload a file from the client's workstation
    call function 'WS_UPLOAD'
         exporting
              filename   = LV_FILE_URL
              filetype   = 'BIN'
         importing
              filelength = XML_TABLE_SIZE
         tables
              data_tab   = XML_TABLE
         exceptions
              others     = 11.
    wrap the table containing the file into a stream
    ISTREAM = STREAMFACTORY->create_istream_itable( table = XML_TABLE
                                                    size  = XML_TABLE_SIZE )
    Get the file data as Stream
    *istream = streamfactory->create_istream_uri( public_id = lv_file_url
                                                system_id = lv_file_url ).
    Create XML Document instance
    DOCUMENT = G_IXML->create_document( ).
    Create parser Object
    PARSER = G_IXML->create_parser( stream_factory = STREAMFACTORY
                                    ISTREAM = istream
                                    DOCUMENT = document ).
    Parse an XML document into a DOM tree
    *parser->parse( ).
    Parsing Error Processing
    if PARSER->parse( ) ne 0.
      if PARSER->num_errors( ) ne 0.
        data: PARSEERROR type ref to if_ixml_parse_error,
              STR        type STRING,
              I          type i,
              COUNT      type I,
              INDEX      type i.
        COUNT = PARSER->num_errors( ).
        write: COUNT, ' parse errors have occured:'.
        INDEX = 0.
        while INDEX < COUNT.
          PARSEERROR = PARSER->get_error( INDEX = index ).
          I = PARSEERROR->get_line( ).
          write: 'line: ', i.
          I = PARSEERROR->get_column( ).
          write: 'column: ', i.
          STR = PARSEERROR->get_reason( ).
          write: STR.
          INDEX = index + 1.
        endwhile.
      endif.
    endif.
    Close the stream since it �s not needed anymore
    call method ISTREAM->close( ).
    clear ISTREAM.
    Now try to make it look good
    data : lv_size     type sytabix,
            lv_ret_code type sysubrc.
    data: lo_xml_document type ref to cl_xml_document.
    field-symbols: <fs_xml_data> type any table.
    lo_xml_document = document.
    call method lo_xml_document->get_as_table
       importing
         table   = <fs_xml_data>
         size    = lv_size
         retcode = lv_ret_code
    *data: items type ref to if_ixml_node_collection.
    *items = document->get_elements_by_tag_name( name = 'Item' ).
    *data: iterator type ref to if_ixml_node_iterator,
         node     type ref to if_ixml_node.
    *iterator = document->create_iterator( ).
    *node = iterator->get_next( ).
    *while not node is initial.
    do something with the node
    node = iterator->get_next( ).
    *endwhile.
    DATA : GV_NODE type ref to if_ixml_node.
    DATA : GV_NODETEXT type STRING.
    data:  GV_FIRST_TIME.
    GV_FIRST_TIME = 'X'.
    GV_NODE = DOCUMENT.
    GT_ITEM-item_no = 1.
    perform GET_DATA tables     GT_ITEM
                     using      GV_NODE
                     changing   GV_HEADER.
    Last item is still not added.
      append GT_ITEM.
    write  : GV_HEADER-cust_name,
             GV_HEADER-card_no,
             GV_HEADER-tax_amount,
             GV_HEADER-total_amount.
    loop at GT_ITEM.
      write  /:.
      write  : GT_ITEM-item_no,
               GT_ITEM-item_id,
               GT_ITEM-item_title,
               GT_ITEM-item_qty,
               GT_ITEM-item_uprice.
    endloop.
          FORM Get_data                                                 *
    form get_data tables   YT_ITEM    structure GT_ITEM
                  using value(x_node) type ref to if_ixml_node
                  changing Y_HEADER   type TY_HEADER.
      data: INDENT      type i.
      data: PTEXT       type ref to if_ixml_text.
      data: STRING      type string.
      data: TEMP_STRING(100).
      case X_NODE->get_type( ).
        when if_ixml_node=>co_node_element.
          STRING = X_NODE->get_name( ).
          GV_NODETEXT = STRING.
        when if_ixml_node=>co_node_text.
          PTEXT ?= X_NODE->query_interface( IXML_IID_TEXT ).
          if PTEXT->ws_only( ) is initial.
            STRING = X_NODE->get_value( ).
            case GV_NODETEXT.
              when 'Customer'.
                clear GV_HEADER.
              when 'Name'.
                move STRING to GV_HEADER-cust_name.
              when 'Cardnum'.
                move STRING to GV_HEADER-card_no.
              when 'Tax'.
                move STRING to GV_HEADER-tax_amount.
              when 'Total'.
                move STRING to GV_HEADER-total_amount.
            Iteam details
              when 'ID'.
                move STRING to GT_ITEM-item_id.
              when 'Title'.
                move STRING to TEMP_STRING.
                move TEMP_STRING to GT_ITEM-item_title.
              when 'Quantity'.
                move STRING to GT_ITEM-item_qty.
              when 'UnitPrice'.
                move STRING to GT_ITEM-item_uprice.
            endcase.
          endif.
      endcase.
      if GV_NODETEXT = 'Customer'.
        clear GV_HEADER.
      elseif GV_NODETEXT = 'Item'.
        if GV_FIRST_TIME ne 'X'.
           append GT_ITEM.
         clear : gt_item.
           GT_ITEM-item_no = gt_item-item_no + 1.
        endif.
        GV_FIRST_TIME = ' '.
      endif.
    Get the next child
      X_NODE = x_node->get_first_child( ).
    Recurse
      while not X_NODE is initial.
        perform GET_DATA tables     GT_ITEM
                         using      X_NODE
                         changing   GV_HEADER.
        X_NODE = x_node->get_next( ).
      endwhile.
    endform.

  • Variable indent based on xml data using xsl-fo start-indent

    I am trying to make a report of a peoplesoft tree which includes xml data to indicate the level of the tree.
    I have a template which sort-of works but has some strange behavior. First I set a variable to the value of the treelevel, and multiply by ten to set the value for the indent that I want. I then apply that value for the indent to the start-indent attribute
    <?xdoxslt:set_variable($_XDOCTX, 'x', (fld_TREE_LEVEL_NUM)*10)?>
    <xsl:attribute name="start-indent" xdofo:ctx="table-cell"><?xdoxslt:get_variable($_XDOCTX, 'x')?></xsl:attribute>
    These tags are put in a table row which repeats within a for-each group along with the data to get indented.
    The problem is that the indenting seems to work but not consistently and some rows which clearly have different indent levels are printing as if they are at the same level.
    Any ideas would be appreciated.

    Hi! Use xsl:variable:
    <xsl:variable name="var"><?fld_TREE_LEVEL_NUM*10?></xsl:variable>
    <xsl:attribute name="start-indent" xdofo:ctx="table-cell"><xsl:value-of select="$var" /></xsl:attribute>

  • Smartview indentation no longer working with upgrade

    We are currently running HFM and Smartview with Office 2010. We have updated Smartview from version 11.1.2.1.x Build 271 to 11.1.2.2.310 Build 247. The Zoom In function is no longer working properly.
    In the prior version:
    1. Zoom In = Next Level
    2. Member name Display = Member name and Description
    3. Indention = Subitems
    4. Ancestor Position = Top
    The new version has the same settings however since updating to the new version the indentation no longer happens. 
    Is anyone else experiencing this issue?  Is there a workaround?

    Hi,
    Below is the copy paste of the content from Oracle doc.
    Applies to:
    Hyperion Planning - Version 11.1.2.1.600 and later
    Information in this document applies to any platform.
    Symptoms
    Unable to use smartview column suppression features with an Essbase connection.
    - Start up excel and then go to the smartview menu -> Options -> Data Options -> Suppress Columns section is active
    - Establish an Essbase Shared Connection
    - Go into adhoc mode or just double click on a database to bring up the metadata.
    - Now go to smartview menu -> Options -> Data Options -> Suppress Columns section is grayed out.
    The above feature works fine with a Planning connection.
    Is this an Essbase connection limitation?
    Cause
    Installed the Smartview 11.1.2.1.103 (Build 100)
    Solution
    The following was mentioned in the 11.1.2.2.310 version of the Smart View User's Guide. The description for Suppress Columns was updated as follows:
    To streamline the grid, you can suppress columns that contain types of data that you do not need to view.
    Notes:
    -- In suppressed columns, cell references to Excel formulas are not updated.
    -- The Suppress Columns options are not available when connected to an Essbase data source.
    So from the above, it is not a supported feature when using an Essbase connection.

  • Unable to install SQL Server Express 2008 R2 - Errors "Failed to retrieve data for this request"

    As domain admin I am attempting to install "SQL Server 2008 R2 with SP2" but it keeps failing with "Failed to retrieve data for this request".
    The installation never actually starts, it errors before then.
    It displays the same error even if I run the System Configuration Checker.
    The summary.txt for the install displays the following text:
    Overall summary:
      Final result:                  Failed: see details below
      Exit code (Decimal):           -1554760125
      Exit facility code:            852
      Exit error code:               15939
      Exit message:                  Failed to retrieve data for this request.
      Start time:                    2014-08-15 16:49:52
      End time:                      2014-08-15 16:50:06
      Requested action:              RunRules
    Machine Properties:
      Machine name:                  servername
      Machine processor count:       8
      OS version:                    Windows Server 2008 R2
      OS service pack:               Service Pack 1
      OS region:                     United States
      OS language:                   English (United States)
      OS architecture:               x64
      Process architecture:          64 Bit
      OS clustered:                  Yes
    Product features discovered:
      Product              Instance             Instance ID                   
    Feature                                  Language            
    Edition              Version         Clustered
    Package properties:
      Description:                   SQL Server Database Services 2008 R2
      ProductName:                   SQL Server 2008 R2
      Type:                          RTM
      Version:                       10
      SPLevel:                       1
      Installation location:         c:\84122ef5b6d9cdcd3b2ac48cec\x64\setup\
      Installation edition:          EXPRESS
    User Input Settings:
      ACTION:                        RunRules
      CONFIGURATIONFILE:             
      ENU:                           True
      FARMACCOUNT:                   <empty>
      FARMADMINPORT:                 0
      FARMPASSWORD:                  *****
      FEATURES:                      
      HELP:                          False
      INDICATEPROGRESS:              False
      INSTANCENAME:                  <empty>
      PASSPHRASE:                    *****
      QUIET:                         False
      QUIETSIMPLE:                   False
      RULES:                         GLOBALRULES,SqlUnsupportedProductBlocker,PerfMonCounterNotCorruptedCheck,Bids2008InstalledCheck,BlockInstallSxS,AclPermissionsFacet,FacetDomainControllerCheck,SSMS_IsInternetConnected,FacetWOW64PlatformCheck,FacetPowerShellCheck
      UIMODE:                        AutoAdvance
      X86:                           False
      Configuration file:            C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20140815_164944\ConfigurationFile.ini
    Detailed results:
    Rules with failures:
    Global rules:
    There are no scenario-specific rules.
    Rules report file:               The rule result report file is not available.
    Exception summary:
    The following is an exception stack listing the exceptions in outermost to innermost order
    Inner exceptions are being indented
    Exception type: Microsoft.SqlServer.Management.Sdk.Sfc.EnumeratorException
        Message:
            Failed to retrieve data for this request.
        Data:
          HelpLink.ProdName = Microsoft SQL Server
          HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
          HelpLink.LinkId = 20476
          DisableWatson = true
        Stack:
            at Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.Process(Object connectionInfo, Request request)
            at Microsoft.SqlServer.Chainer.Infrastructure.SqlDiscoveryDatastoreInterface.ProcessDTbl(DataTable dt, Int32 level)
            at Microsoft.SqlServer.Chainer.Infrastructure.SqlDiscoveryDatastoreInterface.CollectSqlDiscoveryData(String machineName)
            at Microsoft.SqlServer.Chainer.Infrastructure.SqlDiscoveryDatastoreInterface.LoadData(IEnumerable`1 machineNames, String discoveryDocRootPath, String clusterDiscoveryDocRootPath)
            at Microsoft.SqlServer.Configuration.SetupExtension.RunDiscoveryAction.ExecuteAction(String actionId)
            at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
            at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
        Inner exception type: Microsoft.SqlServer.Configuration.Sco.SqlRegistryException
            Message:
                    The network path was not found.
            Data:
              WatsonData = [email protected]rror
            Stack:
                    at Microsoft.SqlServer.Configuration.Sco.SqlRegistry.CreateBaseKey(ServiceContainer ctx, String machineName, IntPtr hKey, String keyName, RegistryAccess access, RegistryView
    view)
                    at Microsoft.SqlServer.Configuration.Sco.SqlRegistry.GetLocalMachine(ServiceContainer ctx, String machineName, RegistryAccess access, RegistryView view)
                    at Microsoft.SqlServer.Discovery.DiscoveryEnumObject.GetSql2kMsiInstanceListInHive(String machineName, RegistryView regView)
                    at Microsoft.SqlServer.Discovery.DiscoveryEnumObject.LoadSql2kInstanceList(String machineName)
                    at Microsoft.SqlServer.Discovery.Product.GetData(EnumResult erParent)
                    at Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetData()
                    at Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.GetData(Object connectionInfo, Request request)
                    at Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.Process(Object connectionInfo, Request request)

        Inner exception type: Microsoft.SqlServer.Configuration.Sco.SqlRegistryException
            Message:
                    The network path was not found.
            Data:
              WatsonData = [email protected]rror
    Above message says that your registry is not consistent and some of the parameters are missing from registry.Or
    Account installing SQL server does not have permission to access this. I think case can be here that account with which you logged into your system to install SQL Server might not have certain privileges. Can you take help
    of domain admin account add it as a local administrator in this machine always right click on setup file and select run as administrator. Before this make sure you  remove all SQL Server components from add remove program
    I strongly recommend you to have a good look at below thread
    http://support.microsoft.com/kb/2000257/en-us
    Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it.
    My TechNet Wiki Articles

  • Lost index indentation

    I converted WinHelp to HTMLHelp in RH8.  I lost all of the indentation of my index.  Is there an automated way to fix?

    >
    6) i now want to drop the tablespace but it still says
    alter tablespace tablespace_name offline
    ERROR at line 1:
    ORA-01191: file 15 is already offline - cannot do a normal offline
    ORA-01110: data file 15: '*_INDEX.DBF'
    Although the tablespace is already offilne and i only have one datafile.
    After deleating the tablespace i will create another tablespace by same name and run an import on that for indexes.
    Later i can rebuild indexes.
    >
    As your tablespace is having only one datafile, that also the datafile is offline already , so you are getting the error.If the datafile would have be online you wouldn't have got the error.
    Secondly, as you wrote that you want to delete the tablespace, create new one and run the import, so do
    1. drop tablespace tablespace_name including contents and datafiles; -- this will drop the index tablespace
    2. create tablespace tablespace_name_same datafile 'loaction/datafile/name' size xxxM extent management local
    segment space management auto;
    3. Import the data
    HTH
    Anand

Maybe you are looking for

  • Is it Ok to put many classes in one file ?

    Hi all, This is another beginner question. I was wondering, is it good practice to put many classes in one single file? Sometimes I notice there are many classes inside one big file and sometimes each class is in its own separate file. Is there an ad

  • ITunes store won't load. The progress bar freezes at about 50% and I get nothing but a white screen.

    I'm running iTunes 10.5 beta 7 but this issue has been happening since I was running 9.  One day I clicked on a link for an app I saw on techcrunch and it pulled up in iTunes as being in the UK store.  I clicked ok and my iTunes hasn't worked since. 

  • Hard drive crashed. Can I use my ipod to transfer music back to my computer

    I have a 160gb ipod. My hard drive just crashed. I am trying to retrieve the data but if I am unsuccessful, is there any way that I can transfer music back from my ipod to the computer? Please help!!

  • External catalog link not working in SRM 7

    Hi all, We are on SRM 7.1. ECS. We are using external catalogs in shopping cart application.However one of the vendors catalog links is not wokrin when we select items from catalog...when the items are added from catalog,the items dont get added to S

  • Maximum number of recipients per message

    Hi, i am trying to send a mail with about 500 recipients from Outlook connected with Outlook Anywhere to the Exchange 2013 Server. For each user i get an error saying mail could not be send - Error: [0x80004005-00000000-00000000]. If i send mails onl