<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: simple transformation program debugging in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/simple-transformation-program-debugging/m-p/3867316#M929428</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;    check the below link............. u can find a link to debugg the simple transformation file.......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.sdn.sap.com/irj/sdn/advancedsearch?query=how" target="test_blank"&gt;https://www.sdn.sap.com/irj/sdn/advancedsearch?query=how&lt;/A&gt;&lt;EM&gt;to&lt;/EM&gt;debug&lt;EM&gt;a&lt;/EM&gt;program&amp;amp;cat=sdn_all&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 16 May 2008 11:43:14 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-05-16T11:43:14Z</dc:date>
    <item>
      <title>simple transformation program debugging</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/simple-transformation-program-debugging/m-p/3867314#M929426</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi ,&lt;/P&gt;&lt;P&gt;   can any boby guide me how can we debug a simple transformation program which is used for xml to abap conversion .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 05:35:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/simple-transformation-program-debugging/m-p/3867314#M929426</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-15T05:35:59Z</dc:date>
    </item>
    <item>
      <title>Re: simple transformation program debugging</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/simple-transformation-program-debugging/m-p/3867315#M929427</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;have a look on this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT  YMS_XMLTOSAP.

TYPE-POOLS: IXML.

TYPES: BEGIN OF T_XML_LINE,
        DATA(256) TYPE X,
      END OF T_XML_LINE.

DATA: L_IXML            TYPE REF TO IF_IXML,
      L_STREAMFACTORY   TYPE REF TO IF_IXML_STREAM_FACTORY,
      L_PARSER          TYPE REF TO IF_IXML_PARSER,
      L_ISTREAM         TYPE REF TO IF_IXML_ISTREAM,
      L_DOCUMENT        TYPE REF TO IF_IXML_DOCUMENT,
      L_NODE            TYPE REF TO IF_IXML_NODE,
      L_XMLDATA         TYPE STRING.

DATA: L_ELEM            TYPE REF TO IF_IXML_ELEMENT,
      L_ROOT_NODE       TYPE REF TO IF_IXML_NODE,
      L_NEXT_NODE       TYPE REF TO IF_IXML_NODE,
      L_NAME            TYPE STRING,
      L_ITERATOR        TYPE REF TO IF_IXML_NODE_ITERATOR.

DATA: L_XML_TABLE       TYPE TABLE OF T_XML_LINE,
      L_XML_LINE        TYPE T_XML_LINE,
      L_XML_TABLE_SIZE  TYPE I.
DATA: L_FILENAME        TYPE STRING.


PARAMETERS: PA_FILE TYPE CHAR1024 DEFAULT 'c:\temp\orders_dtd.xml'.
* Validation of XML file: Only DTD included in xml document is supported
PARAMETERS: PA_VAL  TYPE CHAR1 AS CHECKBOX.

START-OF-SELECTION.

*   Creating the main iXML factory
  L_IXML = CL_IXML=&amp;gt;CREATE( ).

*   Creating a stream factory
  L_STREAMFACTORY = L_IXML-&amp;gt;CREATE_STREAM_FACTORY( ).

  PERFORM GET_XML_TABLE CHANGING L_XML_TABLE_SIZE L_XML_TABLE.


*   wrap the table containing the file into a stream
  L_ISTREAM = L_STREAMFACTORY-&amp;gt;CREATE_ISTREAM_ITABLE( TABLE = L_XML_TABLE
                                                  SIZE  = L_XML_TABLE_SIZE ).

*   Creating a document
  L_DOCUMENT = L_IXML-&amp;gt;CREATE_DOCUMENT( ).

*   Create a Parser
  L_PARSER = L_IXML-&amp;gt;CREATE_PARSER( STREAM_FACTORY = L_STREAMFACTORY
                                    ISTREAM        = L_ISTREAM
                                    DOCUMENT       = L_DOCUMENT ).

