Protokollierung in SAP ERP von geänderten Tabelleneinträgen

Eine Protokollierung in SAP ERP kann nützlich und von Vorteil sein. Denn dadurch erkennt man, wer wann eine Datenbanktabelle verändert hat. Dabei gibt es mehrere Möglichkeiten wie Du eine Protokollierung in SAP ERP aktivierst und anschließend auch analysierst. Mit diesem Artikel möchte ich Dir einmal die verschiedenen Lösungsmöglichkeiten zeigen. Viel Spaß.

Voraussetzungen für Protokollierung von geänderten Datensätzen

Technische Einstellungen in SE11

Damit Änderungen von einer Datenbanktabelle unter SAP ERP aufgezeichnet werden und für Analysen in einer Log-Tabelle gespeichert werden, muss die zugehörige technische Einstellung aktiviert werden.

Im ABAP-Dictionary (Transaktion SE11) muss hierfür die technische Einstellung “Datenänderungen protokollieren” aktiv sein. Dadurch werden Änderungen in der Log-Tabelle DBTABLOG gespeichert und können dort eingesehen werden.

Datenänderungen protokollieren im ABAP Dictionary (SE11) in den technischen Einstellungen aktivieren.

Profilparameter rec/client gesetzt

Damit generell die Protokollierung im SAP-System möglich ist, muss der Profilparameter rec/client gesetzt sein. Hierbei gibt es drei verschiedene Parameter

  • ALL – Die Protokollierung ist im gesamten SAP-System aktiv
  • <Mandant> – Die Protokollierung ist beim angegeben <Mandant> aktiv (z.B. 100)
  • OFF – Die Protokollierung ist deaktiviert.

Welcher Parameter gesetzt ist findet man leicht über die Transaktion RZ11 heraus. Nach Aufruf der Transaktion gibt man den Profilparameter /rec/client ein und bestätigt mit Enter oder klickt auf “Anzeigen“.

Profilparameter rec/client in RZ11 anzeigen lassen. Dieser Parameter muss für eine Protokollierung in SAP ERP gesetzt sein.

Unter “Aktueller Wert” kann man sich den Wert anzeigen lassen. In diesem Beispiel ist die Protokollierung deaktiviert (OFF).

Profilparameter rec/client in RZ11 anzeigen lassen. Dieser Parameter muss für eine Protokollierung in SAP ERP gesetzt sein. Der Aktueller Wert ist hierbei entscheidend.

Wenn Du die Protokollierung über den Profilparameter /rec/client aktivieren möchtest, kannst Du über Bearbeiten > Wert ändern den Wert ändern. Oft ist diese Einstellung jedoch deaktiviert weshalb man nicht so einfach diesen Wert ändern kann.

Dann kannst Du den Profilparameter über die Transaktion RZ10 verändern bzw. setzen. Das sollte von der SAP-Basis durchgeführt werden.

Nachdem Du die Transaktion RZ10 aufgerufen hast, wählst Du das Profil das genutzt wird und die jüngste Version. Trage das Profil ein. Nutze hier die F4-Hilfe, um die jüngste bzw. aktuellste Version zu finden.

Profil in der RZ10 bearbeiten, um den Profilparameter rec/client zu setzen. Dieser ist für eine Protokollierung notwendig.

Anschließend wählt man “Anlegen” oder F5 aus, um den Parameter rec/client anzulegen oder bearbeitet den Parameter, wenn er bereits angelegt wurde. Unter “Parameter-Wert” trägt man den gewünschten Wert ein und übernimmt die Anpassung mit “Übernehmen“. Anschließend ist der Profilparameter rec/client gesetzt. Damit die Änderungen übernommen werden, muss man noch einmal auf “Übernehmen” klicken. Alternativ kann man die Übersicht verlassen (F3) und die Abfrage für eine Speicherung mit “Ja” bestätigen.

Profilparameter rec/client in der Transaktion RZ10 setzen, um die Protokollierung in SAP ERP zu aktivieren.

Um das Profil letztlich zu speichern, musst Du in der Eingangsmaske auf “Sichern” oder Strg + S klicken. Nach einem Neustart des SAP-Systems ist der Profilparameter gesetzt. Du kannst anschließend in der RZ11 die Änderung kontrollieren.

Protokollierung anzeigen lassen

Wenn also die Protokollierung im ABAP Dictionary (SE11) gesetzt ist und der Profilparameter rec/client eine Protokollierung im Mandanten zulässt, gibt es zwei Möglichkeiten wie man die Änderungen anzeigen lassen kann:

  • Auswertung von Änderungsprotokollen in SCU3
  • Recherche von geänderten Datenbankeinträgen über DBTABLOG

Auswertung von Änderungsprotokollen in SCU3

Eine gute Möglichkeit, sich Tabellenänderungen anzuzeigen, ist die Transaktion SCU3. Nach Aufruf der Transaktion kann man sich die Protokolle anzeigen lassen in dem man auf den Button “Protokolle auswerten” klickt.

Sollte am Anfang ein Hinweis für die Auswertung von Änderungsprotokollen angezeigt werden, dass die Protokollierung gegenwärtig nicht aktiv ist, ist das ein Hinweis, dass der Profilparameter rec/client noch nicht gesetzt wurde. Natürlich kann man sich trotzdem die Protokolle anzeigen lassen, in dem man auf “Ja” klickt.

Hinweis, dass die Tabellenprotokollierung gegenwärtig nicht aktiv ist in der Transaktion SCU3.

