Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von Julia.hrtm (ForumUser / 18 / 3 / 4 ) »
Hallo,

ich möchte über die REST-Schnittstelle von SAP eine XML-Datei in SAP verarbeiten und die verarbeiteten Daten danach wieder über die Schnittstelle ausgeben.
Für die Verarbeitung der Daten einer einfach aufgebauten XML-Datei funktioniert mein Code. Sobald ich aber mehr als nur einen Eintrag an SAP übergeben möchte geht es nicht.
Also hier mit Code zur Erklärung:

Code: Alles auswählen.

DATA BEGIN OF selection_data.
  DATA: bestellnr TYPE ebeln,
        posting_date TYPE budat,
        doc_date TYPE bldat,
        ref_doc_no TYPE xblnr,
        matnr TYPE matnr,
        lifnr TYPE elifn,
        gm_code TYPE gm_code,
        plant TYPE werks_d,
        lgort TYPE lgort_d,
        move_type TYPE bwart,
        entry_qnt TYPE erfmg,
        position_no TYPE ebelp,
        mvt_ind TYPE kzbew.
  DATA END OF selection_data.
MOVE server->request->get_data( ) TO xml_in.
  CASE server->request->get_method( ).
    WHEN 'GET'.
    WHEN 'POST'.

      CALL TRANSFORMATION z_mm_we_rest_xml
      SOURCE XML xml_in
      RESULT output = selection_data.
Dieser Code funktioniert für eine einfache XML wie hier:

Code: Alles auswählen.

<xml>
	<bestellnr>1234</bestellnr>
	<posting_date>2025-03-24</posting_date>
	<doc_date>2025-03-24</doc_date>
	<ref_doc_no>TEST</ref_doc_no>
	<matnr>12345</matnr>
	<lifnr>1234</lifnr>
	<gm_code>01</gm_code>
	<plant>1234</plant>
	<lgort>1234</lgort>
	<move_type>101</move_type>
	<entry_qnt>1111</entry_qnt>
	<position_no>00010</position_no>
	<mvt_ind>B</mvt_ind>
</xml>
Wenn jetzt aber der Datenblock öfter in der XML-Datei vorkommt, also mehrere Einträge und ich meinen Code so ändere, dass ich die Daten aus der XML in eine Tabelle anstatt einer Struktur speichere, bekomme ich folgende Fehlermeldung:
Screenshot 2025-03-24 110048.png
Der Aufbau meiner Transformationsdatei ist wie folgt:

Code: Alles auswählen.

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
  <xsl:strip-space elements="*"/>
  <xsl:template match="/">
    <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
      <asx:values>
        <OUTPUT>
          <BESTELLNR>
            <xsl:value-of select="*//bestellnr"/>
          </BESTELLNR>
          <POSTING_DATE>
            <xsl:value-of select="*//posting_date"/>
          </POSTING_DATE>
          <DOC_DATE>
            <xsl:value-of select="*//doc_date"/>
          </DOC_DATE>
          <REF_DOC_NO>
            <xsl:value-of select="*//ref_doc_no"/>
          </REF_DOC_NO>
          <MATNR>
            <xsl:value-of select="*//matnr"/>
          </MATNR>
          <LIFNR>
            <xsl:value-of select="*//lifnr"/>
          </LIFNR>
          <GM_CODE>
            <xsl:value-of select="*//gm_code"/>
          </GM_CODE>
          <PLANT>
            <xsl:value-of select="*//plant"/>
          </PLANT>
          <LGORT>
            <xsl:value-of select="*//lgort"/>
          </LGORT>
          <MOVE_TYPE>
            <xsl:value-of select="*//move_type"/>
          </MOVE_TYPE>
          <ENTRY_QNT>
            <xsl:value-of select="*//entry_qnt"/>
          </ENTRY_QNT>
          <POSITION_NO>
            <xsl:value-of select="*//position_no"/>
          </POSITION_NO>
          <MVT_IND>
            <xsl:value-of select="*//mvt_ind"/>
          </MVT_IND>
        </OUTPUT>
      </asx:values>
    </asx:abap>
  </xsl:template>
</xsl:transform>
Kann man aus einer XML-Datei die per REST-Schnittstelle kommt die Einträge Zeilenweise in eine Tabelle einlesen? Wenn ja, wie und was muss ich dafür an meinem Code ändern?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von Radinator (ForumUser / 54 / 11 / 7 ) »
Hi,

