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

976

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 in Praxis - String Verarbeitung

Kategorie - ABAP

In diesem praktischen Beispiel schauen wir uns die String Verarbeitung zur Ermittlung der CDS Namen in CamelCase an und wie du das mit ABAP umsetzen kannst.

15.10.2024

ABAP in der Praxis - Test Driven Development

Kategorie - ABAP

Wie funktioniert eigentlich TDD in der Praxis und gibt es einfache Beispiele zum Lernen in ABAP? In dieser Übung gehen wir auf den praktischen Teil ein.

24.09.2024

ABAP in der Praxis - Datenmenge zusammenführen

Kategorie - ABAP

Wir führen wir zwei unterschiedliche Datenmengen in ABAP zusammen, vor allem im Hinblick auf das Moderne ABAP? Eine praktische Aufgabe zum Thema.

17.09.2024

ABAP in der Praxis - Modern ABAP

Kategorie - ABAP

In dieser kleinen Aufgabe schauen wir uns bestehenden klassischen ABAP Quellcode an und versuchen diesen nach Modern ABAP zu optimieren.

27.08.2024

ABAP Tipp - Performance Datenfilterung

Kategorie - ABAP

Welche Anweisung verwendest du in ABAP zur Filterung von internen Tabellen und ist diese performant? In diesem Artikel mehr dazu.

13.08.2024