Zum Hauptinhalt springen

SAP-Formulare: NAST-Infos abrufen mit Dirty Assign

In SAP-Formulare kann es vorkommen, dass auf Daten der Nachrichtensteuerung (NAST) zugegriffen werden müsste (um z.B.: den Drucker abzugreifen oder das Sendemedium usw.).
Die Struktur NAST mit den dazugehörigen Daten werden aber weder an das Formular noch an deren Schnittstelle übergeben. Die Übergabe der NAST nachträglich einzubauen erweist sich in den meisten Fällen als zu umfangreich, da dann das Druckprogramm modifiziert oder in den Z-Namensraum kopiert werden müsste. Die Modifikation/Kopie des Druckprogrammes sollte aber tunlichst vermieden werden!

Alternativ bleibt lediglich ein Zugriff auf die NAST-Daten mit Hilfe eines DIRTY ASSIGN.

Beispiel SD-Beleg

Bei dem Beispiel wird auf die NAST eines Angebotes/Kundenauftrages zugegriffen.

FIELD-SYMBOLS: <lfs_nast> TYPE nast.

ASSIGN ('(SD_SDOC_PRINT01)NAST') TO <lfs_nast>.
IF sy-subrc eQ 0.
...
ENDIF.
Achtung

Dieses Coding muss für die entsprechende Verwendung angepasst werden. Vor allem das Programm SD_SDOC_PRINT01 ist fall-spezifisch.

Allgemeine Verwendung des "Dirty" ASSIGN

Wichtig!

Die Nutzung eines DIRTY ASSIGN, sollte die absolute Ausnahme sein.

In ABAP kann mit dem dirty ASSIGN auf Variablen, Strukturen und interne Tabellen außerhalb des eigenen Programmes zugegriffen werden. Die Bezeichnung dirty ist aber auch bewusst gewählt worden, denn diese Art von Zugriff war so nicht vorgesehen.
Sollen Daten in Funktionsbausteinen, Programmen und Klassen verwendet werden, so sollten diese übergeben werden. Dies ist die saubere Methode.

Letztes Update: 07.03.2022