Show TOC

HintergrundBeispiel: Protokollierung von Eingabefeldern einstellen Dieses Dokument in der Navigationsstruktur finden

 

Die Vorgehensweise zeigt, wie Sie vorgehen müssen, um die Protokollierung für ein Feld einzustellen und Sie noch nicht wissen, ob es an die Änderungsbelegschreibung angeschlossen ist.

Vorgehensweise

  1. Änderungsbelegschreibung testen

    • Führen Sie eine Datenänderung für die gewünschten Felder durch.

    • Überprüfen Sie mit der anwendungsspezifischen Auswertetransaktion oder mit der Transaktion S_AUT10, ob ein Änderungsbeleg erzeugt wurde.

      Achtung Achtung

      In vielen Transaktionen werden nur für Ändern und Löschen, nicht jedoch für das Anlegen eines Objektes, Änderungsbelege erzeugt.

      Ende der Warnung.

    Wenn das System keinen Änderungsbeleg erzeugt hat, fahren Sie mit Punkt 2 (Customizing überprüfen) fort. Wenn ein Änderungsbeleg erzeugt wurde, aber das gewünschte Feld nicht in diesem Änderungsbeleg enthalten ist, fahren Sie mit Punkt 3 (Protokollierungseinstellung des Datenelements vornehmen) fort.

  2. Customizing überprüfen

    Für einige Anwendungen muss die Änderungsbelegschreibung im Customizing aktiviert werden. Beispiele hierfür sind Arbeitsplatz, technischer Platz und Equipment. Für Prozess- und Fertigungsaufträge kann die Änderungsbelegschreibung in einem User-Exit implementiert werden (siehe Hinweis 390635).

    • Prüfen Sie, ob die Änderungsbelegschreibung im Customizing zur Anwendung aktiviert werden kann.

    • Aktivieren Sie, falls möglich, die Änderungsbelegschreibung und fahren Sie mit Punkt 1 fort.

  3. Protokollierungseinstellung des Datenelementes vornehmen

    • Ermitteln Sie das Datenelement des Dynprofelds über die   F1–Hilfe   Technische Information   .

    • Falls dieses Datenelement in einer der Tabellen des Änderungsbelegobjekts, das Sie in Punkt 1 ermittelt haben, enthalten ist, aktivieren Sie die Protokollierung für dieses Datenelement in der Transaktion S_AUT01.

      Welche Tabellen in einen Änderungsbelegobjekt enthalten sind, können Sie mit der Transaktion S_AUT01 oder S_AUT03 ermitteln.

      Wenn Änderungen nicht protokolliert werden, obwohl Sie für das Datenelement in der S_AUT01 das Protokollierungskennzeichen gesetzt haben, dann werden offensichtlich die Feldinhalte des Dynprofeldes nicht an die Änderungsbelegschreibung übergeben. Sie können dies durch Debugging überprüfen.

      Sie können die Änderungsbelege nicht nutzen, wenn die Feldinhalte nicht an die Änderungsbelegschreibung übergeben werden. Überprüfen Sie, ob Sie an dieser Stelle die Tabellenprotokollierung einsetzen können. Fahren Sie dazu mit Punkt 4 (Tabellenprotokollierung testen) fort.

    • Wenn das Datenelement in keiner Tabelle des Änderungsbelegobjektes enthalten ist, dann können Sie dieses Änderungsbelegobjekt nicht nutzen. Überprüfen Sie in diesem Fall, ob Sie an dieser Stelle die Tabellenprotokollierung einsetzen können. Fahren Sie dazu mit Punkt 4 fort.

  4. Tabellenprotokollierung testen

    • Führen Sie eine Änderung des gewünschten Feldes durch.

    • Überprüfen Sie mit Transaktion S_AUT10, ob das System ein Tabellenprotokoll für die Änderung erzeugt hat.

      Hinweis Hinweis

      Damit das System Tabellenprotokolle erzeugt, muss der Systemprofilparameter rec/client in jedem Mandanten aktiv sein, in dem Sie die Tabellenprotokollierung nutzen wollen.

      Ende des Hinweises.
  5. Tabellenprotokollierung aktivieren

    Um die Tabellenprotokollierung zu aktivieren, müssen Sie ermitteln, in welcher Datenbanktabelle die Eingaben eines Dynprofeld gespeichert werden. Gehen Sie hierbei wie folgt vor:

    • Ermitteln Sie das Datenelement des Dynprofelds über F1 -> Technische Information.

      Hier wird angezeigt, ob dieses Datenelement in einer Transparenten Tabelle, einer Struktur oder einem Generierten View enthalten ist.

    • Wenn der Name der Transparenten Tabelle angezeigt wird, dann müssen Sie in der Transaktion S_AUT01 die Protokollierungseinstellungen für die Tabelle aktivieren und anschließend die Tabellenprotokollierung testen (siehe Punkt 4) .

    • Wenn der Name des generierten Views angezeigt wird, dann werden in diesem Fall die Datenänderungen nicht direkt in die Datenbanktabelle geschrieben, sondern über einen View gespeichert. Sie gehen dann folgendermaßen vor:

      • Wechseln Sie ins Data Dictionary und ermitteln Sie dort aus den Tabellen des Views die Tabelle, die das gewünschte Datenelement enthält.

      • Aktivieren Sie in der S_AUT01 die Tabellenprotokollierung für diese Tabelle.

      • Testen Sie die Tabellenprotokollierung (siehe Punkt 4).

    • Wenn der Name der Struktur angezeigt wird, dann sind die Dynprostruktur und die Datenbanktabelle nicht namensgleich.

      Eventuell lässt der Name der Struktur auf den Namen der Datenbanktabelle schließen. Wenn der Name der Struktur keine Schlüsse auf den Namen der Datenbanktabelle zulässt, müssen Sie mit dem nächsten Punkt fortfahren.

      Achtung Achtung

      Für Bewegungsdaten sollte die Tabellenprotokollierung nicht aktiviert werden, da dies eine hohe Datenlast erzeugt und die Performance verschlechtert.

      Ende der Warnung.
  6. Sperreinträge analysieren

    Wenn eine Transaktion von einem Benutzer im Änderungsmodus gestartet wird, dann setzt das System Tabellensperren, um die Daten gegen gleichzeitiges Ändern durch mehrere Benutzer zu schützen. Die in der Transaktion SM12 angezeigten Sperreinträges des ändernden Benutzers können eine erste Aussage darüber geben, in welchen Tabellen die jeweilige Transaktion Daten speichert.

    Hinweis Hinweis

    Die Sperreinträge stellen keinesfalls eine abschließende Aufzählung der Tabellen dar, die durch eine Transaktion verändert wurden.

    Ende des Hinweises.
  7. Laufzeitanalyse durchführen

    Um die Laufzeitanalyse durchführen zu können, benötigen Sie grundlegende ABAP-Kenntnisse. Sie gehen folgendermaßen vor:

    • Führen Sie einen SQL Trace (Transaktion ST05) des Speichervorgangs durch.

      Das System zeigt eine Trace-Liste (ALV Grid) an.

      Hinweis Hinweis

      Änderungen werden häufig asynchron mittels Verbuchungsbausteinen gesichert. Der SQL-Trace muss daher so lange laufen, bis alle Verbuchungsbausteine dieses Vorgangs beendet sind.

      Ende des Hinweises.
    • Suchen Sie in der Liste nach SQL-Statements, die Datenbankänderungen durchführen, z. B. INSERT, UPDATE, DELETE.

    • Überprüfen Sie im Data Dictionary anhand der Bezeichnung der Tabelle, ob die geänderten Werte tendenziell in diese Tabelle gespeichert werden könnten.

    • Prüfen Sie für alle in Frage kommenden SQL-Statements, durch Doppelklick in die Spalte Statement, ob das geänderte Feld im SQL-Statement enthalten ist und ob dieses den geänderten Wert enthält.

      Hinweis Hinweis

      Eventuell sind Konvert-Routinen im Data Dictionary hinterlegt, die den eingegeben Wert konvertieren.

      Ende des Hinweises.
    • Alternativ zur Laufzeitanalyse können Sie auch ein Debugging durchführen.

      Achtung Achtung

      Änderungen werde häufig asynchron mit Verbuchern gesichert. Um die Verbuchungsbausteine debuggen zu können, müssen Sie im Debugger das Verbuchungsdebugging einschalten.

      Ende der Warnung.
    • Aktivieren Sie in der Transaktion S_AUT01 die Protokollierungseinstellungen für die ermittelte Tabelle und testen Sie die Tabellenprotokollierung (siehe Punkt 4).