XSLT SIMPLE Transformation

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

XSLT SIMPLE Transformation

Beitrag von Prego (Specialist / 106 / 22 / 1 ) »
Hallole Community

ich transformiere eine XML Datei mittels SIMPLE TRANSFORMATION.
Dabei wird manchmal die Ausnahmeklasse "cx_st_match_element" ausgelöst und das Programm geht in einen Shortdump. Diese Ausnahmeklasse gibt es allerdings nicht in unserem System. Ich kann sie somit auch nicht abfangen.

Das in dem Fall das XML Fehlerhaft ist, ist mir bekannt. Das Programm läuft allerdings im Hintergrund und darf auf keinen Fall abbrechen.

Was kann ich tun.

Ciao
Jens

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


Re: XSLT SIMPLE Transformation

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hi Jens,

bist du dir sicher, dass es die Klasse nicht gibt, die Exception aber ausgelöst wird?

Siehe hier, könntest du evtl. mit Erweiterbarkeit regeln: http://help.sap.com/saphelp_nw70/helpda ... ontent.htm

Grüße
Christoph

Re: XSLT SIMPLE Transformation

Beitrag von Prego (Specialist / 106 / 22 / 1 ) »
Hi,

vielen Dank erstmal. Die Klasse gibt es definitiv nicht im System. Hab ich grad noch mal überprüft.

Hast Du zu der Erweiterbarkeit ein Beispiel? Wenn ich das bei mir einbaue funktioniert es nach wie vor nicht.

Das XML schaut wie folgt aus:

[code]
<Document>
<Objecttype>MATERIAL</Objecttype>
<Objectkey>MBVR0500070</Objectkey>
<Documenttype>MED</Documenttype>
<Partdocument>001</Partdocument>
<Description>ERSATZTEILLISTE KWE-SCHALT-</Description>
<Username>miplm</Username>
<Filename>MBVR0500070.tif</Filename>
</Document>
[/code]

und hier das Transformationsprogramm:

[code]
<?sap.transform simple?>
<tt:transform
template="temp"
xmlns:tt="http://www.sap.com/transformation-templates"
xmlns:sap="http://www.sap.com/sapxsl"
version="0.1">
<tt:root name="PARA"/>
<tt:template name="temp">
<Document tt:extensible="deep-dynamic">
<Objecttype>
<tt:value ref="PARA.OBJECTTYPE"/>
</Objecttype>
<Objectkey>
<tt:value ref="PARA.OBJECTKEY"/>
</Objectkey>
<Documenttype>
<tt:value ref="PARA.DOCUMENTTYPE"/>
</Documenttype>
<Partdocument>
<tt:value ref="PARA.PARTDOCUMENT"/>
</Partdocument>
<Description>
<tt:value ref="PARA.DESCRIPTION"/>
</Description>
<Username>
<tt:value ref="PARA.USERNAME"/>
</Username>
<Filename>
<tt:value ref="PARA.FILENAME"/>
</Filename>
</Document>
</tt:template>
</tt:transform>
[/code]

Re: XSLT SIMPLE Transformation

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Habe leider grad kein Beispiel zur Hand, das hatte ich bei nem anderen Kunden gemacht. Aber prinzipiell hab ich nix anderes gemacht als du.
Check doch mal das OSS, z.B. Hinweis 1450949 - Simple Transformation Ausnahme CX_ST_MATCH_ELEMENT oder gib noch mal paar Infos, was genau eigentlich beim Shortdump das Problem ist...

Grüße

btw: Was für ein Release hast du?

Re: XSLT SIMPLE Transformation

Beitrag von Prego (Specialist / 106 / 22 / 1 ) »
Hi,

wenn das XML sauber kommt, hab ich kein Problem.
Wir nutzen wir das Programm um Dokumenteninfosätze zu migrieren, Originale anzufügen und unterschiedliche Objekte damit zu verknüpfen.
Sollte jetzt irgendein XML-Tag nicht stimmen, (Schreibfehler, zusätzliches oder fehlendes Tag) geht das Programm auf die Bretter. Und das in den 40000 XML's alles korrekt läuft, möchte natürlich niemand garantieren. Durch den Shortdump hab ich auch kein sauberes Protokoll, was bis dahin alles verarbeitet wurde. Der Abbruch tritt direkt beim Aufruf der Transformation auf.

Im Shortdump steht halt auch nix sinnvolles:

[quote]
Zu diesem Dump gibt es noch keinen erläuternden Text.
Entweder wurde der Text versehentlich gelöscht oder das Release
von Kernel und Datenbank ist unterschiedlich.
Bitte suchen Sie im Hinweissystem nach weiteren Informationen zu diesem Dump.

Was ist passiert?

Was können Sie tun?

Fehleranalyse

