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