1

Trigger: Datensatz duplizieren und ändern

Hallo, ein Datensatz mit u.a. Feld Termin (Typ Datum) soll dupliziert werden und in dem Duplikat, im Feld Termin, zum Beispiel das heutige Datum eingetragen werden. Folgendes funktioniert, wenn ich es mittels Button auslöse:

let neuTermin := duplicate(this);

neuTermin.(Termin := today())

Wenn ich es mit einem trigger auslöse (vom Auswahlfeld ), wird zwar der Datensatz kopiert, aber das Feld Termin nicht geändert, was mit Botton funktioniert.

Hat jemand einen Tip?

Danke und viele Grüße

Sabrina

12 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Sabrina, meines Erachtens ist der Code korrekt. Um sicher zu gehen, habe ich ihn eben mit der Mac-App gestetet: Dort funktionert er auch. Als Trigger und per Button.

     

    Hilft dir jetzt nicht viel weiter, aber es ist ja doch schon mal ganz gut zu wissen, dass der Code an sich korrekt ist. Nutzt du vielleicht eine andere als die Mac-App?

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

    Hallo,

     

    ändert es etwas, wenn man das today() vorher in eine Variable haut und dieses übergibt? Also:

     

    let myDate := today();
    let neuTermin := duplicate(this);
    neuTermin.(Termin := myDate)

     

    lg, Torsten

    • Sabrina_Winkelmann
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter, besten Dank! Wir arbeiten mit der Web-App. Aber dann weiss ich schon mal, dass ich grundsätzlich nicht falsch liege. Danke fürs Probieren :-)

    • Sabrina_Winkelmann
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten, gute Idee und vielen Dank :-). Hat aber auch nicht geholfen.

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

    Stimmt. Hab's gerade auch noch mal in der Web-App getestet, und da funktioniert es als Trigger tatsächlich nicht. Nicht mal ein openRecord() nach dem duplicate(). Sehr seltsam. Am besten mal den Support anschreiben.

     

    Als Workaround könnte man die Funktion vielleicht generell mit dem Button auslösen und dabei auch das Statusfeld entsprechend ändern (auf die Option, bei welcher der Datensatz kopiert werden soll). Wäre auch nur ein Mausklick, und das Ergebnis dasselbe. Nur so als spontane Idee.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wenn ich mich noch einmischen darf:

    duplicate kann man leider nicht wie z.B create benutzen. Bei duplicate nutze ich immer:

    —-

    duplicate (this);

    last(select Tabelle).Termin:=today()

    —-

    Leo

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

    ... bin mal etwas wagemutig:

     

    Davon ausgehend, dass die Web-App es wohl nicht schafft, den Wert aus duplicate(this) als ID zu übergeben - würde die Variante gehen?:

     

    duplicate(this);
    let neuTermin := last(select TABELLE);
    neuTermin.(Termin := today())

     

    TABELLE zu ersetzen durch den Tabellennamen...

     

    lg, Torsten

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

    Örgs, Leo dieses mal schneller ;)

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

    Siehste, da bin ich auf die Schnelle gar nicht drauf gekommen. Gut, dass ihr mitlest und -denkt!

    • Sabrina_Winkelmann
    • vor 5 Jahren
    • Gemeldet - anzeigen

    vielen Dank für die Tips. Wir testen und ich werde hier die endgültige Lösung schreiben.

    • Sabrina_Winkelmann
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Leonids Lösung genommen mit zusätzlicher User abfrage:

    duplicate(this);
    let neuDatum := last(select Termin where user()=_cu);
    neuDatum.(Datum := today())

    Vielen Dank nochmal.

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

    User-Abfrage macht Sinn - thumbs up!

Content aside

  • 1 „Gefällt mir“ Klicks
  • vor 5 JahrenZuletzt aktiv
  • 12Antworten
  • 3598Ansichten