Saturday, 23 July 2016

UPLOAD XML FILE AND READ DATA THROUGH INTERNAL TABLES .




UPLOAD   DATA FROM XML FILE  AND  READ  THROUGH INTERNAL TABLES .

UPLOAD DATA FROM A XML FILE AND READ THE XML DATA USING INTERNAL TABLES .
HERE THE LOGIC OF DISPLAYING OR SAVING THE DATA TO INTERNAL TABLES MAY BE DIFFERENT ACCORDING TO YOUR CONDITION .

[ TEST WORK DONE BY : SANJEEV SINGH ]

XML- FILE . :

********&--------------------------------------------------------------------
REPORT ZREAD_XML.
*****&---------------------------------------------------------------------*
*****&      Data Declaration
*****&---------------------------------------------------------------------*
DATAfilename   TYPE string.
data: xmldata type xstring .
databegin of xml_tab occurs 0,
           raw 
type x,
        
end   of xml_tab .
datasize type i .
dataresult_xml type standard table of smum_xmltb WITH HEADER LINE.
datareturn type standard table of bapiret2 .
types BEGIN OF ty_st ,
        
id type i,
        name 
TYPE string ,
        place 
type string,
        
END OF ty_st .

 
data itab TYPE TABLE OF ty_st,
        wa 
TYPE ty_st  .

FILENAME 
'D:\TEST.XML'.

call function 'GUI_UPLOAD'
    
exporting
      filename            
filename
      filetype            
'BIN'
      has_field_separator 
' '
      header_length       
0
    
importing
      filelength          
size
    
tables
      data_tab            
xml_tab
    
exceptions
      
others              1.

call function 'SCMS_BINARY_TO_XSTRING'
  
exporting
    input_length       
size
*   FIRST_LINE         = 0
*   LAST_LINE          = 0
 
importing
   
buffer             xmldata
  
tables
    binary_tab         
xml_tab
 
exceptions
   failed             
1
   
others             2
          
.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
CALL FUNCTION 'SMUM_XML_PARSE'
  
EXPORTING
    xml_input       
xmldata
  
TABLES
    xml_table       
result_xml
    
return          return .



loop at result_xml.

IF RESULT_XML-TYPE 'A' .
  
if result_xml-cname 'ID'.
    WA
-id result_xml-cvalue.
     
CONTINUE.
   
ENDIF.
 
ENDIF.
  
IF  RESULT_XML-TYPE 'V'   .
  
IF result_xml-cname 'NAME'.
    WA
-name result_xml-cvalue.
    
CONTINUE.
   
ENDIF.
   
ENDIF.
  
IF RESULT_XML-TYPE 'V' .
  
IF result_xml-cname 'PLACE'.
    WA
-place result_xml-cvalue.

  
endif.
  
ENDIF.
  
IF WA-PLACE IS NOT INITIAL .
  
APPEND WA TO  ITAB .
  
CLEAR WA .
  
ENDIF.
ENDLOOP.

LOOP AT ITAB INTO WA.
  
WRITE :/  WA-ID WA-NAME WA-PLACE.
ENDLOOP.

No comments:

Post a Comment