This is a test message to test the length of the message box.
Login
ABAP Tipp Klassen und Dynpros
Erstellt von Software-Heroes

ABAP Tipp - Klassen und Dynpros

892

Wie verwendest du am Besten lokale Klassen und Dynpros miteinander? Und funktioniert das Ganze eigentlich sinnvoll?

Werbung

Wie funktionieren eigentlich Klassen und Dynpros genau miteinander? Und kann man diese eigentlich sinnvoll miteinander Verknüpfen? Wir zeigen dir heute eine Lösung wie es funktionieren kann.

 

Lokale Klasse

Die lokale Klasse prägen wir entsprechend unserer Anforderungen aus. Dabei berücksichtigen wir das PBO und PAI des Dynpros 2000 und legen noch ein öffentliches Attribut für die Dynprodaten an. In diesem Fall ist es wichtig, dass die Sichtbarkeit der Attribute auf dem Dynpro öffentlich ist, da sonst nicht darauf zugegriffen werden kann.

 

Hier die Beispielklasse, wie die Implementierung für unser Beispiel aussieht:

CLASS lcl_prog DEFINITION FINAL.
  PUBLIC SECTION.
    TYPES:
      BEGIN OF ts_screen,
        bukrs TYPE t001-bukrs,
        text  TYPE text50,
      END OF ts_screen.

    DATA:
      ms_screen TYPE ts_screen.

    METHODS:
      start,

      pbo_2000,

      pai_2000.

  PRIVATE SECTION.
ENDCLASS.

CLASS lcl_prog IMPLEMENTATION.
  METHOD start.
    ms_screen-bukrs = '0815'.
    ms_screen-text = 'A random text'.

    CALL SCREEN 2000.
  ENDMETHOD.

  METHOD pbo_2000.
    SET PF-STATUS '2000'.
    SET TITLEBAR '2000'.
  ENDMETHOD.

  METHOD pai_2000.
    CASE sy-ucomm.
      WHEN 'BACK' OR 'LEAVE' OR 'EXIT'.
        LEAVE PROGRAM.
    ENDCASE.
  ENDMETHOD.
ENDCLASS.

 

Dynpro

Bei der Definition des Dynpros können wir dann direkt über die globale Instanz auf die Attribute zugreifen und darin Daten lesen und ablegen. Bei der Hinterlegung der Felder ist nur darauf zu achten, dass man nur öffentliche Attribute der Instanz verwenden kann.

 

Der Nachteil bei dieser Methode ist, dass die Feldeigenschaften nicht aus dem Kontext der Variable gezogen werden kann, so wie bei einer globalen Variable die über TABLES definiert wurde. Vorteil ist wiederrum die Entkopplung vom Hauptprogramm und den globalen Daten. Final wird man wahrscheinlich eher einen hybriden Ansatz wählen.

 

Anbindung

Die Anbindung der Klasse erfolgt über die klassischen Module für PBO und PAI, hier benötigst du aber nur den Aufruf der Methoden und kannst die restliche Logik in der Klasse implementieren, wie oben in der Beispielklasse.

 

MODULE pbo_2000 OUTPUT.
  go_app->pbo_2000( ).
ENDMODULE.

MODULE pai_2000 INPUT.
  go_app->pai_2000( ).
ENDMODULE.

 

Ergebnis

Nach dem Starten des Reports erhältst du das folgende Ergebnis. Die Felder wurden vor Aufruf des Dynpros befüllt und werden korrekt angezeigt bzw. können auch verändert werden. Die Anzeige des Menüs und die Verarbeitung des UCOMM funktionieren ebenfalls wie gewünscht.

 

Fazit

Das Arbeiten mit Dynpros ist auch in der Welt der Klassen kein Problem für dich. Du musst dir nur klar machen, zu welchem Zeitpunkt welche Methoden gerufen werden und wo deine Daten genutzt werden. Für eine Implementierung von komplexen Anwendungen empfiehlt sich ein hybrider Ansatz mit der Definition von globalen Strukturen über TABLES und der Übergabe der Daten an die Klasse.


Enthaltene Themen:
TippDynproLokale Klasse
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 Tipp - RFC Fehlerbehandlung

Kategorie - ABAP

Wie behandelt man eigentlich Fehler, wenn man über eine Destination im Funktionsbaustein kommuniziert? Mehr dazu in unserem Tipp.

05.03.2024

ABAP Tipp - CLEAR right

Kategorie - ABAP

Richtig löschen? In diesem Artikel wollen wir uns einmal anschauen, wann es Sinn macht zu löschen und wie du effektiv vorgehen kannst.

12.05.2023

ABAP Tipp - Performance Kettensätze

Kategorie - ABAP

Schauen wir uns hier einmal die Performance beim Bilden von Kettensätzen mit DATA und FIELD-SYMBOL an. Welche Variante wird bei der Performance vorn liegen?

28.04.2023

ABAP Tipp - Adobe Formulare zu groß

Kategorie - ABAP

In diesem kleinen Tipp wollen wir uns anschauen, wieso im schlechtesten Fall Adobe Formulare größer werden, als sie eigentlich sein sollten.

18.11.2022

ABAP - ALV in 2022 noch relevant?

Kategorie - ABAP

Heute mal die scherzhafte Frage, benötigen wir im Jahr 2022 noch Reports die ALV Ausgaben erzeugen? Der Frage wollen wir in diesem Artikel einmal nachgehen.

01.07.2022