Übersicht

Der RevisionManager ist eine B2B Komponente, mit welcher alle Änderungen am Customizing der B2B protokolliert werden. Es wird zum Beispiel protokolliert welcher User wann eine Extension oder Action angelegt, geändert oder gelöscht hat. Diese Änderungen werden in einer Datanbanktabelle gespeichert und können über die Oberfläche des RevisionManagers angezeigt, gefiltert und gesucht werden.

Funktionsumfang des RevisionManagers

Hier soll kurz der Funktionsumfang des RevisionManagers und die neu hinzugekommen Funktionalitäten aufgelistet werden:

  • Es werden alle Änderungen am Customizing (unter dem Modul ‘Administration’) protokolliert. Dabei werden die folgenden Informationen gespeichert
    • Wann wurde die Änderung durchgeführt
    • Von wem (aktueller B2B_User)
    • Was wurde geändert (Action, Extension, Content Service, Service-Property etc.)
    • Wie (Operation) wurde etwas geändert : SAVE, UPDATE, REMOVE
    • Wie hieß (Name) die geänderte Action, Extension etc.
    • Stand vorher: Inhalt ab der ersten Änderung (maximal 1024 Zeichen)
    • Stand nachher: Inhalt ab der ersten Änderung (maximal 1024 Zeichen)
  • Angelehnt an die Suchmaske des Nachrichten-Monitors der B2B können Änderungen immer abhängig von einem Zeitintervall gesucht werden. Der Standartwert liegt dabei auf dem aktuellen Tag (00:00:00 Uhr - 23:59:59 Uhr).
  • Die Suche kann ebenfalls weiter eingeschränkt werden, indem z.B. ein Benutzer, ein Typ (Extension, Action etc.) und/oder eine Operation (SAVE, UPDATE; REMOVE) ausgewählt werden.
  • Mit dem Radiergummi (rechts vom Suchen-Button) werden alle gesetzten Werte der Suchmaske (inklusive des Suchfelds für die Volltext-Suche) auf den Standard zurückgesetzt.
  • Die Ergebnismenge der Tabelle kann über die Volltextsuche (Suchfeld rechts oben im Modul) weiter eingeschränkt werden. Dabei spielt Groß- und Kleinschreibung keine Rolle.
  • Beim Speichern eines Eintrags wird unterschieden, ob dieser von einem Benutzer (Menschen) oder einer System-internen Komponente (z.B. einem Service) stammt. Dieser Unterschied ist im Monitor anhand des Symbols in der “Wer”-Spalte nachzuvollziehen.
    • Geht man mit der Maus über das Server-Symbol erscheint ein Tooltip, in welchem der exakte Name des Aufrufers steht.
    • Es ist möglich die Spalte “Wer” über die Tabelle zu sortieren. Dadurch können zwei Blöcke unterschieden werden
      • die Einträge, welche durch Benutzer (HUMAN) erstellt wurden
      • und die Einträge, die durch das System erstellt wurden (AUTOMATIC)
  • Beim alten RevisionManager gab es größere Probleme mit der Performance und dem Schreiben von vollständigen Einträgen in die Tomcat-Logfiles. Diese wurden behoben und der Inhalt von Extensions wird nicht mehr in das Log geschrieben. Es erscheint lediglich noch ein Eintrag der folgenden Form:
    • Save RevisionEntry [1434036411062, admin, CONTENT, REMOVE, NLI_1.0_NLC_ALOCAT_EG4009_IDOCXML, HUMAN, …, …] to database.
    • Dabei wird in der Logausgabe der Inhalt (vorher & nachher) des Contents nur noch durch drei Punkte (…) substituiert.
  • Die Datenbankverbindungsdaten müssen nun nicht mehr in einer Extension gepflegt werden und die Datenbankverbindung wird aus dem bereits optimierten Connection-Pool genommen. Nach dem Eintrag auf der Datenbank wird die Connection sofort wieder freigegeben.
  • Wählt man einen Revisions-Eintrag in der Tabelle aus, erscheinen in den zwei Textboxen (links und rechts unten) die Änderungen bzw. der Inhalt des geänderten Objekts.
  • Der RevsionManager kann zur Laufzeit aktiviert bzw. deaktiviert werden, ohne dass ein Neustart der Tomcat-Knoten erforderlich ist.

Einrichten des RevisionManagers

Um den RevisionManager einzurichten, müssen die nachfolgenden drei Schritte durchgeführt werden.

  1. Anlegen der Datenbanktabelle (B2BBP_DATA_REVISION)
  2. Einbinden des Flex-Moduls (über ein Override)
  3. Aktivieren des RevisionManagers (damit dieser zukünftige Änderungen protokolliert)

Diese drei Schritte werden nun im Detail beschrieben.

Datenbank-Tabelle B2BBP_DATA_REVISION erstellen

Die Datenbankscripte zur Erstellung der Tabelle B2BBP_DATA_REVISION können den B2B-Standard-Create-Scripten entnommen werden.

Einbinden des Flex-Moduls

Der RevisionManager wird, wie jedes andere Modul der B2B auch, über einen Override eingebunden. Es muss ein neues Rollenattribut angelegt und einer bestehenden Rolle zugewiesen werden.

Module_RevisionManager

Override={view=mainView,type=AddChild,target=toolBarBox,name=org.b2bbp.ui.uicomponent.MainNavLinkButton,value=[id:'RevisionManager';label:'RevisionManager';isExtension:'false';type:'com.nextlevel.b2b.revision.ui.swf';provider:'b2bbp.org';version:'1.0';container:'applicationViewStack';toolTip:'RevisionManager';width:'180';labelPlacement:'right';textAlign:'left';horizontalGap:'10';paddingLeft:'5';paddingRight:'5';iconURL:'images/famfamfam-icons/eye.png']}

Aktivieren des RevisionManagers

Jetzt kann der RevisionManager aktiviert werden. Dies geschieht, indem die GlobalProperty B3P_USE_REVISION_MANAGER auf true gesetzt wird.

Die Eigenschaft ist per Default true. Sollte also eine B2B ohne Revisionssicherheit betrieben werden sollen oder die notwendige Datenbanktabelle fehlen, muss diese Eigenschaft auf false gesetzt werden.

Optionale Konfigurationsmöglichkeiten

In der Extension B3P_REVISION_MANAGER_CONFIGURATION können optionale (nicht notwendige) Konfigurationen und Einstellungen hinterlegt werden, um das Verhalten der Revision-Komponente zu beeinflussen. Dabei müssen Key und Value durch ein Gleichheitszeichen (=) verbunden werden.

Key Value Description
revision.manager.no.system.entries true Sollen keine Revision-Einträge für Customizingänderungen gespeichert werden, die durch das System selbst durchgeführt wurden (z.B. durch einen Scheduled-Service), sokann diese Property auf “true” gesetzt werden.

Known Bugs

Hinzufügen und Überschreiben von Extensions/ Content

Es ist bekannt, dass beim Hinzufügen und Überschreiben von Extensions und Content nicht der eingeloggte User, sondern der “Default_User” als Bearbeiter eingetragen/gespeichert wird. Dies ist dem Umstand geschuldet, dass der Upload über ein separates Servlet durchgeführt (aufgerufen) wird und am User-Management der B2B vorbei geht.

View Me   Edit Me