0

Ä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:

  1. 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 Tabelle Laeger, 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 Tabelle Projekte, 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.)
  2. Tabelle Geraetebewegungen: In dieser Tabelle soll jede Standortänderung protokolliert werden. Sie hat unter anderem folgende Felder:

    • Geraet (Typ: Verknüpfung zur Tabelle Geraete, N:1) – Welches Gerät wurde bewegt?
    • ErfasstAm (Typ: Datum + Uhrzeit) – Wann wurde die Bewegung protokolliert?
    • VonLager (Typ: Verknüpfung zur Tabelle Laeger) – Was war der vorherige Lagerstandort?
    • VonProjekt (Typ: Verknüpfung zur Tabelle Projekte) – Was war der vorherige Projektstandort?
    • NachLager (Typ: Verknüpfung zur Tabelle Laeger) – Was ist der neue Lagerstandort?
    • NachProjekt (Typ: Verknüpfung zur Tabelle Projekte) – 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 und StandortProjekt vor der Änderung, gespeichert in VonLager und VonProjekt).
  • Den neuen Standort (also den neuen Wert von StandortLager oder StandortProjekt in NachLager bzw. NachProjekt, wobei das jeweils andere Nach-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

null
    • Fred
    • gestern
    • Gemeldet - anzeigen

    Here is one way of doing it.

    The important tables/Page are:

    • Move Device
    • Geraete
    • Legar
    • Projekete

    The work flow is:

    1. Select a Device
    2. Select if it goes to a Warehouse or Project
      1. If needed select a date for the move.
    3. Then you select which Warehouse/Project
    4. Click on the Move Device button

    The view shows the locations that the device has gone.

    • Georg_Zischka
    • gestern
    • Gemeldet - anzeigen

    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.

      • Fred
      • gestern
      • Gemeldet - anzeigen

      Can you describe your "rebooking" work flow? Are you doing it through a dashboard?

Content aside

  • gesternZuletzt aktiv
  • 3Antworten
  • 18Ansichten
  • 2 Folge bereits