SOG ERP (VACOS) kann so eingestellt werden, dass Veränderungen in der Datenbank, die über Programme durchgeführt werden, automatisch in der Änderungsprotokolltabelle "dbchglog" festgehalten werden.
Die Aktivierung erfolgt durch Anlegen einer Steuerdatei mit dem Namen
${PROJ}\etc\dbchglog\{TABELLE}.cfg
Als "{TABELLE}" wird dabei der Name der Datenbank-Tabellen verwendet.
Die Steuerdatei hat folgenden Inhalt:
# Wenn bei einem Insert alles protokolliert werden soll (sonst nur key_1)
# AllOnInsert
# Wenn bei einem Delete alles protokolliert werden soll (sonst nur key_1)
# AllOnDelete
# Abweichender Tabellenname unter dem Protokolliert wird.
# logname f000xx
# Folgende Felder nie Protokollieren:
ignore felda
ignore feldb
Bedeutung der Einträge:
Ausschalten der Protokollierung für bestimmte Datenfelder einer Tabelle. Ein Eintrag pro Zeile! "ignore" und "noignore" darf nicht gemischt werden.
Ausschalten der Protokollierung für alle Datenfelder, bis auf die per "noignore" erwähnten. Ein Eintrag pro Zeile! "ignore" und "noignore" darf nicht gemischt werden.
Protokollierung aller Datenfelder der Tabelle (die nicht über "ignore" ausgeschlossen wurden) bei einer Insert-Operation.
Protokollierung aller Datenfelder der Tabelle (die nicht über "ignore" ausgeschlossen wurden) bei einer Delete-Operation.
Der Eintrag "logname" definiert den Tabellenname, unter dem der Protokolleintrag gespeichert wird. Hier kann z. B. für eine SQL-View definiert werden, dass Veränderungen, die über die View durchgeführt werden, unter dem Namen der Tabelle protokolliert werden. Eine Umbenennung von Feldnamen ist nicht möglich.
Aktivierung über Umgebungsvariable
Die Protokollsystematik kann auch durch Setzen einer Umgebungsvariablen aktiviert werden.
Die Konfigurationsdateien werden zusätzlich für die für die Interpretation von "ignore" und "logname" verarbeitet.
Name der Variablen: SOGWTDbChgLogAll
Mögliche Inhalte:
Protokollierung für alle Datenfelder aller Tabellen aktivieren.
Zusätzlich "AllOnInsert".
Zusätzlich "AllOnDelete".
Beispiel:
SOGWTDbChgLogAll=1
Aktiviert die Protokollsystematik für alle Tabellen.
SOGWTDbChgLogAll=3
Aktiviert die Protokollsystematik für alle Tabellen incl. "AllOnInsert".
Bis Release einschließlich 1912:
Vor der Einschaltung des Logs (z. B. für die Tabelle f010) muss überprüft werden, ob auf dieser Tabelle ebenfalls Views laufen (z. B. f710, f910). Wenn es auf die betreffende Tabelle Views gibt, müssen diese mit konfiguriert werden.
Bei der Konfiguration über die Konfig_Datei f710.cfg und f910.cfg muss der logname=f010 gesetzt werden. In der Konfig-Datei wird sich also immer auf die wirkliche Tabelle bezogen.
Views mit dem Namen f5XX müssen nicht konfiguriert werden, da diese nur einen lesenden Zugriff zulassen. Eine Änderung (schreibender Zugriff) ist ausgeschlossen.
Ab Release einschließlich 1912:
Durch die Umstellung auf SQL-Server Trigger zur Versorgung der DbChgLog (siehe Releasenote fun:relnode:20120509-142340) ist es nicht mehr notwendig, für vorhandene Views eine gesonderte DbChgLog-Konfigurationsdatei anzulegen.
Nach Aktivierung oder Deaktivierung muss zwingend der SQL zcview2.sql ausgeführt werden.
#dbchangelog #change #db #dbchange