Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

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

Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von cecslucas (ForumUser / 17 / 1 / 0 ) »
Hallo zusammen,

ich bin gerade dabei einen alten Report von mir möglichst ins objektorientierte zu überführen. In meinem alten Report lese ich eine JSON Datei ein und lege mir hierfür zunächst einen Type an (die Struktur ist tief und beinhaltet auch Tabellen, unten ist lediglich ein vereinfachtes Beispiel).

Types: begin of ts_complete_table,
wi_nummer TYPE tabelle1-wi_nummer,
wi_text TYPE tabelle1-wi_text,
ab_person TYPE tabelle2-ab_person,
cd_datum TYPE tabelle3-cd_datum,
end of ts_complete_table.

Nachdem die JSON über CALL TRANSFORMATION id SOURCE XML lv_asjson RESULT wi_nummer = lt_complete_table in eine lokale Tabelle vom Typ ts_complete_table geschrieben wurde, möchte ich die lt_complete_table an eine Mapping Methode überführen.

Nur kann ich in meiner Mapping Methode keinen Import-Parameter vom Typ meiner ts_complete_table anlegen? Wie kann ich hier Abhilfe schaffen? Muss ich tatsächlich alles in ein Dictionary Objekt überführen, sprich Tabelle mit Strukturen anlegen oder gibt es hier einen Trick, dies zu umgehen?

Vielen Dank und beste Grüße!

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


Re: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Du kannst auch den Typen in einem Interface ablegen, und dann mit zif_types=>type darauf zugreifen.
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Re: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Du musst den Typ im PUBLIC Bereich anlegen. Dann sollte das gehen.

Re: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von a-dead-trousers (Top Expert / 4397 / 223 / 1182 ) »
Die Lösung von Icke, dafür ein Interface zu verwenden, halte ich persönlich für besser anstatt das im Public-Bereich einer Klasse zu definieren.
1) Bei einem Zugriff darauf muss nicht die gesamte Klasse in den Speicher geladen werden.
2) Möchte man das später in einem anderen Kontext wiederverwenden, muss man nicht auf die "alte" Klasse referenzieren, die man dafür nicht verwenden möchte (oder kann).

Die beste Lösung, meines Erachtens, ist und bleibt aber, das im DDIC zu definieren. Damit ist man wirklich völlig losgelöst von jedeweder Programmlogik.
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: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
a-dead-trousers hat geschrieben:
22.04.2022 07:31
Die Lösung von Icke, dafür ein Interface zu verwenden, halte ich persönlich für besser anstatt das im Public-Bereich einer Klasse zu definieren.
a-dead-trousers hat geschrieben:
22.04.2022 07:31
1) Bei einem Zugriff darauf muss nicht die gesamte Klasse in den Speicher geladen werden.
Wenn ich den Typ zu der Klasse definiere, dann gehe ich davon aus, dass ich diesen Typ auch in und für die Klasse benötige. Also wird die Klasse eh immer geladen werden.
a-dead-trousers hat geschrieben:
22.04.2022 07:31
2) Möchte man das später in einem anderen Kontext wiederverwenden, muss man nicht auf die "alte" Klasse referenzieren, die man dafür nicht verwenden möchte (oder kann).
In dem Fall ist ein Refactoring notwendig.
a-dead-trousers hat geschrieben:
22.04.2022 07:31
Die beste Lösung, meines Erachtens, ist und bleibt aber, das im DDIC zu definieren. Damit ist man wirklich völlig losgelöst von jedeweder Programmlogik.
So lange ich einen Typen nicht "außerhalb" benötige, sehe ich keinen Vorteil darin, diesen Im Dictionary zu definieren.
Wobei man durchaus diskutieren kann, ob man nicht Typendefinitionen immer "unabhängig" definieren sollte/ könnte.

Re: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
Ich habe Typen früher auch immer im DDIC angelegt und mache das inzwischen nicht mehr -- eigentlich nur noch für Felder, die auf irgendwelchen Dynpros gebraucht werden.

Ansonsten finde ich die INTF-Idee am Besten, weil man so den Typen schön von der Verwendung entkoppeln kann.