ich hätt da noch zwei Fragen zu deinem Problem:
über die REST-Schnittstelle von SAP eine XML-Datei in SAP verarbeiten und die verarbeiteten Daten danach wieder über die Schnittstelle ausgeben.
Soweit ich REST bisher immer verstanden hab, geht es hierbei darum den "Stand" des Endpoints via API Call abzufragen und ihn zu liefern. Das kann entweder anonym (ohne irgendwelche Eingabeparameter passieren also quasi ein SELECT * FROM dbTab) oder für spezifische Kriterien passieren. Also ich kann die REST API aufrufen mit einer Belegnummer und bekomm dann die Daten *zu* dieser Nummer geliefert (Kundenaufträge, Umsatz, ...). Wenn ich jetzt erst ein komplexes Objekt in eine REST API reinschiebe damit mir die REST API das ummodelt und in anderer Form wieder ausgibt ist das (meines Verständnisses nach) kein REST mehr sondern *irgendwas anderes* 😅 Falls ich dich dahingehend missverstanden habe gerne Korrektur.

und
Wenn jetzt aber der Datenblock öfter in der XML-Datei vorkommen [...]
Also wenn du eine ein einziges Datenobjekt (als XML) an die API schickst funktioniert alles aber wenn du eine (im .NET Sprech) Collection von einzelnen Objekten schickst schmiert dir die Anwendung ab. Oder? Oder schickst du innerhalb kurzer Zeit immer wieder einzelne Objekte hin woraurf dir der Endpoint absemmelt?
Wenn ersters der Fall ist wäre das auch recht logisch da der Endpoint (nach dem Code zu urteilen) aktuel nur einzelne Objekte verarbeiten kann und du versucht eine Liste von Objekten mit einer Methode aufzulösen die nur ein einzelnes Objekt kann. Du baust quasi eine Methode mit dem IMPORTing Parameter iv_data type selection_data und "rufst" die Funktion mit it_data type table of selection_data auf

Edit: Ok jetzt hab ich auch so ungefähr den Satz im letzten Absatz halbwegs verstanden. Kannst du eventuell genauer beschreiben wie du den Code geändert hast?
Zuletzt geändert von Radinator am 24.03.2025 15:10, insgesamt 1-mal geändert.

Re: Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von a-dead-trousers (Top Expert / 4434 / 226 / 1193 ) »
Der Fehler liegt in der Transformation bzw. deren Aufruf.
Zum einen muss man eine TABLE OF SELECTION_DATA übergeben um mehrere (ident strukturierte) Einträge auslesen zu können. Zum anderen muss man im XML bzw. XSLT diese mehrfach vorkommenden Datenblöcke auch entsprechend mit einem eigenen TAG umschließen.
Da du nicht angegeben hast, wie die XML-Datei ausschaut, wenn sie "mehrere" Datenblöcke beinhaltet, kann ich dir leider mit der Transformation so nicht weiterhelfen.

Ein kleiner Tipp meinerseits: Wenn du die Transformation testweise einmal genau anders herum aufrufst (also die Strukturierte Tabelle als Source) und das Ergebnis in einen String schreibst (und eventuell als Datei ablegst), kannst du dir den korrekten Aufbau des asAXL-Formats anschauen und für deine eigentliche Transformation als Spickzettel nutzen.
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.18
Basis: 7.50

Re: Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von Julia.hrtm (ForumUser / 18 / 3 / 4 ) »
a-dead-trousers hat geschrieben:
24.03.2025 15:10
Ein kleiner Tipp meinerseits: Wenn du die Transformation testweise einmal genau anders herum aufrufst (also die Strukturierte Tabelle als Source) und das Ergebnis in einen String schreibst (und eventuell als Datei ablegst), kannst du dir den korrekten Aufbau des asAXL-Formats anschauen und für deine eigentliche Transformation als Spickzettel nutzen.
Ich habe das mal gemacht und eine 3 zeilige Tabelle mir in der XML ausgeben lassen. Dann ist die XML wie folgt aufgebaut:

Code: Alles auswählen.