In dem nächsten Selektionsbild gibt man die zu analyiserende Tabelle ein. Stelle sicher, dass der Radio-Button “Tabellen” ausgewählt ist, wenn Du im Eingabefeld “Customizing-Objekt/Tabelle” eine Tabelle eingegeben hast. Möchtest Du ein Customizing-Objekt auswerten, so muss hier natürlich der Radio-Button “Customizing-Objekten” ausgewählt werden.

Bei der Ausgabeoption “ALV Grid Anzeige” bekommst Du die Änderungen im ALV Grid Control angezeigt. Außerdem kannst Du den Auswertungszeitraum anzeigen lassen, wenn Du z.B. nur an einem Tag die Änderungen anzeigen lassen möchtest.

Änderungsprotokoll in der SCU3 für eine Tabelle anzeigen lassen.


Nach der Ausführung siehst Du sehr gut, welcher Benutzer wann in welchem Feld den Wert geändert hat. Dabei wird der alte und der neue Wert angezeigt.

Du kannst natürlich auch Änderungen an Customizing-Tabellen Dir anzeigen lassen.

Bei vielen SAP-Customizingtabellen sind die Protokolländerungen standardmäßig aktiviert. Aber nicht alle. Es ist nicht ungewöhnlich, die Tabellenprotokollierung für Standard-SAP-Konfigurationstabellen zu aktivieren, die für das Unternehmen wichtig sind.

Die Tabellenprotokollierung ist dabei natürlich kein Ersatz für Änderungsbelege. SAP-Standard erzeugt Änderungsbelege für Änderungen an Belegen, die für Verfolgungs- und Audit-Zwecke aufbewahrt werden müssen. Dies gilt für alle wichtigen länderübergreifenden Objekte und die ihnen zugrunde liegenden Tabellen. Aus diesem Grund ist z.B. für eine wichtige Tabelle wie VBAK (Kundenauftragskopf) die Tabellenprotokollierung ausgeschaltet, da bereits Änderungsbelege erzeugt werden.

Recherche von geänderten Datenbankeinträgen über DBTABLOG

Indem die Protokollierung aktiviert wird, werden Änderungen in der Log-Tabelle DBTABLOG gespeichert. Dadurch kann man schon aktuell Änderungen über den Data Browser (Transaktion SE16N) anzeigen lassen. Folgende Schritte sind hierfür notwendig:

  1. Data Browser mit dem Transaktionscode SE16N aufrufen
  2. Tabellenname “DBTABLOG” eingeben
  3. Als Selektionsparameter “TABNAME”die gewünschte Tabelle eingeben
  4. Datumsangaben der Log-Einträge eingrenzen
  5. Ausführen (F8)
  6. Gewünschten Log-Eintrag suchen und mit Doppelklick auswählen
  7. Manuell Einträge wie beispielsweise den Logeintrag/Logkey, den Benutzername und die Operation auswerten

Das kann man auch vereinfachen, wenn man einen eigenen Report programmiert, der die Protokollierung wie gewünscht in einem ALV Grid Control anzeigt. Neben den Selektionskriterien und der Datendeklaration selektiert man zuerst die Daten gemäß den Eingrenzungen.

SELECT  username logdate logtime optype logkey
   INTO CORRESPONDING FIELDS OF TABLE it_alv_table
  FROM dbtablog
  WHERE logdate   IN s_date "Datum
  AND   logtime   IN s_time "Uhrzeit
  AND   username  LIKE s_user "Änderungsuser
  AND   tabname   EQ p_table. "Tabelle

In der internen Tabelle it_alv_table befinden sich nun alle ausgelesenen Datensätze aus der Logging-Tabelle DBTABLOG. Hier ist wichtig, dass die interne Tabelle die Struktur für die Ausgabe besitzt.

Nach der Selektion kann man sich den logkey mit String-Operationen den gewünschten Attributen bzw. Spalten zuweisen.

Anschließend kann man den ALV Grid Control im Output-Module des Dynpros aufrufen oder mit einfachen WRITE-Befehlen die Ausgabe textuell erstellen.

      CALL METHOD r_alv->set_table_for_first_display
        EXPORTING
          "Feldkatalog, gewünschte DDIC-Struktur
          i_structure_name = 'ZLOG_DDIC'
        CHANGING
          "interne Tabelle und Feldkatalog übergeben
          it_outtab        = it_alv_table
          it_fieldcatalog  = t_fcat
        EXCEPTIONS
          program_error    = 1
          OTHERS           = 2.

Protokollierung löschen

Die Tabellenprotokollierung kann mit der Transaktion SLG2 gelöscht werden.

Protokolle in SAP ERP mit der Transaktion SLG2 löschen.

Mit dieser Transaktion sollte man natürlich vorsichtig umgehen. Nur autorisierte SAP-Benutzer sollten die Transaktion SLG2 und das SAP-Programm SBAL_DELETE aufrufen dürfen.

Unter Umständen kann die Transaktion SLG2 für eine lange Zeit laufen. Der OSS-Hinweis 2507213 – SBAL_DELETE runs too long kann dabei helfen.

Über den Autor

Schön, dass Du Dich für SAP ERP interessierst.

Mein Name ist Andreas Geiger und ich bin der Gründer von ERP-UP.de. Mein Ziel ist es, so viel nützliches Wissen wie möglich über das SAP ERP-System zu vermitteln. Ich möchte Dir damit einen Mehrwert bieten. Es freut mich, wenn ich Dir damit helfen kann.

Mehr zu ERP UP

Schreibe einen Kommentar