Änderungsprotokoll für Gerätestandorte erstellen – Wo und wie Trigger setzen?
Hallo liebe Ninox-Community,
ich bin gerade dabei, für meine Geräteverwaltung eine Funktion zu implementieren, mit der ich protokollieren kann, wann welches Gerät welchem Standort zugewiesen wird. Meine Geräte können entweder in einem meiner Läger oder bei einem Kunden auf einem Projekt stehen.
Dafür habe ich folgende Tabellenstruktur:
Tabelle
Geraete
: Hier werden meine einzelnen Geräte verwaltet. Relevant für die Standortzuweisung sind hier vor allem folgende Felder:Seriennummer
(Text, eindeutig)Bezeichnung
(Text)StandortLager
(Typ: Verknüpfung zur TabelleLaeger
, N:1) – Zeigt auf das Lager, in dem sich das Gerät aktuell befindet, falls es in einem Lager ist.StandortProjekt
(Typ: Verknüpfung zur TabelleProjekte
, N:1) – Zeigt auf das Projekt, dem das Gerät aktuell zugeordnet ist, falls es auf einem Projekt ist.- (Es gibt noch ein Feld
StandortTyp
(Auswahl: "Lager", "Projekt"), das anzeigt, welche der beiden Verknüpfungen aktiv ist.)
Tabelle
Geraetebewegungen
: In dieser Tabelle soll jede Standortänderung protokolliert werden. Sie hat unter anderem folgende Felder:Geraet
(Typ: Verknüpfung zur TabelleGeraete
, N:1) – Welches Gerät wurde bewegt?ErfasstAm
(Typ: Datum + Uhrzeit) – Wann wurde die Bewegung protokolliert?VonLager
(Typ: Verknüpfung zur TabelleLaeger
) – Was war der vorherige Lagerstandort?VonProjekt
(Typ: Verknüpfung zur TabelleProjekte
) – Was war der vorherige Projektstandort?NachLager
(Typ: Verknüpfung zur TabelleLaeger
) – Was ist der neue Lagerstandort?NachProjekt
(Typ: Verknüpfung zur TabelleProjekte
) – Was ist der neue Projektstandort?GebuchtDurchMitarbeiter
(Typ: Nutzer) – Welcher Mitarbeiter hat die Änderung vorgenommen? (Sollte automatisch der eingeloggte Nutzer sein)
Meine Frage:
Ich möchte nun erreichen, dass immer dann, wenn sich in der Tabelle Geraete
das Feld StandortLager
ODER das Feld StandortProjekt
ändert, automatisch ein neuer Eintrag in der Tabelle Geraetebewegungen
erstellt wird. Dieser Eintrag soll festhalten:
- Welches Gerät (
Geraet
) betroffen ist. - Den Zeitpunkt der Änderung (
ErfasstAm
). - Den vorherigen Standort (also die Werte von
StandortLager
undStandortProjekt
vor der Änderung, gespeichert inVonLager
undVonProjekt
). - Den neuen Standort (also den neuen Wert von
StandortLager
oderStandortProjekt
inNachLager
bzw.NachProjekt
, wobei das jeweils andereNach
-Feld dann leer/null sein sollte). - Den Benutzer, der die Änderung durchgeführt hat.
Wo und wie setze ich dafür am besten einen "Trigger nach Änderung"? Sollte ich das im Tabellen-Trigger von Geraete
machen oder separate Trigger für die Felder StandortLager
und StandortProjekt
verwenden? Wie stelle ich sicher, dass ich sowohl die alten (old()
) als auch die neuen Werte korrekt erfasse und in die Geraetebewegungen
-Tabelle schreibe, besonders wenn sich ein Gerät z.B. von einem Lager direkt zu einem Projekt bewegt (oder umgekehrt)?
Ich habe schon einige Ansätze versucht, bin mir aber bei der optimalen Struktur und der Verwendung von changed()
und old()
in diesem Szenario unsicher, um eine saubere Protokollierung zu erreichen.
Vielen Dank im Voraus für eure Tipps und Ideen!
Viele Grüße
Georg
3 Antworten
-
Here is one way of doing it.
The important tables/Page are:
- Move Device
- Geraete
- Legar
- Projekete
The work flow is:
- Select a Device
- Select if it goes to a Warehouse or Project
- If needed select a date for the move.
- Then you select which Warehouse/Project
- Click on the Move Device button
The view shows the locations that the device has gone.
-
Danke für die Antwort. Ich hätte das ganze gerne automatisiert. D.h. es soll bei der Umbuchung automatisch geschehen und nicht erst noch Datum, etc. ausgewählt werden.
Content aside
- gesternZuletzt aktiv
- 3Antworten
- 18Ansichten
-
2
Folge bereits