<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
	<asx:values>
		<OUTPUT>
			<item>
				<BESTELLNR>1234</BESTELLNR>
				<POSTING_DATE>2025-03-24</POSTING_DATE>
				<DOC_DATE>2025-03-24</DOC_DATE>
				<REF_DOC_NO>TEST</REF_DOC_NO>
				<MATNR>12345</MATNR>
				<LIFNR>1234</LIFNR>
				<GM_CODE>01</GM_CODE>
				<PLANT>1111</PLANT>
				<LGORT>1111</LGORT>
				<MOVE_TYPE>101</MOVE_TYPE>
				<ENTRY_QNT>1111.0</ENTRY_QNT>
				<POSITION_NO>00010</POSITION_NO>
				<MVT_IND>B</MVT_IND>
			</item>
			<item>
				<BESTELLNR>1234</BESTELLNR>
				<POSTING_DATE>2025-03-24</POSTING_DATE>
				<DOC_DATE>2025-03-24</DOC_DATE>
				<REF_DOC_NO>TEST</REF_DOC_NO>
				<MATNR>12345</MATNR>
				<LIFNR>1234</LIFNR>
				<GM_CODE>01</GM_CODE>
				<PLANT>1111</PLANT>
				<LGORT>1111</LGORT>
				<MOVE_TYPE>101</MOVE_TYPE>
				<ENTRY_QNT>1111.0</ENTRY_QNT>
				<POSITION_NO>00010</POSITION_NO>
				<MVT_IND>B</MVT_IND>
			</item>
			<item>
				<BESTELLNR>1234</BESTELLNR>
				<POSTING_DATE>2025-03-24</POSTING_DATE>
				<DOC_DATE>2025-03-24</DOC_DATE>
				<REF_DOC_NO>TEST</REF_DOC_NO>
				<MATNR>12345</MATNR>
				<LIFNR>1234</LIFNR>
				<GM_CODE>01</GM_CODE>
				<PLANT>1111</PLANT>
				<LGORT>1111</LGORT>
				<MOVE_TYPE>101</MOVE_TYPE>
				<ENTRY_QNT>1111.0</ENTRY_QNT>
				<POSITION_NO>00010</POSITION_NO>
				<MVT_IND>B</MVT_IND>
			</item>
		</OUTPUT>
	</asx:values>
</asx:abap>
Ich habe die Transformationsdatei jetzt mit <ITEM> erweitert. Aber weiß nicht wie ich sie aufbauen muss, damit ich dynamisch die Einträge einlesen kann. So wie es jetzt ist wird der erste Eintrag aus meiner XML eingelesen aber mehr auch nicht.

Hier nochmal die Transformation:

Code: Alles auswählen.

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
  <xsl:strip-space elements="*"/>
  <xsl:template match="/">
    <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
      <asx:values>
        <OUTPUT>
          <ITEM>
            <BESTELLNR>
              <xsl:value-of select="*//bestellnr"/>
            </BESTELLNR>
            <POSTING_DATE>
              <xsl:value-of select="*//posting_date"/>
            </POSTING_DATE>
            <DOC_DATE>
              <xsl:value-of select="*//doc_date"/>
            </DOC_DATE>
            <REF_DOC_NO>
              <xsl:value-of select="*//ref_doc_no"/>
            </REF_DOC_NO>
            <MATNR>
              <xsl:value-of select="*//matnr"/>
            </MATNR>
            <LIFNR>
              <xsl:value-of select="*//lifnr"/>
            </LIFNR>
            <GM_CODE>
              <xsl:value-of select="*//gm_code"/>
            </GM_CODE>
            <PLANT>
              <xsl:value-of select="*//plant"/>
            </PLANT>
            <LGORT>
              <xsl:value-of select="*//lgort"/>
            </LGORT>
            <MOVE_TYPE>
              <xsl:value-of select="*//move_type"/>
            </MOVE_TYPE>
            <ENTRY_QNT>
              <xsl:value-of select="*//entry_qnt"/>
            </ENTRY_QNT>
            <POSITION_NO>
              <xsl:value-of select="*//position_no"/>
            </POSITION_NO>
            <MVT_IND>
              <xsl:value-of select="*//mvt_ind"/>
            </MVT_IND>
          </ITEM>
        </OUTPUT>
      </asx:values>
    </asx:abap>
  </xsl:template>
