0

Trigger nach Datensatz löschen

Hi, kann man ein Script ausführen lassen, nachdem ein Datensatz gelöscht wurde? Oder greift da der "nach Änderung" Trigger ebenso?

13 Antworten

null
    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Timo,

     

    AFAIK greift beim Löschen der Änderungs-Trigger nicht.

     

    Man könnte das Löschen von Datensätzen in den Tabelleneigenschaften generell unterbinden und dafür eine Befehlsschaltfläche benutzen:

     

    let me := this;
    let myChoice := dialog("Wirklich löschen?", "Soll dieser Datensatz wirklich gelöscht werden?", ["Ja", "Nein"]);
    if myChoice = "Ja" then delete me else void end;
    ...
    ... weiterer Code
    ...

    lg, Torsten

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten, das wäre eine prima Idee, aber funktioniert sie wirklich? Wird der delete-Befehl ausgeführt, wenn der betreffende Nutzer nicht zum Löschen berechtigt ist?

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten, das klintg wirklich spannend, aber die Frage von Copytexter wäre natürlich entscheidend, damit der Trick auch klappt.

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ich war doch neugierig und habe das gerade mal ausprobiert: Bei mir (Cloud) funktioniert es nicht. Wenn ich "Datensatz löschen" in den Tabellen-Optionen für bestimmte Nutzer einschränke, dann wird auch der delete-Befehl im Schaltflächen-Code nicht ausgeführt. Aber vielleicht gibt's da noch einen "Trick"?

     

    Ansonsten könnte man über den Lösch-Button und einen versteckten Schalter den Datensatz immerhin zum Löschen markieren. Mit der Option, das auch wieder rückgängig zu machen. Und über einen Service-Button könnte ein berechtigter Nutzer dann noch mal kontrollieren und das tatsächliche Löschen veranlassen. 

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hey Copytexter und Timo,

     

    nicht oft, aber in dem Fall habe ich vor dem Post tatsächlich getestet, ob das Skript klappt - und das tut es ;)

     

    lg, Torsten

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Örgs,

     

    stimmt - ich hab's nur in der App probiert, und da geht's :-/

     

    Grml, Torsten

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    in dem Zusammenhang fällt mir weiter auf:

     

    mit vorgenanntem Skript in der App gelöschte Datensätze sind in der App nicht mehr sichtbar, also offensichtlich gelöscht. In der Cloud sehe ich die Datensätze aber nach wie vor...!?

     

    Herrje, das verfehlt das Ziel ja total!?

    App:

    Screenshot 2020-01-24 11.33.07

    Browser:

    Screenshot 2020-01-24 11.33.24

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Na, ist doch gut, zu wissen. So ist das zumindest für die App-Nutzer eine Möglichkeit. Sowas ergibt sich ja oft erst durch Schwarm-Intelligenz. ;)

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ups. Stimmt. Und wenn man in dem per App gelöschten Datensatz in der Cloud was ändert, isser auch in der App wieder da.

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    ... in Berechnungen wird der vermeintlich gelöschte Datensatz auch nach wie vor berücksichtigt. :-/

     

    Sehr böse Falle! ;-/

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Schwarm-Verwirrung. 🤨

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    So ich habe bei meinen User es so gelöst: 

    1. Niemand darf den Datensatz löschen außer Admin

    2. Zum Löschen des Datensatz gibt es einen Button und ein verstecktes "Ja/Nein" Feld "DELETED". Beim Löschen gibt es erst Warnung und dann ->DELETED:=true; closeRecord()

    3. In der Tabelle ist lesbar wenn DELETED or userIsAdmin() eingestellt 

    4. Bei Admin gibt es eine Ansicht aller gelöschten Datensätzen mit dem Button "Gelöschte Datensätze entgültig löschen" 

    Leo

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 4 Jahren
    • Gemeldet - anzeigen

    schick, aber dann doch aufwändigm, wenn man das an jeder Tabelle machen will. Das wäre doch ein feiner Feature Request, diese Logik grundsätzlich zu aktivieren/deaktivieren und einen "Papierkorb" einzuführen?

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 13Antworten
  • 2737Ansichten