ABAP Daten in XML

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
2 Beiträge Seite 1 von 1
2 Beiträge Seite 1 von 1

ABAP Daten in XML

Beitrag von JohnLocklay (Specialist / 156 / 24 / 2 ) » 10. Apr 2019 16:12

Hallo Kollegen

Bei meiner Recherche bezüglich der Aufbereitung von Daten aus einer Internen Tabelle/Struktur zu einem XML Dokument habe ich mit den Simple Transformations bis jetzt einige Erfahrungen gemacht.

Mein Ziel ist es Daten in ein XML Format umzuwandeln um
das ganze dann an ein Fremdsystem zu schicken.

Jetzt ist mir die Klasse cl_ixml über den Weg gelaufen. Ich beschäftige mich jetzt schon seit einiger Zeit damit habe aber immer noch nicht rausgefunden ob die Klasse genau hinterher das macht was ich brauche? :-) Hat jemand vielleicht noch andere Ideen wie ich ein XML Dokument aus bestehenden ABAP Informationen aufbauen kann? Die XML Felder sind durch das Fremdsystem vorgegeben und somit auch der Aufbau der XML.

Mit einer Simple Transformation hat das bis jetzt am besten geklappt.

Bin auf euer Feedback gespannt.
Code once - Think twice


Re: ABAP Daten in XML

Beitrag von a-dead-trousers (Top Expert / 3220 / 81 / 800 ) » 10. Apr 2019 18:04

Hi.

Grundsätzlich solltest du bei der XML-Transformation von ABAP-Daten immer(!) das ASXML-Format im Hinterkopf haben. Wenn du direkt ABAP Daten beim Aufruf von CALL TRANSFORMATION übergibst, werden die Daten zuerst in dieses Format umgewandelt bevor die eingentliche Transformation (sei es jetzt ST oder doch XSLT) durchgeführt wird. Wie das genau aufgebaut ist, sollte in der Hilfe ausreichend beschrieben sein. Sobald die Daten in ASXML vorliegen funktioniert alles weitere genauso wie in anderen Sprachen beim Handling von XSLT und Co. Wenn du also den grundsätzlichen Aufbau und die Herangehensweise bei XML kennst, solltest du es auch unter ABAP schaffen. Grundkurse und Hilfestellungen zu XML und XSLT gibt es im Netz ja zu Hauf.

Die von dir gefundene CL_IXML Klasse ist die ABAP-Implementierung des XML-DOM Models und um Lichtjahre besser als das alte CL_DD_DOCUMENT. Hiermit hast du die Möglichkeit ein XML-Dokument zu parsen, rendern und Knoten für Knoten im Hierarchiebaum auszulesen. Herrlich ist, dass die SAP nicht auf Tools wie Iterator und Filter vergessen hat. Wenn man ein Dokument zur Laufzeit erzeugen oder bearbeiten möchten, das Mittel zur Wahl.

In ABAP gibt es übrigens auch die Möglichkeit mittels XPATH Knoten aus einem iXML-Dokument abzufragen, nur ist dieser Weg etwas kryptisch hinter mehreren IMHO irreführenden Methodenaufrufen im XSLT-Prozessor versteckt. Von Java zum Beispiel bin ich da anderes, weil sprechender benannt und intuitiver aufgebaut, gewohnt.

Wenn du konkrete Fragen hast, kannst du dich gerne an mich wenden.

lg ADT

P.S: Persönlich versuche ich ST nicht zu verwenden, weil es sich um eine Spracherweiterung handelt die nur unter SAP/ABAP funktioniert. Ich finde es besser alles im XSLT-Standard umzusetzen, so hat man dann keine Problem in anderen Sprachen/Umgebungen mit Transformationen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Seite 1 von 1

Aktuelle Forenbeiträge

Konstruktoren-Probleme.... gelöst
vor 22 Stunden von AdrianSchm 8 / 327
Workflow über Report starten
vor 22 Stunden von LostDarkness 2 / 73
Liste Angebote/ Aufträge nach ERNAM = sy-uname
Gestern von wreichelt 4 / 123
DOCVARIABLE in Worddokument setzen (OLE?)
Gestern von msfox 2 / 113
BAPI_PO_CREATE1 und Einkaufsinfosatz
Gestern von whaslbeck 2 / 155

Unbeantwortete Forenbeiträge

WCOCO: Gruppe für Betragsfelder 0S01
vor einer Woche von SAP_ENTWICKLER 1 / 95
CAS-Nr.: Chemical Abstracs Service
vor 3 Wochen von SAP_ENTWICKLER 1 / 124
Interaktives Skript, Rolle IC-Manager
vor 4 Wochen von erubadhron86 1 / 170
Wie findet man das Rahmenprogramm eines Infosets?
vor 4 Wochen von DeathAndPain 1 / 171