</xsl:transform>
mein XML was ich an SAP schicke:

Code: Alles auswählen.

<xml>
	<item>
		<bestellnr>1234</bestellnr>
		<posting_date>2025-03-24</posting_date>
		<doc_date>2025-03-24</doc_date>
		<ref_doc_no>TEST1</ref_doc_no>
		<matnr>12345</matnr>
		<lifnr>1234</lifnr>
		<gm_code>01</gm_code>
		<plant>1111</plant>
		<lgort>1111</lgort>
		<move_type>101</move_type>
		<entry_qnt>1111</entry_qnt>
		<position_no>00010</position_no>
		<mvt_ind>B</mvt_ind>
	</item>
	<item>
		<bestellnr>1234</bestellnr>
		<posting_date>2025-03-24</posting_date>
		<doc_date>2025-03-24</doc_date>
		<ref_doc_no>TEST2</ref_doc_no>
		<matnr>12345</matnr>
		<lifnr>1234</lifnr>
		<gm_code>01</gm_code>
		<plant>1111</plant>
		<lgort>1111</lgort>
		<move_type>101</move_type>
		<entry_qnt>1111</entry_qnt>
		<position_no>00010</position_no>
		<mvt_ind>B</mvt_ind>
	</item>
	<item>
		<bestellnr>1234</bestellnr>
		<posting_date>2025-03-24</posting_date>
		<doc_date>2025-03-24</doc_date>
		<ref_doc_no>TEST3</ref_doc_no>
		<matnr>12345</matnr>
		<lifnr>1234</lifnr>
		<gm_code>01</gm_code>
		<plant>1111</plant>
		<lgort>1111</lgort>
		<move_type>101</move_type>
		<entry_qnt>1111</entry_qnt>
		<position_no>00010</position_no>
		<mvt_ind>B</mvt_ind>
	</item>
</xml>
Mein ABAP Code der die XML einließt und ausgibt:

Code: Alles auswählen.

 MOVE server->request->get_data( ) TO xml_in.
  CASE server->request->get_method( ).
    WHEN 'GET'.
    WHEN 'POST'.

      CALL TRANSFORMATION z_mm_we_rest_xml
      SOURCE XML xml_in
      RESULT output = gt_selection_data.

      CALL TRANSFORMATION id
      SOURCE output = gt_selection_data
      RESULT XML xml_out.
      server->response->set_data( xml_out ).
Und meine ausgegebene XML Datei:

Code: Alles auswählen.

<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
	<asx:values>
		<OUTPUT>
			<item>
				<BESTELLNR>1234</BESTELLNR>
				<POSTING_DATE>2025-03-24</POSTING_DATE>
				<DOC_DATE>2025-03-24</DOC_DATE>
				<REF_DOC_NO>TEST1</REF_DOC_NO>
				<MATNR>12345</MATNR>
				<LIFNR>1234</LIFNR>
				<GM_CODE>01</GM_CODE>
				<PLANT>1111</PLANT>
				<LGORT>1111</LGORT>
				<MOVE_TYPE>101</MOVE_TYPE>
				<ENTRY_QNT>1111.0</ENTRY_QNT>
				<POSITION_NO>00010</POSITION_NO>
				<MVT_IND>B</MVT_IND>
			</item>
		</OUTPUT>
	</asx:values>
</asx:abap>
Letztendlich wird mir nur der erste Eintrag zurückgegeben, heißt es wird auch nur der Erste eingelesen. Es muss wahrscheinlich was an der Transformation abgeändert werden aber in diesem Gebiet kenne ich mich nicht so gut aus.

Re: Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von Julia.hrtm (ForumUser / 18 / 3 / 4 ) »
Radinator hat geschrieben:
24.03.2025 15:07

