Parameterliste beliebiger Struktur deserialisieren

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

Parameterliste beliebiger Struktur deserialisieren

Beitrag von DeathAndPain (Top Expert / 2003 / 270 / 422 ) »
Hallo zusammen,

SaskuAc hatte hier https://www.abapforum.com/forum/viewtop ... 998#p86992 einen Vorschlag für einen selbstgestrickten Verbucher gemacht. Sowas möchte ich jetzt bauen und bin auch schon ein ganzes Stück fortgeschritten. Das Problem, vor dem ich jetzt stehe, ist, die serialisiert in meiner Verbuchertabelle stehenden Parameterwerte an die Methode zu übergeben, die die Verbuchung ausführen soll.

Dabei ist zu beachten, dass der Verbucher universell sein soll. Soll heißen, aufzurufende Klasse und Methode stehen selbst in der Verbuchungstabelle, woraus folgt, dass die Importparameter, die an die Methode zu übergeben sind, beliebiger Natur und in jedem Fall anders sein können.

black_adept hatte auf http://www.tricktresor.de/blog/serialize-me/ verwiesen, um die Serialisierung vorzunehmen. Nun will ich aber kein ganzes OO-Objekt serialisieren, sondern einfach nur ein Datenfeld beliebiger Struktur (dessen Elemente nämlich die zu übergebenden Parameter sein sollen). Der Witz an der Sache: Die Serialisierung habe ich bereits hingekriegt. Doch bei der Deserialisierung hapert es, und zwar hauptsächlich deshalb, weil es mir nicht gelingt, ein Zielfeld vom TYPE ANY anzulegen, in das ich den String hinein deserialisieren kann. TYPE ANY ist bei DATA eben nicht erlaubt. Normalerweise hätte ich gesagt, dann lege ich halt ein universelles Feld per TYPE REF TO DATA nebst CREATE DATA an, doch auch das geht nicht, da ich beim CREATE DATA dann doch wieder einen konkreten Datentyp benennen muss.

Bis jetzt sieht mein entsprechender Code wie folgt aus:

Code: Alles auswählen.

  METHOD NEW_TASK.
* Legt einen neuen Verbuchungstask an.
*   IMPORTING
*     CLASS_NAME TYPE ZVERBUCHERTASKS-CLASS
*     METHOD_NAME TYPE ZVERBUCHERTASKS-METHOD
*     METHOD_PARAMETERS TYPE ANY

    DATA: PARAMETERS_AS_XML TYPE STRING.

*   Parameterstruktur in seriellen String wandeln (serialisieren)
    CALL TRANSFORMATION ID SOURCE EINZIGES_FELD = METHOD_PARAMETERS
                           RESULT XML PARAMETERS_AS_XML.
Dadurch, dass METHOD_PARAMETERS hier ein Importparameter ist, ist eine Typisierung per TYPE ANY zulässig. Also kann ich damit eine beliebige Parameterstruktur (die auch Tabellen etc. enthalten darf) entgegennehmen und mit obenstehendem Code serialisieren. Bei der Ausführung der Verbuchung würde ich nun gerne den mit o.g. Code serialisierten String wieder deserialisieren und damit die zu rufende Methode befüttern. Der Befehl CALL METHOD ist ja sehr flexibel und erlaubt es durchaus, ihm beliebige Parameter als Tabelle zu übergeben. Aber dazu müsste ich erst obenstehenden Vorgang umkehren und aus dem String PARAMETERS_AS_XML wieder das Datenfeld METHOD_PARAMETERS machen. Dies scheitert aber daran, dass ich seine Struktur nicht kenne und daher kein passendes Feld zur Aufnahme der deserialisierten Werte deklarieren kann. Hätte ich solch ein Feld, dann wäre die Deserialisierung per

Code: Alles auswählen.

      CALL TRANSFORMATION ID SOURCE XML PARAMETERS_AS_XML
                             RESULT EINZIGES_FELD = DESERIALIZED_PARAMETERS.
leicht zu realisieren. Was kann ich tun?

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


Re: Parameterliste beliebiger Struktur deserialisieren

Beitrag von ewx (Top Expert / 4902 / 327 / 646 ) »
Kannst du nicht zusätzlich den Namen des zu verwendenden Typs speichern?
Dann kannst du mit CREATE DATA einfach ein Datenobjekt ganz einfach erzeugen.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
DeathAndPain


Re: Parameterliste beliebiger Struktur deserialisieren

Beitrag von DeathAndPain (Top Expert / 2003 / 270 / 422 ) »
Dann müsste der Typ im DDIC angelegt werden. Das wäre aber zu verschmerzen, insofern danke für den Rat. Jetzt ist aber eh Wochenende; ich bin gespannt, ob es bis Montag noch weitere Ideen gibt. :)

Seite 1 von 1

Vergleichbare Themen

0
Antw.
831
Views
JSON deserialisieren
von DeathAndPain » 13.02.2019 14:10 • Verfasst in ABAP® für Anfänger
2
Antw.
4155
Views
Parameterliste von Methoden auslesen
von Erdbaehr » 18.01.2010 23:19 • Verfasst in ABAP Objects®
1
Antw.
2865
Views
8
Antw.
6528
Views
struktur
von swonny » 19.06.2007 10:34 • Verfasst in ABAP® für Anfänger
3
Antw.
1962
Views
Struktur
von swonny » 04.09.2008 17:16 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Prüfzeugnisse Anlagen finden
vor 2 Stunden von ewx 1 / 10
Zukunft des ABAP Entwicklers
vor 4 Tagen von ralf.wenzel 6 / 357
HR in der Zukunft?
vor 4 Tagen von waltersen 5 / 2535
VS Code statt Eclipse
vor 5 Tagen von rob_abc 3 / 156
Dynamischer Titel in CL_GUI_COLUMN_TREE
vor einer Woche von sapdepp 6 / 256

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

Prüfzeugnisse Anlagen finden
vor 2 Stunden von ewx 1 / 10
Zukunft des ABAP Entwicklers
vor 4 Tagen von ralf.wenzel 6 / 357
HR in der Zukunft?
vor 4 Tagen von waltersen 5 / 2535
VS Code statt Eclipse
vor 5 Tagen von rob_abc 3 / 156
Dynamischer Titel in CL_GUI_COLUMN_TREE
vor einer Woche von sapdepp 6 / 256

Unbeantwortete Forenbeiträge

Prüfzeugnisse Anlagen finden
vor 2 Stunden von ewx 1 / 10
XSLT und Loipro05 Transformation
letzen Monat von Torsten1965 1 / 6149
VOLL Artikel in einem Display Typ 12
November 2025 von ThomasM84 1 / 23828