*   Validate a document
  IF PA_VAL EQ 'X'.
    L_PARSER-&amp;gt;SET_VALIDATING( MODE = IF_IXML_PARSER=&amp;gt;CO_VALIDATE ).
  ENDIF.

*   Parse the stream
  IF L_PARSER-&amp;gt;PARSE( ) NE 0.
    IF L_PARSER-&amp;gt;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 = L_PARSER-&amp;gt;NUM_ERRORS( ).
      WRITE: COUNT, ' parse errors have occured:'.
      INDEX = 0.
      WHILE INDEX &amp;lt; COUNT.
        PARSEERROR = L_PARSER-&amp;gt;GET_ERROR( INDEX = INDEX ).
        I = PARSEERROR-&amp;gt;GET_LINE( ).
        WRITE: 'line: ', I.
        I = PARSEERROR-&amp;gt;GET_COLUMN( ).
        WRITE: 'column: ', I.
        STR = PARSEERROR-&amp;gt;GET_REASON( ).
        WRITE: STR.
        INDEX = INDEX + 1.
      ENDWHILE.
    ENDIF.
  ENDIF.

*   Process the document
  IF L_PARSER-&amp;gt;IS_DOM_GENERATING( ) EQ 'X'.
    PERFORM PROCESS_DOM USING L_DOCUMENT.
  ENDIF.


*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  get_xml_table
*&amp;amp;--------------------------------------------------------------------*
FORM GET_XML_TABLE CHANGING L_XML_TABLE_SIZE TYPE I
                            L_XML_TABLE      TYPE STANDARD TABLE.

*   Local variable declaration
  DATA: L_LEN      TYPE I,
        L_LEN2     TYPE I,
        L_TAB      TYPE TSFIXML,
        L_CONTENT  TYPE STRING,
        L_STR1     TYPE STRING,
        C_CONV     TYPE REF TO CL_ABAP_CONV_IN_CE,
        L_ITAB     TYPE TABLE OF STRING.


  L_FILENAME = PA_FILE.
*   upload a file from the client's workstation
  CALL METHOD CL_GUI_FRONTEND_SERVICES=&amp;gt;GUI_UPLOAD
    EXPORTING
      FILENAME   = L_FILENAME
      FILETYPE   = 'BIN'
    IMPORTING
      FILELENGTH = L_XML_TABLE_SIZE
    CHANGING
      DATA_TAB   = L_XML_TABLE
    EXCEPTIONS
      OTHERS     = 19.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

*   Writing the XML document to the screen
  CLEAR L_STR1.
  LOOP AT L_XML_TABLE INTO L_XML_LINE.
    C_CONV = CL_ABAP_CONV_IN_CE=&amp;gt;CREATE( INPUT = L_XML_LINE-DATA REPLACEMENT = SPACE  ).
    C_CONV-&amp;gt;READ( IMPORTING DATA = L_CONTENT LEN = L_LEN ).
    CONCATENATE L_STR1 L_CONTENT INTO L_STR1.
  ENDLOOP.
  L_STR1 = L_STR1+0(L_XML_TABLE_SIZE).
  SPLIT L_STR1 AT CL_ABAP_CHAR_UTILITIES=&amp;gt;CR_LF INTO TABLE L_ITAB.
  WRITE: /.
  WRITE: /' XML File'.
  WRITE: /.
  LOOP AT L_ITAB INTO L_STR1.
    REPLACE ALL OCCURRENCES OF CL_ABAP_CHAR_UTILITIES=&amp;gt;HORIZONTAL_TAB IN
      L_STR1 WITH SPACE.
    WRITE: / L_STR1.
  ENDLOOP.
  WRITE: /.
