In einem ersten Schritt musst du mal abklären wie die XML-Datei augebaut werden soll.
Am besten eignet sich dazu eine XSD (XML Schema Definition). Da definiert man welche Felder die XML-Datei beinhalten darf und evtl welche Werte eingetragen werden dürfen.
Um die Daten aus SAP zu exportieren, kannst du dann entweder mit der Klasse CL_IXML die XML-Datei selbst zusammenbauen oder du nutzt eine sog. XSL-Transformation um die Daten mit dem Befehl CALL TRANSFORMATION von der internen (asXML) Darstellung in ein allgemein gültiges XML zu übertragen.
Hilfe dazu findest du vorallem über den Befehl CALL TRANSFORMATION.
Wenn das externe System die Daten in einem bel. XML-Format empfangen kann und dann die Informationen selbst herauspicken kann, reicht es die Default Transformation zu verwenden.
Zum Beispiel kann man so die Tabelle T000 exportieren
Code: Alles auswählen.
DATA:
ld_string TYPE string,
lt_string TYPE stringtab,
lt_t000 TYPE STANDARD TABLE OF t000 WITH DEFAULT KEY.
SELECT *
FROM t000
CLIENT SPECIFIED
INTO TABLE lt_t000.
CALL TRANSFORMATION id
SOURCE data_table = lt_t000
RESULT XML ld_string.
Das Ergebnis schaut dann in etwa so aus
<?xml version="1.0" encoding="iso-8859-1"?>
<asx:abap xmlns:asx="
http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DATA_TABLE>
<T000>
<MANDT>000</MANDT>
<MTEXT>SAP AG</MTEXT>
<ORT01>Walldorf</ORT01>
<MWAER>EUR</MWAER>
<ADRNR/>
<CCCATEGORY>S</CCCATEGORY>
<CCCORACTIV>1</CCCORACTIV>
<CCNOCLIIND/>
<CCCOPYLOCK>X</CCCOPYLOCK>
<CCNOCASCAD/>
<CCSOFTLOCK/>
<CCORIGCONT/>
<CCIMAILDIS/>
<CCTEMPLOCK/>
<CHANGEUSER>DDIC</CHANGEUSER>
<CHANGEDATE>2011-01-18</CHANGEDATE>
<LOGSYS>SAPE01_000</LOGSYS>
</T000>
<T000>
<MANDT>001</MANDT>
<MTEXT>Auslieferungsmandant R11</MTEXT>
...
Hierbei handelt es sich um den Inhalt der internen Tabelle LT_T000 in asXML-Darstellung. Wenn man eine eigene Transformation erstellt und diese mit dem Transformationsbefehl aufruft, werden die übergebenen Daten zuerst in die asXML-Darstellung gebracht. Erst danach wird die eigene Transformation aufgerufen. Das heißt man hat als Grundlage immer ein "wohlgeformtes" XML-Dokument. Man kann auch bel. viele Daten auf einmal über den SOURCE-Zusatz an die Transformation übergeben.
lg ADT