Thema: Abap Xml
Einzelnen Beitrag anzeigen
Alt 15.07.2005, 12:00   #6
Sportfreund
Jr. Member
 
Registriert seit: 07.11.2004
Beiträge: 66


Standard

ja habs jetzt auch nochmal durchgeackert und es versucht auch so zu machen, nur bei mir schmeißts mich irgendwo beim speichern meiner internen tabelle. anbei mein code, vielleicht kannst ihn dir mal durchsehen ob du beim ws_download nen fehler findest... --> Danke schonmal!

*&---------------------------------------------------------------------*
*& Report Z_XML_CREATE *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT z_xml_create .

TYPE-POOLS truxs.

DATA: it_table LIKE npat OCCURS 0.

DATA: l_dom TYPE REF TO if_ixml_element,
m_document TYPE REF TO if_ixml_document,
g_ixml TYPE REF TO if_ixml,
m_xmldoc TYPE REF TO cl_xml_document,
w_string TYPE xstring,
w_size TYPE i,
w_result TYPE i,
w_line TYPE string,
it_xml TYPE dcxmllines,
s_xml LIKE LINE OF it_xml,
w_rc LIKE sy-subrc,
l_iref_pstreamfactory TYPE REF TO if_ixml_stream_factory,
l_iref_postream TYPE REF TO if_ixml_ostream,
it_converted_data TYPE truxs_xml_table,
it_converted_line LIKE LINE OF it_converted_data,
* w_result TYPE I,
* w_rc like sy-subrc,
s_node TYPE string.



START-OF-SELECTION.
SELECT * FROM npat INTO TABLE it_table
UP TO 10 ROWS.

END-OF-SELECTION.
********************************************
**** initialize iXML-Framework ****
********************************************
WRITE / 'initialiazing iXML:'.
CLASS cl_ixml DEFINITION LOAD.
g_ixml = cl_ixml=>create( ).
CHECK NOT g_ixml IS INITIAL.
WRITE: 'ok'.

********************************************
**** create DOM from SAP data ****
********************************************
WRITE / 'creating iXML doc:'.
m_document = g_ixml->create_document( ).
CHECK NOT m_document IS INITIAL.
WRITE: 'ok'.

WRITE / 'converting DATA TO DOM 1:'.
CALL FUNCTION 'SDIXML_DATA_TO_DOM'
EXPORTING
name = 'IT_TABLE'
dataobject = it_table
IMPORTING
data_as_dom = l_dom
CHANGING
document = m_document
EXCEPTIONS
illegal_name = 1
OTHERS = 2.
IF sy-subrc = 0.
WRITE 'ok'.
ELSE.
WRITE: 'Err =', sy-subrc.
ENDIF.
CHECK NOT l_dom IS INITIAL.

WRITE / 'appending DOM to iXML doc:'.
w_rc = m_document->append_child( new_child = l_dom ).
IF w_rc IS INITIAL.
WRITE 'ok'.
ELSE.
WRITE: 'Err =', w_rc.
ENDIF.

********************************************
**** visualize iXML (DOM) ****
********************************************
WRITE / 'displaying DOM:'.
CALL FUNCTION 'SDIXML_DOM_TO_SCREEN'
EXPORTING
document = m_document
EXCEPTIONS
no_document = 1
OTHERS = 2.
IF sy-subrc = 0.
WRITE 'ok'.
ELSE.
WRITE: 'Err =', sy-subrc.
ENDIF.


********************************************
**** create xml-file ****
********************************************
CALL FUNCTION 'SDIXML_DOM_TO_XML'
EXPORTING
document = m_document
IMPORTING
xml_as_string = w_string
size = w_size
TABLES
xml_as_table = it_xml
EXCEPTIONS
no_document = 1
OTHERS = 2.
IF sy-subrc = 0.
WRITE 'Ok'.
ELSE.
WRITE: 'Err =',
sy-subrc.
ENDIF.


********************************************
**** ws_download into out.xml ****
********************************************
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
bin_filesize = w_size
filename = 'C:\out.xml'
filetype = 'BIN'
TABLES
data_tab = it_xml
EXCEPTIONS
OTHERS = 10.
IF sy-subrc <> 0.
WRITE: / 'Error occurred'.
ELSE.
WRITE: / 'XML FILE WRITTEN'.
ENDIF.
Sportfreund ist offline   Mit Zitat antworten