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

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)

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

ABAP Deep Dive - VALUE

Kategorie - ABAP

In diesem Artikel wollen wir uns noch einmal das Value Statement in allen Ausprägungen anschauen und wie du es in deiner täglichen Arbeit nutzen kannst.

11.11.2022

ABAP - Common Table Expression (CTE)

Kategorie - ABAP

In diesem Artikel wollen wir uns einmal den allgemeinen Tabellenausdruck WITH anschauen und wie du ihn im Alltag nutzen kannst.

28.10.2022