Soweit ich REST bisher immer verstanden hab, geht es hierbei darum den "Stand" des Endpoints via API Call abzufragen und ihn zu liefern. Das kann entweder anonym (ohne irgendwelche Eingabeparameter passieren also quasi ein SELECT * FROM dbTab) oder für spezifische Kriterien passieren. Also ich kann die REST API aufrufen mit einer Belegnummer und bekomm dann die Daten *zu* dieser Nummer geliefert (Kundenaufträge, Umsatz, ...). Wenn ich jetzt erst ein komplexes Objekt in eine REST API reinschiebe damit mir die REST API das ummodelt und in anderer Form wieder ausgibt ist das (meines Verständnisses nach) kein REST mehr sondern *irgendwas anderes* 😅 Falls ich dich dahingehend missverstanden habe gerne Korrektur.
Also letztendlich schicke ich per Curl Aufruf über PowerShell meine XML Datei an SAP. Da sind jetzt eben paar Daten drin die verarbeitet werden sollen. Es gibt mir das nicht in anderer Form aus sondern verarbeitet die Daten. Zum Testen schicke ich mir die Daten die ich rein gebe meistens wieder zurück um zu sehen ob das Einlesen schonmal funktioniert. Für einfache Abfragen wie ich schicke Daten zu einer Bestellnummer und lasse mir zugehörige Daten zurück geben ist das kein Problem. Da ich nur einen Datenblock an SAP übergebe. Da ich aber jetzt mehrere Daten an SAP auf einmal übergeben möchte, da ich diese Daten in meinem Code verbuchen möchte, stoße ich auf das Problem, dass ich mehrere Datenblöcke verarbeiten möchte. Nun könnte ich natürlich die Transformation so erweitern, dass 3 Datenblöcke statt 1 Datenblock erkannt wird, aber dann wäre das ja nicht dynamisch. Da ich im Voraus nicht weiß wie groß die XML ist, soll das eben dynamisch funktionieren und dann eben beim Einlesen in eine Tabelle gespeichert werden.

Hoffe das ist jetzt einigermaßen verständlich erklärt, habe es nicht so mit dem "einfachen" ausdrücken.

Re: Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von a-dead-trousers (Top Expert / 4434 / 226 / 1193 ) »
In deiner XSLT fehlt noch eine Schleifenverarbeitung:

Code: Alles auswählen.

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
  <xsl:strip-space elements="*"/>
  <xsl:template match="/">
    <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
      <asx:values>
        <OUTPUT>
          <xsl:apply-templates select="item"/>
        </OUTPUT>
      </asx:values>
    </asx:abap>
  </xsl:template>
  <xsl:template match="item">
          <ITEM>
            <BESTELLNR>
              <xsl:value-of select="bestellnr"/>
            </BESTELLNR>
            <POSTING_DATE>
              <xsl:value-of select="posting_date"/>
            </POSTING_DATE>
            <DOC_DATE>
              <xsl:value-of select="doc_date"/>
            </DOC_DATE>
            <REF_DOC_NO>
              <xsl:value-of select="ref_doc_no"/>
            </REF_DOC_NO>
            <MATNR>
              <xsl:value-of select="matnr"/>
            </MATNR>
            <LIFNR>
              <xsl:value-of select="lifnr"/>
            </LIFNR>
            <GM_CODE>
              <xsl:value-of select="gm_code"/>
            </GM_CODE>
            <PLANT>
              <xsl:value-of select="plant"/>
            </PLANT>
            <LGORT>
              <xsl:value-of select="lgort"/>
            </LGORT>
            <MOVE_TYPE>
              <xsl:value-of select="move_type"/>
            </MOVE_TYPE>
            <ENTRY_QNT>
              <xsl:value-of select="entry_qnt"/>
            </ENTRY_QNT>
            <POSITION_NO>
              <xsl:value-of select="position_no"/>
            </POSITION_NO>
            <MVT_IND>
              <xsl:value-of select="mvt_ind"/>
            </MVT_IND>
          </ITEM>
  </xsl:template>
</xsl:transform>
<xsl:apply-templates select="item"/> Selektiert ALLE "item" Knoten
<xsl:template match="item"> Ist die Einzelverarbeitung der "item" Knoten

Übrigens musst du nicht dieselben (technischen) Namen im XML wie in deiner internen Tabelle verwenden. Du kannst dein XML auch etwas "sprechender" formulieren. Das ist ja der Vorteil von XSLT, dass man da zwischen zwei verschiedenen Darstellungsformen hin- und herwechseln kann.
Z.B. würde ich statt "item" im XML den Knoten vielleicht "bestellung" oder "order" nennen.
ITEM ist ein Schlüsselwort aus asXML um mehrzeilige Tabellen abbilden zu können.

