Unterschied zwischen Using und Changing


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Unterschied zwischen Using und Changing

Beitragvon Spookykid » 15.06.2011, 15:19

Hallo zusammen, kann mir jemand helfen den unterschied zwischen Using und Changing zu verstehen?

Code: Alles auswählen
data v type i value 20 .

write  v .

perform abc using v .
write v .


form abc using p_v .
  p_v = 10 .
  write   p_v .
endform .        


output ist 20 10 10.

Code: Alles auswählen
data v type i value 20 .

write  v .

perform abc changing v .
write v .


form abc changing p_v .
  p_v = 10 .
  write   p_v .
endform .        




output ist ebenfalls 20 10 10.

Vielen Dank im Voraus
Spookykid
Specialist
 
Beiträge: 140
Registriert: 23.03.2011, 11:32
Wohnort: Stuttgart
Dank erhalten: 0 mal
Ich bin: Student/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Unterschied zwischen Using und Changing

Beitragvon Spookykid » 15.06.2011, 15:29

Referenzübergabe für USING-Parameter
Für die Formalparameter p1 p2 ... wird kein lokales Datenobjekt im Unterprogramm angelegt. Stattdessen wird beim Aufruf eine Referenz auf den angegebenen Aktualparameter übergeben. Eine Änderung des Formalparameters im Unterprogramm ändert auch den Wert des Aktualparameters.


Referenzübergabe für CHANGING-Parameter
Die Formalparameter p1 p2 ... werden exakt wie die mit USING für Referenzübergabe definierten behandelt.


lt. der SAp Hilfe ist es ja das gleiche. Unser indischer Entwickler und viele Internet Quellen schreiben jedoch Gegenteiliges. Ich bin etwas verwirrt, da in einigen unserer z Programme wild zwischen Using und Changing gewechselt wird.
Spookykid
Specialist
 
Beiträge: 140
Registriert: 23.03.2011, 11:32
Wohnort: Stuttgart
Dank erhalten: 0 mal
Ich bin: Student/in

Re: Unterschied zwischen Using und Changing

Beitragvon black_adept » 15.06.2011, 23:58

Hallo spookykid,

bei FORM-Routinen verhalten sich USING und CHANGING (leider) völlig gleich. Du bekommst allerdings eine Warnung vom Syntaxchecker wenn er merkt dass du einen USING-Parameter ändern willst.
Aber da "using" und "changing" ja was anderes aussagen, überleg dir bei deinen Programmen ob du die Übergabeparameter ändern willst oder nicht. Falls ja - nimm CHANGING, falls nicht nimm USING.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Für diese Nachricht hat black_adept einen Dank bekommen :
Spookykid
black_adept
Top Expert
 
Beiträge: 2575
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 348 mal
Ich bin: Freiberufler/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Große Umsatzprobe Differenz SAPF190
vor 17 Stunden von wreichelt 1 Antw.
gelöst CL_ABAP_CLASSDESCR und Syntaxfehler
vor 10 Stunden von GastX 4 Antw.
gelöst Parameter-ID für Z-Programme einrichten
vor 16 Stunden von Roddy 2 Antw.
PDF-Datei nach Upgrade deutlich zu groß
vor 2 Tagen von ewx 1 Antw.
Vier-Augen-Prinzip auf dem Geschäftspartner
vor 2 Tagen von ralf.wenzel 3 Antw.

  Ähnliche Beiträge beta
Unterschied zwischen Struktur und Tabelle
13.08.2014, 14:46 von kle 3 Antw.
Unterschied zwischen LVC und "Normal" ?
11.07.2007, 15:34 von JHM 1 Antw.
gelöst [HELP] USING und CHANGING
10.11.2015, 18:38 von Tron 4 Antw.
method changing
05.08.2008, 10:38 von kostonstyle 3 Antw.
Zusatz CHANGING bei Unterprogramm-Aufruf
16.01.2007, 16:44 von mpa 2 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!