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)
Werbung

ABAP - Performance für den SELECT

Kategorie - ABAP

In diesem Artikel schauen wir uns noch ein paar Spezialfälle mit dem SELECT an und beleuchten die Performance dieser Konstrukte. Wir zeigen dir die aktuellen Alternativen dafür und geben kleinere Tipps beim Lesen.

02.04.2021

ABAP - Objekte prüfen (Instanzen)

Kategorie - ABAP

In diesem Artikel zeigen wir dir, wie du Instanzen analysieren und auf diese korrekt reagieren kannst, wenn du diese zum Beispiel bei einer Verarbeitung übergibst und individuell reagieren möchtest.

19.03.2021

ABAP - Schleifen

Kategorie - ABAP

Mit dem modernen ABAP wurden auch neue Schleifen und Möglichkeiten zur Einschränkung von Tabelleninhalten geschaffen. Diese neuen Befehle schauen wir uns in diesem Artikel näher an.

19.02.2021

ABAP - Vergleiche

Kategorie - ABAP

Heute betrachten wir uns das Thema Vergleiche und Vergleichsoperatoren im Hinblick auf die neuen Befehle und die aktuelle Verwendung. Was hat sich bisher alles geändert und was sollte man noch tun.

12.02.2021

ABAP - String Funktionen (Teil 3)

Kategorie - ABAP

In diesem Artikel geht es um weitere neue String Funktionen und einen Ersatz für CONDENSE. Hierbei möchten wir dir noch zeigen, wieso du die neuen Funktionen verwenden solltest.

22.01.2021

Wir verwenden Cookies für unsere Dienste und Funktionen. Mehr Informationen