EDIT: Die Groß-/Kleinschreibung der Knotennamen solltest du noch beachten da XPATH/XSLT case-sensitive ist. (ich hab das aus deinem Beispiel rauskopiert aber nicht alles korrigiert). asXML ignoriert das zwar beim Import aber bei einem allfälligen (späteren) Export hättest du wiederum ein Problem, wenn du das nicht von Anfang an berücksichtigst.
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.18
Basis: 7.50

Re: Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von Julia.hrtm (ForumUser / 18 / 3 / 4 ) »
Also wenn ich den Transformationscode so verändre, dann erhalte ich gar keine Daten. Ich habe es auch über die Transaktion strans angeschaut und dort werden auch keine der Daten angezeigt.

Bekomme nur das hier als Ausgabe:

Code: Alles auswählen.

<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
	<asx:values>
		<OUTPUT/>
	</asx:values>
</asx:abap>

Re: Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von a-dead-trousers (Top Expert / 4434 / 226 / 1193 ) »
Komisch.
Versuch mal <xsl:apply-templates select="./item"/>
Aber das ist nur die "längere" Schreibweise zu "item".

Wenn das nicht klappt ginge auch noch //item bzw. *//item
Aber das ist eigentlich overkill weil man Abfragen auf den Document-Root aus Performancegründen vermeiden sollte. Man sollte immer ausgehend vom aktuellen Kontext "." die Unterknoten suchen.

EDIT: Ist der xml-Knoten wirklich der oberste (Root-) Knoten in deinem XML-Dokument oder ist darüber noch eine Notation, die du in deinem Beispiel weggelassen hast?
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.18
Basis: 7.50

Re: Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von Julia.hrtm (ForumUser / 18 / 3 / 4 ) »
a-dead-trousers hat geschrieben:
25.03.2025 10:03
Wenn das nicht klappt ginge auch noch //item bzw. *//item
Damit klappts. Danke :)

a-dead-trousers hat geschrieben:
25.03.2025 10:03
EDIT: Ist der xml-Knoten wirklich der oberste (Root-) Knoten in deinem XML-Dokument oder ist darüber noch eine Notation, die du in deinem Beispiel weggelassen hast?
Ja der xml-Knoten ist der oberste Knoten.

Re: Import von dynamisch aufgebauter XML-Datei über REST-Schnittstelle

Beitrag von a-dead-trousers (Top Expert / 4434 / 226 / 1193 ) »
Mann, bin ich blöd:

Code: Alles auswählen.

<xsl:apply-templates select="xml/item"/>
Der Document-Root ("/") liegt ja noch über dem ersten Knoten.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Julia.hrtm

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.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

1
Antw.
6775
Views
REST-Schnittstelle mit PUT-methode
von GünterL » 27.11.2023 13:57 • Verfasst in Development Related
3
Antw.
2202
Views
CSV-Datei für Schnittstelle aufarbeiten
von Stephan-KKH » 21.07.2015 10:20 • Verfasst in ABAP® für Anfänger
1
Antw.
4397
Views
Import-Parameter für Select-Options dynamisch vorbelegen
von sflight » 14.01.2014 14:46 • Verfasst in Web-Dynpro, BSP + BHTML
6
Antw.
2872
Views
Import einer CSV-Datei mit Nachkommazahlen
von cgreiner » 05.12.2018 16:53 • Verfasst in ABAP® für Anfänger
10
Antw.
4577
Views
SAP REST API Aufruf Problem / SSL-Zertifikat Überprüfung
von sap_koun » 17.08.2021 18:06 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Anwenderdoku in SAP
vor 4 Stunden von ewx 10 / 124
Schlüssel erstellen ABAP
Gestern von rob_abc 4 / 385
Pushbutton springt nicht ins PAI-Modul
vor 3 Tagen von MiTip gelöst 15 / 580
Wrong Call To SALV Function
vor 4 Tagen von DavidFaude gelöst 8 / 764

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Anwenderdoku in SAP
vor 4 Stunden von ewx 10 / 124
Schlüssel erstellen ABAP
Gestern von rob_abc 4 / 385
Pushbutton springt nicht ins PAI-Modul
vor 3 Tagen von MiTip gelöst 15 / 580
Wrong Call To SALV Function
vor 4 Tagen von DavidFaude gelöst 8 / 764