Funktionale Methoden

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Funktionale Methoden

Beitrag von cosmo (Specialist / 175 / 0 / 0 ) »
Bestimmt wird der ein oder andere Umsteiger in ABAP die Möglichkeit vermisst haben, Funktionen zu definieren und aufzurufen - also Unterprogramme, die einen Rückgabewert haben, und die man als Platzhalter in Termen einsetzen kann.

Ich meine etwa folgendes:

Code: Alles auswählen.

gesamtverbrauch = verbrauch( 2005 ) + verbrauch( 2006 ).
wobei Verbrauch eine eigene Unterroutine ist.

Im Objekt-orientierten Teil von ABAP ist so etwas aber durchaus möglich! SAP nennt es "Funktionale Methode". Dabei definiert man in einer Klasse eine Methode, die einen speziellen "RETURNING" Parameter hat. Das Coding der Methode würde dann etwa so aussehen:

Code: Alles auswählen.


method verbrauch importing jahr type gjahr
              returning ergebnis type mgvbr.

  (...)

endmethod.
Der Aufruf könnte dann genau so aussehen wie oben im ersten Codeschnipsel.
Jörg Krause, Anwendungsentwickler und SAP-Betreuer MM/PP


Beitrag von abap-1 (ForumUser / 2 / 0 / 0 ) »
Hallo,

ich habe mir den Beitrag von Jörg Krause 2 mal durchgelesen und kann mir immer noch nicht recht erklären, warum er seinen "Tip" geschrieben hat.

Ich denke, entweder wollte er Werbung für seine "tollen" ABAP-Kenntnisse machen. Das ist wohl schief gegangen ...
Oder aber er hat sich endlich mal mit ABAP Objects beschäftigt und wollte die Welt an seiner durchaus verständlichen Begeisterung teilhaben lassen. Dazu muß er aber doch nicht dieses tolle Forum zumüllen !

Ein paar Klarstellungen:

1. Funktionale Methoden gibt es in ABAP Objects seit 1999 !!! (seit Release 4.6B)
2. In ABAP Objects gibt es sinnvollerweise nur die klare Trennung von Definition und Implementation. RETURNING-Parameter können nur in der call by value-Schreibweise deklariert werden.

Also z.B.:

Code: Alles auswählen.

CLASS lcl_test DEFINITION.
  PUBLIC SECTION.
    METHODS
      get_value IMPORTING i_value TYPE i
                RETURNING value(result) TYPE i.
ENDCLASS.
CLASS lcl_test IMPLEMENTATION.
  METHOD get_value.
    ...
  ENDMETHOD.
ENDCLASS.
Der Codeschnipsel von Herrn Krause ist also Quatsch.

Glücklicherweise sind solche Art Beiträge die Ausnahme in dem sehr guten ABAPForum. Dafür bei dieser Gelegenheit vielen Dank an die Macher der Website und die vielen engagierten Mitglieder.
Bernd

Beitrag von olli-x (Specialist / 166 / 0 / 1 ) »
Ich denke, entweder wollte er Werbung für seine "tollen" ABAP-Kenntnisse machen. Das ist wohl schief gegangen ...
Oder aber er hat sich endlich mal mit ABAP Objects beschäftigt und wollte die Welt an seiner durchaus verständlichen Begeisterung teilhaben lassen. Dazu muß er aber doch nicht dieses tolle Forum zumüllen !
Sehr nette Wortwahl. Vermutlich hast Du Dich noch nie einen Fehler gemacht.

Gruß,
Oliver

Beitrag von abap-1 (ForumUser / 2 / 0 / 0 ) »
Hallo Olli,

klar, jeder kann einen Fehler machen.

Aber:

1. Da wollte sich jemand wichtig machen
2. Wer schon mal ABAP Objects programmiert hat, würde vielleicht das VALUE( vergessen - Ok, kein Problem. Aber "method verbrauch importing ... endmethod" zeugt von solidem Halbwissen über Grundsätzliches.
3. Wenn man "Umsteiger in ABAP" adressiert, sollte man sie nicht verwirren mit derart sinnlosen und falschen Beiträgen. Denk bitte mal nach, wieviel Zeit ein "Umsteiger" vielleicht verschwenden würde, bis er die richtigen Informationen gefunden hat oder ob er gar in Zukunft jeden Beitrag mißtrauisch betrachtet. Normalerweise sind die Beiträge hier aber sehr kompetent und sorgfältig geschrieben.

Gruß

Bernd

Beitrag von ereglam (Top Expert / 1826 / 0 / 6 ) »
da der ursprüngliche Betrag, zugegebenermaßen, nicht fehlerfrei ist, wird ein Admin oder ich ihn wieder löschen.

@cosmo
Dein Betrag ist an sich herzlich willkommen und Du darft ihn auch gerne in überarbeiteter Form wieder posten.
Aber in diesem Punkt muss in ABAP-1 recht geben: er ist im Augenblick leider eher kontraproduktiv.

@abap-1:
bitte das nächste Mal einen Admin oder Moderator darauf hinweisen, aber nicht einfach hier posten. Das ist hier (Tipps&Tricks), wie im Sticky-Posting hingeweisen, unerwünscht.

PS:
jegliche weiteren Äußerungen an dieser Stelle durch nicht-Admin/Mod werden gelöscht!
Diskussionen hierzu sind in Off-Topic oder SAP-Allgemein zu führen!
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .
Mitglied im XING

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Zugriff auf Eingabeparameter in Methode
vor 4 Stunden von ewx 6 / 55
Inlcudes in SapScripts
Gestern von Bright4.5 6 / 94
JSON parsen in Node-Table
vor 2 Tagen von ralf.wenzel 6 / 115
Lokale Klassendefinition in globaler Klasse
vor 2 Tagen von msfox gelöst 13 / 4825

Vergleichbare Themen

Funktionale Abhängigkeiten Datenbanken
von Bright4.5 » 25.03.2021 16:46
Funktionale Programmierung / Funktionen höherer Ordnung
von ralf.wenzel » 09.04.2021 09:00
OLE Methoden
von Kaiwalker » 23.07.2004 12:49
GET und SET Methoden
von yuro » 02.12.2014 10:37
Verwendungsnachweis für Methoden?
von Yllana » 12.07.2007 15:01