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

ABAP Tipp - RFC Puffer

Kategorie - ABAP

Hier ein kleiner Tipp von uns, was beim Lesen über RFC mit dem Puffer so alles schief gehen kann und auf was du dabei unbedingt achten solltest.

23.04.2021

ABAP Tipp - Wait for Task

Kategorie - ABAP

Heute einmal einen Tipp für die asynchrone Verarbeitung oder wenn ihr in speziellen Situationen die Verarbeitung in einen separaten Task geben wollt. Wie geht es im Anschluss weiter?

05.03.2021

ABAP Tipp - Performance INSERT vs VALUE

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal die Performance der Einfüge-Operationen APPEND, INSERT und VALUE im Hinblick auf Tabellen an und bewerten die Performance und Stabilität bei der Entwicklung.

26.02.2021

ABAP Tipp - Suche im Quellcode

Kategorie - ABAP

Manchmal ist die Suche über verschiedene Quellcode in einem System nötig. Wir zeigen dir wie es in der SAP GUI und in Eclipse funktioniert.

24.04.2020