0

Nach Änderung folgendes Skript ausführen

Hallo Zusammen. Wir haben eine Tabelle CRM und je nach Kundenentscheidung (Auswahlfeld) wird ein neuer Datensatz in “Nein-Klärungen” (Untertabelle) erstellt. Nun haben wir einen Code unter Status - “Nach Änderung folgendes Skript ausführen” hinterlegt: 

if Status = 12 then
let me := this;
let myS := (create “Nein-Klärungen”);
myS.(CRM := me);
myS.(Datum := now());
let AA := myS.Datum;
myS.(Datum := null);
myS.(Datum := AA)
end

 

In der Untertabelle “Nein-Klärungen” ist ein Datumsfeld, welches auch einen Code “nach Änderung...” hat, welches ich versuche über die Codezeile:

let AA := myS.Datum;
myS.(Datum := null);
myS.(Datum := AA)

direkt nach erstellen des neuen Datensatzes anzusprechen, da dieser Datensatz im Hintergrund abgelegt wird und nicht über popuprecord aufgerufen wird. Leider funktioniert es nicht und der Code “nach Änderung...” in der Untertabelle “Nein-Klärungen” wird nicht mit ausgeführt. Den gleichen Code haben wir über einen Button ausgeführt, damit funktioniert es. Leider ist es jedoch nicht zielführend, immer nach Statusänderung nochmals einen Button zu betätigen. Weiß jemand Rat?

8 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Paul,

    was genau möchtest du mit dem Datum machen? Wenn es ein Datumsfeld ist, warum verwendest du dann now(). now() ist ein Zeitstempel. Wenn das datumfeld beim erstellen aufs heute gesetzt sein sollte, dann ist der code fürs Statusfeld:
    ---

    if Status = 12 then
    let me := this;
    let myS := (create “Nein-Klärungen”);
    myS.(CRM := me);
    myS.(Datum := totay());
    end

    ---

    noch einfacher ist es wenn du bei dem Datum bei “Standardwert” den Wert Heute auswählst. dann wird beim erstellen des Datensatzes automatisch das Datum von heute gesetzt.

    Jetzt zu dem Trigger nach Änderung. Diese greifen tatsächkich nur nach manuellem Änderung. Damit wird das Risiko endlosschleifen reduziert.

    Leo

    • Marcel_Gerber
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, mit today hat es nicht geklappt, da hatte ich es mit now versucht und das ist hier noch übrig. Ich möchte erreichen, dass der Code “nach Änderung...” vom Datumsfeld der Untertabelle “Nein-Klärungen” angesprochen wird. Hierzu die Codezeilen: 

    let AA := myS.Datum;
    myS.(Datum := null);
    myS.(Datum := AA)

    Das funktioniert jedoch nur über einen Button, nicht über “nach Änderung...” des Auswahlfeldes “Status”. 

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Marcel

    Hast du mal probiert den Code in das Tabellenscript der Untertabelle zu schreiben? Meines Wissens ist es dort egal ob eine manuelle oder automatische Änderung erfolgt.

    • Paul_Krummling
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo UweG, perfekt, das löst das Problem hervorragend.

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich kapiere es nicht. Dieser Kode speichert das Datum des Datensatzes in eine Variable, dann loscht er das Datum und dann schreibt er in dieses Datumfeld das zuvor gespeicherte Datum. Angenommen das Datum steht auf 27.11.2020, dann wird es bei Änderung volgendes passieren:

    let AA := myS.Datum; //Variable AA hat den Wert “27.11.2020”, genauer gesagt ist es 1606431600000//
    myS.(Datum := null); //Das Datumfeld wird geleert
    myS.(Datum := AA) //Das Datumfeld bekommt wieder sein Uhrsprungswert (1606431600000 bzw. “27.11.2020”)

    Wozu sollte es gut sein? 

    Leo

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo
    Das habe ich mich beim betrachten auch gefragt aber nicht getraut nachzufragen. Man steckt halt nicht in den Gedanken des Anderen, Wenn es so für ihn funktioniert ist es OK. Viele Wege führen nach Rom, aber manchmal lohnt es auch eine Abkürzung zu benutzen.;-)
    Uwe

    • Paul_Krummling
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, Hallo Uwe. :) das sollte bewirken, dass in myS.Datum das “Nach Änderung folgendes Skript ausführen” angesprochen wird. Wenn ich sozusagen das Datumsfeld leere und anschließend den Ursprungswert eintrage, wird das “Nach Änderung...” von myS.Datum angesprochen... so dachte ich.

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ach so, der Trigger nach Änderung macht dann was anderes. Ich würde es zwar so nie machen sondern lieber direkt schreiben, aber wie Uwe schon sagte: “viele Wege....”

    Leo

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 8Antworten
  • 543Ansichten