EXPORT/RETURNING vs. CHANGING

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

EXPORT/RETURNING vs. CHANGING

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Ich bin ja bekanntlich ein großer Fan von funktionalen Methoden, weil man die so schön an Operandenpositionen einsetzen kann. Angenommen, ich habe eine Methode, die die Variable var_a verändern soll, ergäben sich folgende Möglichkeiten:

Code: Alles auswählen.

var_a = obj->meth( var_a )
oder

Code: Alles auswählen.

obj->meth( changing var_a ).
Beides funktioniert und ist rein technisch richtig. Ich frage mich, wie verwirrend die erste Darstellung für andere sein könnte, weshalb ich das hier zur Diskussion stelle. Welche Variante findet ihr besser und warum?


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

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


Re: EXPORT/RETURNING vs. CHANGING

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Obwohl ich selbst die Variante 1 immer nutze, muss ich doch zugeben, dass Variante 2 in diesem Zusammenhang aussagekräftiger ist.
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Re: EXPORT/RETURNING vs. CHANGING

Beitrag von fr-g (ForumUser / 76 / 12 / 25 ) »
Ich würde auch Variante 2 nehmen. Von einem IMPORTING-Parameter würde ich hier (zumindest in ABAP) erwarten, dass er nicht geändert wird. Und du gibst ja mit RETURNING auch in jedem Fall eine Kopie zurück.
CHANGING finde ich außerdem noch für Referenzübergaben bei bestimmten Konstellationen sinnvoll, auch wenn RETURNING sich netter schreibt.

Re: EXPORT/RETURNING vs. CHANGING

Beitrag von tm987456 (ForumUser / 72 / 42 / 14 ) »
Mit returning bin ich flexibler als mit changing, denn ich kann sowohl eine Variable ändern, wie auch das Ergebnis in einer neuen Variable speichern.

Code: Alles auswählen.

DATA(selected_ids) = read_ids( ).
DATA(modified_ids) = modify_ids( selected_ids ).
Finde ich persönlich schöner, sauberer und lesbarer als das hier:

Code: Alles auswählen.

DATA( selected_ids ) = read_ids( ).
modify_ids( changing selected_ids ).
Die Variante mit returning bietet mir ausserdem die Möglichkeit von Method Chaining.

Code: Alles auswählen.

DATA(modified_ids) = modify_ids( read_ids( ) ).

Folgende Benutzer bedankten sich beim Autor tm987456 für den Beitrag:
ST22


Re: EXPORT/RETURNING vs. CHANGING

Beitrag von nickname8 (Specialist / 134 / 17 / 19 ) »
Ich sehe es genauso wie tm987456. Ich habe noch nie CHANGING in einer eingenen Methode verwendet.

Anmerkung: man Darf nicht vergessen, dass RETURNING eine Kopie zurückgibt, und nicht die Variable an sich ändert (außer man übergibt Objekte oder sonstige Referenzen).

Dazu ein interessanter Artikel: https://blogs.sap.com/2017/07/30/the-my ... parameter/

Re: EXPORT/RETURNING vs. CHANGING

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
ralf.wenzel hat geschrieben: Angenommen, ich habe eine Methode, die die Variable var_a verändern soll
Die Methode soll die (übergebene) Variable ändern: --> CHANGING.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: EXPORT/RETURNING vs. CHANGING

Beitrag von AdrianSchm (ForumUser / 33 / 4 / 4 ) »
Wusstest Ihr das man im Exporting einer Methode auch der Methode einen Wert Mitgeben könnt wenn ihr keine Wertübergabe macht.
Also ist Exporting auch sowas wie Changing :)

Re: EXPORT/RETURNING vs. CHANGING

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
AdrianSchm hat geschrieben:Wusstest Ihr das man im Exporting einer Methode auch der Methode einen Wert Mitgeben könnt wenn ihr keine Wertübergabe macht.
Also ist Exporting auch sowas wie Changing :)
Hä?


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

Re: EXPORT/RETURNING vs. CHANGING

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
AdrianSchm hat geschrieben:Wusstest Ihr das man im Exporting einer Methode auch der Methode einen Wert Mitgeben könnt wenn ihr keine Wertübergabe macht.
Also ist Exporting auch sowas wie Changing :)
Ja Exporting verhält sich wie Changing bei Referenzübergabe. Deswegen ist es auch eine gute Praxis den Export-Parameter zu Beginn der Methode zu initialisieren.

https://help.sap.com/doc/abapdocu_752_i ... _guidl.htm

Folgende Benutzer bedankten sich beim Autor erp-bt für den Beitrag:
fr-g

...entwickelnder Berater...beratender Entwickler

Re: EXPORT/RETURNING vs. CHANGING

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
erp-bt hat geschrieben:
AdrianSchm hat geschrieben:Wusstest Ihr das man im Exporting einer Methode auch der Methode einen Wert Mitgeben könnt wenn ihr keine Wertübergabe macht.
Also ist Exporting auch sowas wie Changing :)
Ja Exporting verhält sich wie Changing bei Referenzübergabe. Deswegen ist es auch eine gute Praxis den Export-Parameter zu Beginn der Methode zu initialisieren.

https://help.sap.com/doc/abapdocu_752_i ... _guidl.htm
Der erweiterte Syntaxcheck bzw. der Codeinspector warnt sogar, wenn eine als EXPORTING deklarierte Variable ohne entsprechender Initialisierung verwendet wird.
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: EXPORT/RETURNING vs. CHANGING

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
erp-bt hat geschrieben:
AdrianSchm hat geschrieben:Wusstest Ihr das man im Exporting einer Methode auch der Methode einen Wert Mitgeben könnt wenn ihr keine Wertübergabe macht.
Also ist Exporting auch sowas wie Changing :)
Ja Exporting verhält sich wie Changing bei Referenzübergabe. Deswegen ist es auch eine gute Praxis den Export-Parameter zu Beginn der Methode zu initialisieren.

https://help.sap.com/doc/abapdocu_752_i ... _guidl.htm
Jetzt verstehe ich auch, was mit dem Satz gemeint war.


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

Re: EXPORT/RETURNING vs. CHANGING

Beitrag von AdrianSchm (ForumUser / 33 / 4 / 4 ) »
Ja manchmal bin ich ein bisschen wirr im Kopf und kann dann keinen klaren Satz bilden :)

Seite 1 von 1

Vergleichbare Themen

2
Antw.
239
Views
Returning Value in Methoden
von ShayHoss » 09.05.2023 16:48 • Verfasst in ABAP® für Anfänger
1
Antw.
2513
Views
Select into table @data(xxx) und returning Parameter
von Basler84 » 06.08.2018 18:40 • Verfasst in ABAP Objects®
1
Antw.
1917
Views
Column Tree: returning to selection screen
von pja » 12.03.2006 17:07 • Verfasst in ABAP Objects®
5
Antw.
1306
Views
Wenn Returning dann kein Exporting
von JohnLocklay » 12.08.2021 10:13 • Verfasst in ABAP Objects®
4
Antw.
1701
Views
[HELP] USING und CHANGING
von hmaxi96 » 10.11.2015 15:32 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor 18 Minuten von msfox 2 / 33
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

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

Zugriff auf Daten via Webdav
vor 18 Minuten von msfox 2 / 33
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141