Dynprofelder 

Dynprofelder sind Felder im Arbeitsspeicher des Dynpros. Die Inhalte von Dynprofeldern werden zum Zeitpunkt PAI an gleichnamige Datenobjekte im ABAP-Programm übergeben, bzw. zum Zeitpunkt PBO mit den Inhalten der Datenobjekte des ABAP-Programms versorgt. Die Dynprofelder sind mit den Ein- und Ausgabefelder einschließlich dem OK-Feld des Dynpros verknüpft. Ein- und Ausgabefelder müssen einen eindeutigen Namen (Elementattribut Name) haben, der sie mit einem gleichnamigen Dynprofeld zuordnet, um ihren Inhalt im ABAP-Programm bearbeiten zu können.

Die technischen Eigenschaften Länge und Datentyp eines Dynprofelds werden durch die Elementattribute defLg und Format festgelegt. Für den Datentyp steht eine Auswahl von eingebauten Datentypen des ABAP Dictionary zur Verfügung, die bei der Übergabe zwischen Dynpro und ABAP-Programm entsprechend konvertiert werden. Beim Übernehmen von Feldern aus dem ABAP Dictionary oder dem ABAP-Programm werden Name, Länge und Datentyp der Dynprofelder automatisch passend definiert. Ansonsten müssen diese Attribute im Screen Painter gesetzt werden. Insbesondere muß der Name des OK-Felds für jedes Dynpro festgelegt werden, um ein entsprechendes Dynprofeld anzulegen. Dies erlaubt die Verwendung verschiedener OK-Felder in einem ABAP-Programm.

Reine Anzeigeelemente wie Textfelder oder Rahmen sind nicht mit Dynprofeldern verknüpft und benötigen nicht unbedingt einen eindeutigen Feldnamen. Beim Anlegen von Ein- und Ausgabefeldern über das Übernehmen von Feldern aus dem ABAP Dictionary werden in der Regel gleichzeitig beschreibende Textfelder mit Texten aus dem Dictionary angelegt. Diese Textfelder haben standardmäßig den gleichen Namen wie die Dynprofelder der Ein- und Ausgabefelder.

Außer den im Screen Painter definierten Dynprofeldern, kennt ein Dynpro noch die gleichen vordefinierten Systemfelder wie das ABAP-Programm. Im Unterschied zum ABAP-Programm, werden die Systemfelder aber nicht in der Struktur SY, sondern in der Struktur SYST verwaltet und deshalb mit SYST-<name> angesprochen.

 

Betrachten wir folgenden Programmausschnitt:

DATA: text(10) TYPE c,
      number TYPE I.

CALL SCREEN 100.

Beim Anlegen von Dynpro 100 im SCREEN PAINTER sind zwei Felder SPFLI-CARRID und SPFLI-CONNID aus dem ABAP Dictionary und die zwei Felder TEXT und NUMBER aus dem ABAP Programm geholt worden. Zusätzlich wurden drei Textfelder und ein Rahmen angelegt. Das Layout ist wie folgt:

Die für die Dynprofelder relevanten Spalten der Elementliste sind wie folgt:

Name

Typ

defLg

Format

Text o. E/A-Schablone

Rahmen

Frame

62

 

Testrahmen

%#AUTOTEXT001

Text

14

 

Dynpro Felder

SPFLI-CARRID

Text

16

 

Fluggesellschaft

SPFLI-CARRID

I/O

3

CHAR

___

SPFLI-CONNID

Text

15

 

Flugnummer

SPFLI-CONNID

I/O

4

NUMC

____

%#AUTOTEXT002

Text

10

 

ABAP-Feld1

TEXT

I/O

10

CHAR

__________

%#AUTOTEXT003

Text

10

 

ABAP-Feld2

NUMBER

I/O

11

INT4

___________

 

OK

20

OK

________________

Das Dynpro hat vier Ein-/Ausgabefelder. Diese Felder sind mit vier gleichnamigen Dynprofeldern verknüpft. Die Datentypen und Längen der Dynprofelder werden aus dem ABAP Dictionary bzw. dem ABAP-Programm übernommen. Dem OK-Feld muß hier noch ein Name, wie z.B. OK_CODE zugeordnet werden, um ihm ein Dynprofeld zuzuordnen.

Den reinen Anzeigefeldern vom Typ Frame oder Text kann bei der Definition ein Feldnamen, wie z.B. hier beim Rahmen, zugeordnet werden oder das System erzeugt automatische Feldnamen. Die aus dem ABAP Dictionary geholten Texte haben dabei die gleichen Namen wie die eigentlichen Ein-/Ausgabefelder, für die im Screen Painter definierten Texte werden Namen mit laufenden Nummern generiert.

Die letzte Spalte zeigt den Inhalt der Bildschirmelemente auf dem Bildschirm an. Für die Ein-/Ausgabefelder kann hier nur die für den Inhalt der Dynprofelder definierte Schablone angedeutet werden, da dieser erst zur Laufzeit bekannt ist. Der Inhalt der reinen Ausgabefelder wird dagegen statisch im Screen Painter definiert und wird nicht von Dynprofeldern beeinflußt.