Funktionale Methoden

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!

Funktionale Methoden

Postby Lucienne935 » Wed Sep 20, 2006 4:53 pm

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: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. gesamtverbrauch = verbrauch( 2005 ) + verbrauch( 2006 ).
  2.  
GeSHi ©


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: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. method verbrauch importing jahr type gjahr
  2.               returning ergebnis type mgvbr.
  3.  
  4.   (...)
  5.  
  6.  
GeSHi ©


Der Aufruf könnte dann genau so aussehen wie oben im ersten Codeschnipsel.
Lucienne935
...
...
 
Posts: 162
Joined: Mon Sep 20, 2004 3:26 pm

Postby Aliyah57 » Thu Sep 21, 2006 12:15 am

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: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. CLASS lcl_test DEFINITION.
  2.   PUBLIC SECTION.
  3.     METHODS
  4.       get_value IMPORTING i_value TYPE i
  5.                 RETURNING value(result) TYPE i.
  6. CLASS lcl_test IMPLEMENTATION.
  7.   METHOD get_value.
  8.     ...
GeSHi ©


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
Aliyah57
.
.
 
Posts: 2
Joined: Thu Sep 21, 2006 12:15 am

Postby Hartmut3588 » Thu Sep 21, 2006 10:16 am

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
Hartmut3588
...
...
 
Posts: 185
Joined: Thu Dec 16, 2004 3:10 pm

Postby Aliyah57 » Thu Sep 21, 2006 10:54 am

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
Aliyah57
.
.
 
Posts: 2
Joined: Thu Sep 21, 2006 12:15 am

Postby Silke1341 » Thu Sep 21, 2006 1:52 pm

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!
Silke1341
.....
.....
 
Posts: 1985
Joined: Thu Aug 19, 2004 3:20 pm


Return to Tips + Tricks & FAQs

Who is online

Users browsing this forum: No registered users and 12 guests