Es ist eine Ausnahme aufgetreten, die weiter unten näher erläutert wird.
Bei der Überprüfung, ob diese Ausnahme zur Laufzeit abgefangen wird,
wurde festgestellt, daß die dieser Ausnahme zugeordnete Klasse
'CX_ST_MATCH_ELEMENT' nicht in der Datenbank vorhanden ist.
Entweder wurde die Klasse versehentlich gelöscht oder das Release von
Kernel und Datenbank ist unterschiedlich.
Der Grund für die Ausnahme ist:

------------------------------------------------------------------------
| Beschreibung nicht verfügbar |
------------------------------------------------------------------------
Parameter:
P1..................... "element-start"
P2..................... "r"
P3..................... " "
P4..................... "element-start"
P5..................... "Document"
P6..................... " "
P7..................... " "
P8..................... " "
P9..................... " "
------------------------------------------------------------------------
| |
------------------------------------------------------------------------
Hinweise zur Fehlerbehebung
Systemumgebung


SAP-Release.............. "620"

Applikationsserver....... "emad0001"
Netzwerkadresse.......... "194.194.85.150"
Betriebssystem........... "AIX"
Release.................. "6.1"
Hardwaretyp.............. "00C1601A4C00"
Zeichen-Länge............ 16 Bits
Pointer-Länge............ 64 Bits
Workprozess-Nummer....... 0
Kurzdump-Einstellung..... "full"

Datenbankserver.......... "emad0001"
Datenbanktyp............. "ORACLE"
Datenbankname............ "ED1"
Datenbank-User-Id........ "SAP470"

Terminal................. "saln208"

Zeichensatz.............. "C"

SAP-Kernel............... "640"
hergestellt am........... "Apr 11 2010 20:37:15"
hergestellt auf.......... "AIX 2 5 00029F1AD300"
Datenbankversion......... "OCI_102 "

Patch-Level.............. "325"
Patch-Text " "

Unterstützte Umgebung....
Datenbank ............... "ORACLE 9.2.0.*.*, ORACLE 10.1.0.*.*, ORACLE
10.2.0.*.*"
SAP-Datenbankversion..... "640"
Betriebssystem........... "AIX 2 5, AIX 3 5, AIX 1 6"

[/quote]

Re: XSLT SIMPLE Transformation

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hmmm, blöd...wenn du die Exception nicht abfangen kannst, wirds schwierig.

Vielelleicht kommst du über Bedinungen weiter?
Mit einem Element tt:[d-]cond ohne explizite Bedingungen kann bei der Deserialisierung optionaler Inhalt gekennzeichnet werden. D.h., wenn ein Muster im XML-Eingangsstrom nicht vorhanden ist, wird dessen Auswertung übersprungen, ohne dass es zu einer Ausnahme kommt.
http://help.sap.com/saphelp_nw04/helpda ... ontent.htm

Wobei du natürlich generell das Problem hast, dass du bei fehlenden/falschen Elementen dann ja Probleme bei der Weiterverarbeitung bekommst und die auch abfangen musst.

Re: XSLT SIMPLE Transformation

Beitrag von Prego (Specialist / 106 / 22 / 1 ) »
wie ich gerade vom SAP Support erfahren musste, wird Simple Transformation erst ab Release 6.4 unterstützt. Somit sind die abzufangenden Klassen nicht im System vorhanden und werden auch nicht nachgeliefert.. Das im Falle eines korrekten XML's die Transformation funktioniert, sei reiner Zufall, da in unserem Release anscheinend auch noch nicht alle Befehle zu ST integriert sind.

Hab jetzt das Programm in einen XSLT-Transformation umgeschrieben. Somit funktioniert das ganze wieder.

Danke für Eure Mühen
Ciao
Jens

Re: XSLT SIMPLE Transformation

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hi Jens,

jetzt wo dus sagst: ihr seid auf Kernel 6.40 aber auf Release 6.20...daher die Inkonsistenz...

Naja, wieder was gelernt.

Folgende Benutzer bedankten sich beim Autor casman für den Beitrag:
Prego


Seite 1 von 1

Vergleichbare Themen

1
Antw.
2331
Views
XSLT Transformation CAMT.053.001.02
von Ben2408 » 22.07.2022 10:25 • Verfasst in Financials
1
Antw.
2468
Views
Call Transformation (XSLT)
von Prego » 19.11.2010 14:03 • Verfasst in ABAP® Core
1
Antw.
2040
Views
XSLT (CALL TRANSFORMATION)
von MarkusW » 20.03.2007 14:52 • Verfasst in ABAP Objects®
4
Antw.
2805
Views
Simple Transformation
von generic_user » 15.06.2016 12:40 • Verfasst in ABAP® Core
0
Antw.
1564
Views
simple transformation
von akgermain » 13.12.2012 14:19 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 3 Stunden von Bright4.5 1 / 69
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1716
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8321