0

Mein Trigger (lfd. Nr.) funktioniert nicht mehr ?

Hallo mein Trigger (bei neuem Datensatz) funktioniert nicht mehr?

let AktJahr := year(today());
let LaufNr := number(max((select TAUFGABEN where substr(AufgabenID, 0, 4) = AktJahr).substr(AufgabenID, 5, 3))) + 1;
AufgabenID := AktJahr + "-AG-" + format(LaufNr, "000")

Hat mir jemand einen Tipp woran das liegen kann?
Tabellenname und Feld sind richtig beschrieben ( es kommt auch keine Fehlermeldung)?

Danke Euch im Voraus!

7 Antworten

null
    • info.51
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Die DB ist lokal ! 

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Erstelle mal ein Berechnungsfeld und trage folgendes Script ein:

    debugValueInfo(let AktJahr := year(today());let LaufNr := number(max((select TAUFGABEN where substr(AufgabenID, 0, 4) = AktJahr).substr(AufgabenID, 5, 3))) + 1;AktJahr + "-AG-" + format(LaufNr, "000"))

    Wenn das Ergebnis dem entspricht was du erwartest, scheint es, daß das Script im Trigger nicht ausgeführt wird, wenn ein neuer Record angelegt wird.

    • info.51
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe vielen Dank erstmal 

    Habe dein Script eingebaut und es erscheint dort auch immer nur die gleiche AufgabenID-Nr:   "2022-AG-001" egal wieviel Datensätze ich angelegt habe. 
    Was kann ich tun damit der Trigger wieder bei jedem neuen Datensatz läuft?

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Dann stimmt das Script für die LaufNr nicht.
    Zerlege das Script in Einzelteile und füge es dann Stück für Stück wieder zusammen. Schau bei jedem Schritt mit formatJSON(Script) was jeweils rauskommt und ob es mit dem was du erwartest übereinstimmt. Damit kannst du eingrenzen an welcher Stelle es hakt.

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

    Ahoi, ich würd's mal so versuchen:

    let myJ := format(today(), "YYYY");
    let myN := max((select TAUFGABEN where substr(AufgabenID, 0, 4) = myJ).substr(AufgabenID, 8));
    AufgabenID := myJ + "-AG-" + format(number(myN) + 1, "000")
    

    PS: Heißt die Tabelle wirklich  TAUFGABEN?

    • info.51
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe

    tausend Dank für Deine Hilfe. Mit Deinem Script klappt es wieder.

    :-))

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      info Danke, aber die Meriten gebühren Axel.

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 7Antworten
  • 72Ansichten
  • 3 Folge bereits