EleLa - Elektronik Lagerverwaltung Hilfe

Projekte Version

Hier werden die Versionen eines Projektes gezeigt. Jedes mal wenn man ein Projekt versioniert erscheint hier ein neuer Eintrag mit dem Stand.

Einträge können aus dieser Liste nicht gelöscht werden.

Mit dem Status der Freigabe wird gezeigt welcher Stand gefertigt werden darf.

Status:

Farbe Status
NF nicht freigegeben
FA Freigabe aktiv
F Freigabe erteilt
P Prototyp
S storniert
G gesperrt

Auch kann der Projektstand mit einem Bauteil verknüpft werden, damit man ein Lagerplatz zuweisen kann.

Wie ein Projekt versioniert oder wieder für Änderungen freigegeben wird ist unter "Projekt" beschrieben.

Taste Beschreibung
Speichere Änderung
Abbruch ohne speichern
Druck als Tabelle. Siehe "Drucken".
Mit Rechtsklick kann eine einzelne Position gedruckt werden.
Mit Rechtsklick kann eine das Projekt sowie mit deren Positionen anhand Vorlage gedruckt werden. Es sind mehrere Vorlagen möglich.
Filter anhand Suchmaske Schnellsuchen-Feld
Auswahl Handbuch / Öffne Handbuch
Auswahl Bauteil / gehe zu Bauteil
Auswahl Datum für Termine
Schneller Etikettendruck mittels Info-Zeile

Funktionsweise der Versionierung innerhalb von EleLa:

Hier ist beschrieben wie die Datensätze innerhalb der Datenbank organisiert sind, um eine Version der Projekte und Positionen abbilden zu können.

Tabelle "Projekt":

In Projekt gibt es 2 Spalten die für die Versionierung wichtig sind:

  • "ID_ID_Version": Hier wird die ID vom aktuellen Projekt gespeichert.
  • "ProjektVersion_ID": Hier is die ID von der Tabelle "ProjektVersion" abgelegt.

Wenn nun eine Version erzeugt wird, so erzeugt EleLa einen Datensatz in der Tabelle "ProjektVersion". Zugleich wird die ID von ProjektVersion in der Tabelle Projekt.ProjektVersion_ID gespeichert. Da hier nun eine Zahl drin steht bedeutet dies dass der Stand vom Projekt eingefrohren ist.
Wenn nun das Projekt für die Änderungen frei gegeben wird, so wird der Datensatz aus Tabelle "Projekt" kopiert. In der Kopie wird "ID_ID_Version" mit der "ID" vom Original Projekt gesetzt. Anschließend wird im Original Projekt die Spalte "ProjektVersion_ID" auf NULL gesetzt. Dieser Vorgang wird für jedes Versionieren / wieder frei geben wiederholt und so können für das gleiche Projekt mehrere Datensaätze in der Tabelle "Projekt" entstehen. Das Original Projekt ist immer das Projekt mit der Spalte "ID_ID_Version"=NULL.

Tabelle "ProjektPos":

Die Spalte "Projekt_ID" zeigt immer auf das Original Projekt mit der "ID" vom Projekt, niemals auf die Kopie der Version vom Projekt. Jede ältere Version einer Position zeigt in der Spalte "ID_ID_Version" auf die Original/Aktuelle Version. In der Spalte "ProjektVersion_ID" steht die ID zur Tabelle ProjektVersion. Wenn in "ProjektVersion_ID" NULL steht, so ist diese Position eine aktuelle Änderung und noch nicht versioniert. Wenn in "ProjektVersion_ID" eine Zahl drin steht, so ist diese Position mit einer Version verknüpft. Wenn nun die Position geändert wird, so wird zu erst diese Datenzeile kopiert, in der Kopie wird die Originale "ID" von der Position eingetragen und dann im Original Datensatz "ProjektVersion_ID" auf NULL gesetzt. Somit ist der versionierte Stand gespeichert und die neue Änderung verfügbar. Ein ProjektPos Datensatz wird erst dann kopiert wenn der Datensatz tatsächlich geändert wird.
Für die Ansicht der gewählten Version der Projekt Position muss EleLa alle ProjektPos Datensätze einlesen und jede einzelne Position überprüfen welche Version davon die zu zeigende ist. Dabei muss berücksichtigt werden, dass einzelne Positionen nicht in jeder Version geändert wurden, dann ist eine ältere Version von der Position die zu zeigende aktuelle, bzw. wenn eine Position in einer früheren Version gelöscht wurde (ProjektPos.Geloescht=1), so soll diese in der aktuellen Version nicht angezeigt werden. Auch neu hinzu gefügte Positionen sollen in der Ansicht einer älteren Position nicht gezeigt werden.
Daher ist eine "einfache" SELECT Abfrage um die ProjektPos Positionen nicht möglich wenn mit der Versionierung gearbeitet wird.


© 2010-2024 by Markus Müller