Zugriff auf Variableninhalte übergeordneter Programme (Dirty Assign)

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Manchmal gibt den Fall, dass in einer Programmierungseinheit kein Zugriff mehr besteht auf ein anderes Programm/Methode/Funktionsbaustein besteht, was man eigentlich benötigt, was während der Laufzeit vorher durchlaufen wurde. Die Variablen stehen allerdings nicht mehr zur Verfügung.

Diese Konstellation gibt es regelmäßig in User-Exits, wo die Schnittstelle des User-Exits die benötigte Variable nicht bereitstellt, die in dem User-Exit von Interesse ist. Hier kann ein sogenannter "Dirty-Assign" vorgenommen werden.

Dirty Assign bei Strukturen

Field-Symbols: <fs_kna1> type kna1.

assign ('(EXTERNER_PROGRAMMNAME)ykna1') to <fs_kna1>. 
  • Im Field-Symbol <fs_kna1> steht nun der Variableninhalt von der Variablen YKNA1, die im Programm EXTERNER_PROGRAMMNAME gefüllt wurde.
  • Der Dirty-Assign-Befehl ist von SAP nicht offiziell freigegeben, aber er wird von SAP selber und in vielen SAP-Anwenderfirmen genutzt. Daher kann man davon ausgehen, dass er auch weiterhin funktionieren wird.

Dirty Assign beim Select-Options

  • Es ist sogar möglich auf Select-Options eines vorgelagerten Programms zuzugreifen. Allerdings muss man hier beachten nur den Tabellenrumpf von der Select-Options-Tabelle anzusprechen ( []-Befehl ). Ansonsten gibt es einen Typkonflikt, wenn man die Select-Options-Tabelle in einen Range-Tabelle ohne Kopfzeile übertragen will.
 types: tyr_vbeln type range of VBELN.

 Field-Symbols: <fs_table> type tyr_vbeln.

"durch [] wird der Tabellenrumpf der Tabelle vom Select-Options angesprochen
 assign ('(/XXX/SD_DRUCKTRANS)S_LFRGN[]') to <fs_table>.

Hauptprogramm und Include

  • Bei der Angabe des Programmnamens ist das Hauptprogramm entscheidend, nicht in welchem Include das Coding gespeichert ist.

Globale und lokale Variablen

  • Man hat bei einem durchlaufenen Programm nur noch Zugriff auf die globalen Variablen des Programms. Die lokalen Variablen werden bei Verlassen des Programms gelöscht.

Web-Links

Literatur