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. Klicke draufhin auf „Ändern“, um das Profil zu bearbeiten.

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

Möchte man Langtexte aus der Tabelle DBTABLOG und damit Protokolleinträge löschen, verwendet man die Transaktion S_AUT04. Hat man diese Transaktion aufgerufen, kann man im jeweiligen Textobjekt ein Löschkennzeichen setzen bzw. entfernen. Daraufhin kann man zur Löschung vorgemerkte Langtexte in der Transaktion S_AUT05 oder mit dem Report S_AUT_DEL löschen.

Die SAP empfiehlt, dass man die Transaktion S_AUT05 „mit Auswahl“ ausführt oder direkt den Report S_AUT_DEL nutzt. Dabei sollte man ebenfalls zu Testzwecken vorerst kleine Datenmengen löschen.

Für ein performantes Löschen empfiehlt es sich, Indizes auf die Tabelle DBTABLOG anzulegen. Details sind im SAP-Hinweis 531923 beschrieben.

Anwendungslog löschen

Das Anwendungslog 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

Andreas Geiger

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

2 Gedanken zu „Protokollierung in SAP ERP von geänderten Tabelleneinträgen“

Schreibe einen Kommentar