Mit einem Dirty-Assign lassen sich fast alle Informationen besorgen, an die so mancher SAP-Entwickler manchmal nicht gedacht hat.
SAP bietet eine Reihe an Customer-Exits und BADIs an, mit deren Hilfe sich so manche Modifikation umgehen lässt.
Man muss nur wissen, dass es sie überhaupt gibt und sie müssen obendrein dann auch noch genau die Stelle des Ablaufs treffen, an der das Problem bewältigt werden muss.
Hat man so einen User-Exit gefunden, so scheitert - auch wenn es gerade passend erscheint - die Benutzung oftmals daran, dass die vorgedachten Übergabeparameter nicht ausreichend sind.
Da kann dann ein Dirty-Assign schon mal sehr nützlich sein.
Man muss sich nur mit Hilfe des Debuggers das Umfeld zur Ablaufzeit ansehen.
Das ist für einen Newbi nicht unbedingt einfach.
Wer aber die SAP-Denke drauf hat, kann sich leicht die notwendigen Informationen besorgen.
Dann fehlt nur noch der Assign auf die Information im zugehörigen Kontext und schon ist das Problem "erschlagen".
Und so funktioniert's:
FIELD-SYMBOLS <SYMBOL> TYPE INFORMATION.
ASSIGN ('(KONTEXT)INFORMATION') TO <SYMBOL>.
IF SY-SUBRC NE 0.
* war der ASSIGN erfolglos
ELSE
* hat man auf <SYMBOL> lesenden und schreibenden Zugriff
ENDIF.
KONTEXT = Programm/Modulpool etc.
Vielen Dank für den Hinweis. Oder?