ENDFORM.                    "get_xml_table

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  process_dom
*&amp;amp;--------------------------------------------------------------------*
FORM PROCESS_DOM USING DOCUMENT TYPE REF TO IF_IXML_DOCUMENT.

  DATA: NODE      TYPE REF TO IF_IXML_NODE,
        ITERATOR  TYPE REF TO IF_IXML_NODE_ITERATOR,
        NODEMAP   TYPE REF TO IF_IXML_NAMED_NODE_MAP,
        ATTR      TYPE REF TO IF_IXML_NODE,
        NAME      TYPE STRING,
        PREFIX    TYPE STRING,
        VALUE     TYPE STRING,
        INDENT    TYPE I,
        COUNT     TYPE I,
        INDEX     TYPE I.


  NODE ?= DOCUMENT.

  CHECK NOT NODE IS INITIAL.

  ULINE.
  WRITE: /.
  WRITE: /' DOM-TREE'.
  WRITE: /.
  IF NODE IS INITIAL. EXIT. ENDIF.
*   create a node iterator
  ITERATOR  = NODE-&amp;gt;CREATE_ITERATOR( ).
*   get current node
  NODE = ITERATOR-&amp;gt;GET_NEXT( ).

*   loop over all nodes
  WHILE NOT NODE IS INITIAL.
    INDENT = NODE-&amp;gt;GET_HEIGHT( ) * 2.
    INDENT = INDENT + 20.

    CASE NODE-&amp;gt;GET_TYPE( ).
      WHEN IF_IXML_NODE=&amp;gt;CO_NODE_ELEMENT.
*         element node
        NAME    = NODE-&amp;gt;GET_NAME( ).
        NODEMAP = NODE-&amp;gt;GET_ATTRIBUTES( ).
        WRITE: / 'ELEMENT  :'.
        WRITE: AT INDENT NAME COLOR COL_POSITIVE INVERSE.
        IF NOT NODEMAP IS INITIAL.
*           attributes
          COUNT = NODEMAP-&amp;gt;GET_LENGTH( ).
          DO COUNT TIMES.
            INDEX  = SY-INDEX - 1.
            ATTR   = NODEMAP-&amp;gt;GET_ITEM( INDEX ).
            NAME   = ATTR-&amp;gt;GET_NAME( ).
            PREFIX = ATTR-&amp;gt;GET_NAMESPACE_PREFIX( ).
            VALUE  = ATTR-&amp;gt;GET_VALUE( ).
            WRITE: / 'ATTRIBUTE:'.
            WRITE: AT INDENT NAME  COLOR COL_HEADING INVERSE, '=',
                             VALUE COLOR COL_TOTAL   INVERSE.
          ENDDO.
        ENDIF.
      WHEN IF_IXML_NODE=&amp;gt;CO_NODE_TEXT OR
           IF_IXML_NODE=&amp;gt;CO_NODE_CDATA_SECTION.
*         text node
        VALUE  = NODE-&amp;gt;GET_VALUE( ).
        WRITE: / 'VALUE     :'.
        WRITE: AT INDENT VALUE COLOR COL_GROUP INVERSE.
    ENDCASE.
*     advance to next node
    NODE = ITERATOR-&amp;gt;GET_NEXT( ).
  ENDWHILE.
ENDFORM.                    "process_dom&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Sankar M&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 06:10:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/simple-transformation-program-debugging/m-p/3867315#M929427</guid>
      <dc:creator>p291102</dc:creator>
      <dc:date>2008-05-15T06:10:37Z</dc:date>
    </item>
    <item>
      <title>Re: simple transformation program debugging</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/simple-transformation-program-debugging/m-p/3867316#M929428</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;    check the below link............. u can find a link to debugg the simple transformation file.......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.sdn.sap.com/irj/sdn/advancedsearch?query=how" target="test_blank"&gt;https://www.sdn.sap.com/irj/sdn/advancedsearch?query=how&lt;/A&gt;&lt;EM&gt;to&lt;/EM&gt;debug&lt;EM&gt;a&lt;/EM&gt;program&amp;amp;cat=sdn_all&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 May 2008 11:43:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/simple-transformation-program-debugging/m-p/3867316#M929428</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-16T11:43:14Z</dc:date>
    </item>
  </channel>
</rss>

