Im Laufe meiner Beraterjahre habe ich immer wieder feststellen müssen, das Werte direkt auf der Datenbank geändert wurden. Egal ob es sich um ein Testsystem, QA- System oder um ein Produktivsystem handelte. Eine Tabellenänderung auf einem Testsystem kann ich ja noch verstehen, aber auf einem Produktivsystem? Ein Leckerbissen für jeden Auditor. Hat er einen solchen Fall gefunden fängt er an zu bohren.
Generell sollte diese Vorgehensweise tabu sein. Aber wie schon gesagt, Verstösse sehe ich immer wieder. Solche Eingriffe haben natürlich auch einen rechtlichen Aspekt. Strafbar macht sich jeder der auf einem Produktivsystem Werte ändert. Stickwort: Manipulation von Unternehmenszahlen (Bilanz, GuV, Belege, etc.). Was könnte sonst noch passieren ? Inkonsistenzen in den Tabelle, Worst Case ein Systemstillstand.
Ich kann nur anraten: Finger weg von Tabellenänderungen mit SE16 und SE16N.
Trotzdem möchte ich hier kurz beschreiben wie eine Tabellenänderung mit SE16 funktioniert. Zum einen die umständliche Variante mit der SE16 und zum anderen einfache Variante mit Hilfe der SE16N.
Wie gehe ich nun vor um Werte in einer Tabelle zu ändern oder zu löschen?
Starten wir mit der umständlichen Variante
- Transaktion SE16 starten
- Die Tabelle eingeben bei der Änderungen an den Werten vorgenommen werden soll
- Das Selektionsbild füllen, mit „F8“ starten und auf die Ergebnisliste warten
- Die Zeile im Ergebnis markieren, deren Wert(e) korrigiert werden soll(en)
- Anschließend sich die Details über das Billen-Icon (links oben) anzeigen lassen
- In das Kommandofeld „/h“ eingeben und mit ENTER bestätigen. Es erfolgt die Umschaltung in der Debugger-Modus
- Jetzt in das zu ändernde Feld klicken und ENTER
- Im Editor den Reiter „Variable“ aktivieren, CODE eintragen und den Wert SHOW durch einen der folgenden Werte ersetzen (oder im Coding per Doppelklick auf CODE die aktuelle Einstellung übernehmen):
- EDIT (um die Zeile zu editieren)
- INSR (um eine Zeile einzufügen) oder
- DELE (um eine Zeile zu löschen)
- Mit F8 den Code weiter ausführen lassen und die geänderten Daten sichern.
Nun die einfachere Variante der Tabellenänderung mit Hilfe der SE16N (ECC 6.0)
- Transaktion SE16N starten,
- Tabelle eingeben bei der Änderungen durchzuführen sind,
- In das Kommandofeld „/h“ eingeben und mit ENTER bestätigen,
- Mit F8 starten oder vorher das Selektionsbild füllen,
- Auf dem Reiter Variable dann die folgenden Werte eintragen:
- gd-edit (Bleistift anklicken und den Wert „X“ eintragen),
- gd-sapedit (Bleistift anklicken und den Wert „X“ eintragen),
- Mit ENTER bestätigen und mit F8 ausführen
- Im Ergebnis kann nun korrigiert oder gelöscht werden
Voraussetzung: sowohl für SE16 als auch für SE16N wird ein DEBUG „change“ im Berechtigungsobjekt S_DEVELOP benötigt.
Unterschiede: SE16N erlaubt das Änderen von mehreren Datensätzen, SE16 erlaubt nur einen Datensatz
Protokollierung: Eine SE16 Tabellenänderung wird nur im Syslog protokolliert. Eine Tabellenänderung über die SE16N in den beiden Tabelle SE16N_CD_DATA und SE16N_CD_KEY. Alternativ kann auch der Report RKSE16N_CD_DISPLAY verwendet werden.
Hinweis:Ab ECC 6.0 steht die Funktion „&SAP_EDIT“ im Kommandofeld nicht mehr zur Verfügung. Mit Hilfe von zwei OSS-Hinweisen kann diese Funktion wieder aktiviert werden. 1446530 + 1468636 . Mit Hilfe des Reports RKSE16N_EDIT kann die Funktion in der SE16N dann aktiviert oder deaktiviert werden. Für die Ausführung des Reports wird das Berechtigungsobjekt S_ADMI_FCD mit dem Wert DBA benötigt. In der Tabelle SE16N_EDIT wird protokolliert
Suchen ohne Limit mit der SE16S , Live Video zur SE16S