Ralf

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

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von a-dead-trousers (Top Expert / 4397 / 223 / 1182 ) »
ewx hat geschrieben:
22.04.2022 09:21
Wobei man durchaus diskutieren kann, ob man nicht Typendefinitionen immer "unabhängig" definieren sollte/ könnte.
Genau.
Deswegen habe ich hier auch unterstrichen, dass es sich um meine Meinung handelt und Meinungen sind immer diskutierbar. 😉
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: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von black_adept (Top Expert / 4093 / 127 / 940 ) »
ewx hat geschrieben:
22.04.2022 09:21
a-dead-trousers hat geschrieben:
22.04.2022 07:31
Die beste Lösung, meines Erachtens, ist und bleibt aber, das im DDIC zu definieren. Damit ist man wirklich völlig losgelöst von jedeweder Programmlogik.
So lange ich einen Typen nicht "außerhalb" benötige, sehe ich keinen Vorteil darin, diesen Im Dictionary zu definieren.
Wobei man durchaus diskutieren kann, ob man nicht Typendefinitionen immer "unabhängig" definieren sollte/ könnte.
Der OP spricht von einem alten Report der aufgemotzt werden soll. Daher gehe ich davon aus, dass die Typdefinition nur in diesem Report und nicht außerhalb benötigt wird.
Daher stimme ich Ennos erstem Satz voll und ganz zu und widerspreche dem 2. entschieden wegen des "immer" - und selbst bei "meist" wäre die Meinung die Gleiche.
ralf.wenzel hat geschrieben:
22.04.2022 12:11
Ich habe Typen früher auch immer im DDIC angelegt und mache das inzwischen nicht mehr -- eigentlich nur noch für Felder, die auf irgendwelchen Dynpros gebraucht werden.
Ich mache das immer dann, wenn ich Zusatzinformationen benötige, die im DDIC mitgegeben werden können, die bei der Typdefinition im Programm fehlen ( Referenzinformationen für Mengen und Währungen, Fremdschlüssel, Suchhilfen ) oder wenn die Schnittstelle die Werte zwingend im DDIC benötigt ( [RFC]-FuBa ). Das sind wie - von Ralf angesprochen - meist Sachen die in Dynpros oder halt auch in ALV-Ausgabelisten auftauchen
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von black_adept (Top Expert / 4093 / 127 / 940 ) »
Icke0801 hat geschrieben:
21.04.2022 18:08
Du kannst auch den Typen in einem Interface ablegen, und dann mit zif_types=>type darauf zugreifen.
ralf.wenzel hat geschrieben:
22.04.2022 12:11
Ansonsten finde ich die INTF-Idee am Besten, weil man so den Typen schön von der Verwendung entkoppeln kann.
Die Verwendung via Interface hat aber auch seine Nachteile. Es ist nicht selten, dass ein Interface eine ganze Reihe von Typdefinitionen enthält. Und wenn man jetzt an einer davon eine Änderung vornimmt, werden alle Reports neu kompiliert, die auf dieses Interface oder eine Kompontente desselben referenzieren wohingegen bei Anlage via DDIC nur diejenigen Reports neu kompiliert werden, welche auf den benötigten Typ referenzieren. Desweiteren könnte man bei zentralen Interfaces Probleme mit parallelen Entwicklungen bekommen, die gleichzeitig an verschiedenen Objekten des Interfaces Änderungen machen möchten.
Ist wie immer ein Abwägen der Vor- und Nachteile...
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von ralf.wenzel (Top Expert / 3927 / 200 / 280 ) »
black_adept hat geschrieben:
22.04.2022 15:12
Es ist nicht selten, dass ein Interface eine ganze Reihe von Typdefinitionen enthält.
Die ich sodann als „Paket“ mit einer einzigen Anweisung übernehmen kann, weil im Interface der logische Zusammenhang bestimmter Typen festgeschrieben ist.

Du siehst: Das muss kein Nachteil sein.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Tabelle vom Typ einer lokalen Struktur an Importing Parameter meiner Methode übergeben

Beitrag von black_adept (Top Expert / 4093 / 127 / 940 ) »
ralf.wenzel hat geschrieben:
22.04.2022 16:03
black_adept hat geschrieben:
22.04.2022 15:12
Es ist nicht selten, dass ein Interface eine ganze Reihe von Typdefinitionen enthält.
Die ich sodann als „Paket“ mit einer einzigen Anweisung übernehmen kann, weil im Interface der logische Zusammenhang bestimmter Typen festgeschrieben ist.

Du siehst: Das muss kein Nachteil sein.


Ralf
Dem stimme ich ja grundsätzlich zu. Aber die Nachteile fallen einem halt eher auf, wenn sie einen stören als dass die Vorteile einem auffallen, wenn sie die Arbeit erleichtern.
Und ich hatte schon beides: DDIC-Objekte, bei denen ich mir nachträglich gewünscht hätte, sie in einem Interface gruppiert zu haben als auch in Interfaces definierte Typen, bei denen ich mir nachträglich gewünscht hätte, sie wären im DDIC angelegt worden.
Wie gesagt: Abwägen der Vor- und Nachteile. Und was ist am Ende besser? Ich denke je mehr Erfahrung man bekommt desto weniger oft wünscht man es sich nachher anders herum.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

3
Antw.
4223
Views
Weiß die Methode ob ein optionaler Parameter übergeben wurde
von OBOP » 05.04.2017 10:11 • Verfasst in ABAP Objects®
1
Antw.
3993
Views
interne Tabelle als Parameter zu übergeben?
von oo » 25.05.2006 10:46 • Verfasst in Web-Dynpro, BSP + BHTML
5
Antw.
3076
Views
I_TAB als IMPORTING Parameter
von abap-strizi » 19.12.2005 11:18 • Verfasst in ABAP Objects®
1
Antw.
2020
Views
Field-Symbol als Importing Parameter
von tekko » 12.06.2021 18:23 • Verfasst in ABAP Objects®
9
Antw.
19038
Views
iTAB an Methode übergeben
von Diesel83 » 09.03.2011 19:53 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 6 Stunden von msfox 18 / 10937
Dialog-Container mit Toolbar/Status
vor 9 Stunden von black_adept gelöst 27 / 4039
IT0024 Qualifikationen CP-ID
vor 11 Stunden von ArjenR 1 / 78

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

Trennen Strasse und Hausnummer
vor 6 Stunden von msfox 18 / 10937
Dialog-Container mit Toolbar/Status
vor 9 Stunden von black_adept gelöst 27 / 4039
IT0024 Qualifikationen CP-ID
vor 11 Stunden von ArjenR 1 / 78

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 11 Stunden von ArjenR 1 / 78
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3013
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9605