This is a test message to test the length of the message box.
Login
Regeln für Datendefinitionen
Erstellt von Software-Heroes

ABAP - Regeln für Datendefinitionen

387

Für die Inline Deklaration von Variablen gibt es noch spezielle Regeln, auf die man achten sollte. Dies wollen wir dir in diesem Artikel etwas näher bringen.

Werbung

Wie im letzten Artikel beschrieben ist die Definition von Datentypen und Variablen nun etwas einfacher und übersichtlicher geworden. Für die einfachen Zuweisungen funktioniert dies auch in allen Fällen, vor allem dann, wenn es einen Returning Parameter gibt.

Ein Returning Parameter gibt immer eine Variable, Struktur oder Tabelle zurück und ist eindeutig definiert. Deshalb kann man das Ergebnis der Rückgabe direkt in einer neu definierten Variable speichern.


" Erzeugung für Returning Parameter
DATA(ld_erg) = lo_obj->get_data( ).

" Erzeugung Funktion
DATA(ld_cnt) = LINES( lt_t001 ).

Zur Erklärung:

  • Im ersten Beispiel wird die Methode get_data des Objekts lo_obj aufgerufen, die ein Ergebnis als Returning Parameter zurückgibt.
  • Im zweiten Beispiel wird die Anzahl der Zeilen der Tabelle lt_t001 ermittelt und als Variable im Programm verfügbar gemacht.

 

Hinweis: Als eindeutig definiert gilt auch ein Returning Parameter vom Typ REF TO DATA, was für generische Rückgaben sehr gut geignet ist.

 

Methoden

Neben den Returning Parametern können auch Exportparameter von Methoden zur Laufzeit im Programm definiert werden. Sollte eine Methode sehr viele Exportparameter zur Verfügung stellen, dann können diese schnell zur Laufzeit beim Aufruf der Methode erzeugt werden, was viel Übersicht schafft.


" Methodenaufruf
lo_obj->get_parameter(
  EXPORTING
    id_key     = ld_key
    id_name    = 'Beispiel Text'
  IMPORTING
    et_data    = DATA(lt_data)
    et_address = DATA(lt_address)
    et_num     = DATA(lt_num)
    es_header  = DATA(ls_head)
    ed_count   = DATA(ld_cnt)
).

Normalerweise müssten in diesem Fall nun 5 Variablen im Kopf der Methode oder des Forms angelegt werden, die die Werte dann aufnehmen, dies fällt aber nun weg.

 

Funktionsbausteine

Bei Funktionsbausteinen funktioniert diese "schnelle" Funktion leider nicht. Returning Parameter gibt es bei Funktionsbausteinen nicht, mit Changing Parameter klappt es nicht und Exporting Parameter müssen im aufrufenden Programm definiert werden. Auch für die Parameter die einen eindeutigen Typ haben, klappt die Inline Deklaration nicht.

Dies hat zwei Gründe:

  • Der Compiler würde sich beschweren, wenn nicht eindeutig typisierte Datentypen in der Schnittstelle vorhanden sind
  • RFC-Bausteine müssen im System nicht unbedingt bekannt sein, dadurch sind  auch die verwendeten Datentypen nicht bekannt 

 

Trick 17

Damit die Logik aber dennoch für BAPIs bzw. Funktionsbausteine funktioniert, kann man diese auch in einer Methode einbetten, vor allem wenn man diesen BAPI-Baustein dann öfter braucht. Damit ist auch eine Inline Deklaration der Variablen möglich, vor allem da BAPIs meist recht umfangreiche Rückgabestrukturen besitzen.

Du merkst also, auch für dieses Problem gibt es eine Lösung, auch wenn sie nicht in jedem Fall eingesetzte werden sollte, sondern nur dann, wenn es sich auch lohnt.

 

Zusammenfassung

Du hast also gelernt das es noch zusätzliche spezielle Regeln gibt bei der Verwendung von Funktionsbausteinen und Methoden, diese aber nicht so kompliziert und leicht umzusetzen sind.


Enthaltene Themen:
Modernes ABAPDATAInline Deklaration
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP - Type Casting

Kategorie - ABAP

Wie kommst du eigentlich an den ursprünglichen Typ einer Klasse bzw. Instanz, wenn diese in einer generischen Tabelle übergeben wird? In diesem Artikel prüfen wir die Möglichkeiten.

16.04.2024

ABAP - RETURN value

Kategorie - ABAP

Nach all den Jahren ist nun endlich der "echte" Return in ABAP angekommen, in diesem Artikel zeigen wir dir, wie der funktioniert und was er kann.

13.02.2024

ABAP Deep Dive - FOR (Schleifen)

Kategorie - ABAP

Schauen wir uns einmal die FOR Schleife etwas näher an. Wie funktioniert sie? Was muss ich beachten und was kann ich damit tun?

14.04.2023

ABAP Deep Dive - Tabellenzugriff (intern)

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal den Tabellenzugriff auf interne Tabellen an und wie sie den READ TABLE ablösen.

03.02.2023

ABAP - FINAL

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal das neue FINAL Sprachkonstrukt an, wie es funktioniert und was du damit anstellen kannst.

23.12.2022