Wenn Returning dann kein Exporting

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

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

Wenn Returning dann kein Exporting

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
Moin Community

Ich hab mal gelernt das eine Methode mit Returning Parameter gleichzeitig keinen Export Parameter haben darf. Ich glaube sogar die SE24 gibt einem eine solche Meldung.

Heute hab ich das Lokal nachgestellt. Und was soll ich sagen. Es geht oO
Weiß jemand ob sich das geändert hat?
SAP Release 7.50

Code: Alles auswählen.


CLASS lcl_test DEFINITION.
  PUBLIC SECTION.
    METHODS m EXPORTING e        TYPE i
              RETURNING VALUE(r) TYPE i.

  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.

CLASS lcl_test IMPLEMENTATION.
  METHOD m.
    e = 1.
    r = 1.
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.

DATA e TYPE i.
DATA(class) = NEW lcl_test( ).

data(i) = class->m( IMPORTING e = e ).

Code once - Think twice

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


Re: Wenn Returning dann kein Exporting

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Ja - hat sich schon vor geraumer Zeit mit 7.40, SP02 geändert.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Wenn Returning dann kein Exporting

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Wird jedoch nicht empfohlen, beides gleichzeitig zu verwenden.

Re: Wenn Returning dann kein Exporting

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Auch wenn es nicht empfohlen wird. Man sollte sich -wie eigentlich immer- Gedanken machen warum es nicht empfohlen wird und warum es in bestimmten Situationen evtl. doch Sinn macht.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Wenn Returning dann kein Exporting

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
RETURNING und EXPORTING machen IMHO nicht viel Sinn.
CHANGING und RETURNING finde ich jedoch sehr praktisch und ist die einizige Kombination die ich wirklich oft benutze:

Code: Alles auswählen.

METHOD read_table.
* IMPORTING is_key TYPE ts_key
* CHANGING ct_table TYPE tt_table
* RETURNUNG rr_line TYPE REF TO ts_line.

  READ TABLE ct_table REFERENCE INTO rr_line
    WITH KEY feld1 = is_key-feld1 feld2 = is_key-feld2 ...

ENDMETHOD.
Wobei hier der Lese- und Schreibzugriff auf die Tabelle so kompliziert werden kann wie man möchte (z.B. LOOP AT für CP-Vergleiche), der Aufruf ist immer nur eine Methode.
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: Wenn Returning dann kein Exporting

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Grundsätzlich sehe ich den Vorteil des Returningparameters, dass man die funktionale Schreibweise verwenden kann. Sonst könnte man ja gleich Exportingparameter verwenden. Aber folgende Verwendungen sehe ich als legitim an und verwende es dann auch.
  • Der Standardaufruf benötigt nur den Returningparameter, aber es gibt Sonderfälle, bei denen der Aufrufer Extrainformationen benötigt, welche dann durch die Exportparametern ausgegeben werden.
  • Beim (gekapselten) Erzeugen eines ALV sollte die anzuzeigende Tabelle mittels Changingparameter übergeben werden( In diesem Fall ersetzt der Changingparameter quasi die üblichen Importparameter ) und ich finde, dass ein CHANGING-Parameter hier besser anzeigt, dass der ALV vorhat, die Daten auch zu verändern ( Sortierung )
  • Der RETURNING-Parameter ist vom Typ ABAP_BOOL, so dass ich die verkürzte IF-Bedingung verwenden kann, aber im Fall von ABAP_FALSE werden mir in einem Exportparameter Zusatzinformationen zurückgegeben. Aber das ist wohl nur meine eigene Vorgehensweise, weil ich einen Aufruf

    Code: Alles auswählen.

    IF NOT lo->meth( [EXPORTING ... ] IMPORTING ET_BAPIRET2 = lt_bapiret2 ). 
      Fehlerbehandlung
    ENDIF.
    als hübsch ansehe
Nachtrag: Habe gerade mal auf einem "meiner" Systeme geschaut wie häufig ich es wirklich verwende: Ist sehr! überschaubar.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

2
Antw.
263
Views
Returning Value in Methoden
von ShayHoss » 09.05.2023 16:48 • Verfasst in ABAP® für Anfänger
11
Antw.
5180
Views
EXPORT/RETURNING vs. CHANGING
von ralf.wenzel » 27.02.2019 08:07 • Verfasst in ABAP Objects®
1
Antw.
1925
Views
Column Tree: returning to selection screen
von pja » 12.03.2006 17:07 • Verfasst in ABAP Objects®
1
Antw.
2538
Views
Select into table @data(xxx) und returning Parameter
von Basler84 » 06.08.2018 18:40 • Verfasst in ABAP Objects®
4
Antw.
851
Views
EXPORTING itab
von der_neuling » 03.03.2021 11:54 • 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

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.