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

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

ABAP Tipp - Verarbeitung in neuem Task

Kategorie - ABAP

In diesem Tipp geht es um die asynchrone Verarbeitung in einem neuen Prozess und auf was du dabei achten solltest.

07.01.2022

ABAP Tipp - Konvertierung JSON nach Intern

Kategorie - ABAP

In diesem kleinen Tipp gehen wir darauf ein, wie du einen JSON Stream in ein internes Format konvertierst und dann ordentlich verwenden kannst.

10.12.2021

ABAP Tipp - Externe Währung nach Intern

Kategorie - ABAP

Ein kleiner Tipp um Daten aus einer Excel oder CSV-Datei in das korrekte interne Währungsformat zu konvertieren. Eine einfach Konvertierung kann schnell zu Fehlern führen.

03.12.2021

ABAP Unit - Tipps

Kategorie - ABAP

Zum Abschluss der Serie noch ein paar Tipps die wir dir mit auf den Weg geben wollen. Hier geht es um Shortcuts und allgemeine Hinweise zu den Tests.

12.11.2021

ABAP Tipp - Aufbau von Testdaten

Kategorie - ABAP

Welche Herausforderungen hat man beim Aufbau von Testtabellen und Testdaten und wie kann dir die maschinelle Verarbeitung dabei helfen.

25.06.2021