History

Allgemein

In Konquadrat wird standardmäßig jede Änderung von jedem Objekt genau protokolliert! Es wird sich gemerkt, wer wann und mit welche IP ein Objekt erstellt oder verändert hat. Bei Änderungen wird die genaue Änderung protokolliert, also der alte Wert und der neue Wert.

Diese Informationen werden in den "kon2_history*" -Tabellen hinterlegt. Wenn man sich im Backend in der Detailansicht von einem Objekt befinden, kann man die dazugehörige Historie durch einen klick auf das Änderungsdatum (in der linken Spalte) anzeigen. Zusätzlich gibt es im Backend noch eine "komplette History"-Ansicht unter #history. Das Grid dort kann gefiltert und sortiert werden, um z.B. alle Änderungen von einem Benutzer zu finden.

Es gibt verschiedene Arten von History-Einträgen:

  • CREATE
  • UPDATE
  • CONFIG_RELOAD
  • DOWNLOAD_FILE
  • (IMPORT, wird nicht mehr verwendet)
  • (VIEW, wird nicht benutzt)

Neben der Origin wird zusätzlich noch eine TaskID abgespeichert. In bestimmten Controllern wird eine TaskID generiert und alle Änderungen in diesem Controller werden als ein Task gehandelt. Controller bei denen eine TaskID generiert wird: Frontend\Workflow, Backend\Details::save(), Backend\Objects::execute(), Backend\Objects::remove() und Backend\Task::process() (TaskId wird im Task mit abgespeichert).

Dataorigin

In der History wird es sich gemerkt, wer etwas mit dem Objekt gemacht hat. Dies muss nicht zwingend ein Benutzer sein! Für diesen Zweck gibt es das ObjectTemplate \com\setasign\Konquadrat\Object\Custom\Dataorigin.

Alle Objekte die dieses ObjectTemplate implementieren MÜSSEN die Methode "public function getDataoriginName(): string;" implementieren!

Standardmäßig implementieren folgende ObjectTemplates das Dataorigin Template:

  • UserTpl und damit auch User
  • TaskTpl und damit auch alle Tasks/Exporte/Importe

Die History Klasse

Die \com\setasign\Konquadrat\Object\History Klasse ist eine Helferklasse um die Dataorigin zu setzen und um die History auszulesen.

Die Klasse bietet folgende Methoden:

addDownload()

Adds a download history entry.

getCreator()

getCreatorId()

Get the id of the creator.

getLastChange()

Get the last change as array.

getLastEditor()

getLastEditorId()

Get the id of the last editor.

getUpdateDetails()

Get the update details for $historyId.

setOrigin()

Sets the actual origin and ip. This method will always set both if one parameter is null it will be reset.

setTaskId()

Sets the actual task id.

showHistory()

Get the history for the object $objectId.