Verständnisfrage - Referenz auf andere Tabellen
Tach Gemeinde,
habe nur eine Verständnisfrage... :-)
ich arbeite gerade an einem "Firmenkalender". Dort werden zu diversen Objekten (überlassene Fahrzeuge, Verträge, zeitlich befristete Arbeitsmittel und sonstiges was nach gewisser Zeit Aufmerksamkeit benötigt) Wiedervorlagen erstellt und, so hoffe ich zumindest :-), vom zuständigen Mitarbeiter erledigt/abgearbeitet.
Nun habe ich beim neuen Trigger "Nach dem Öffnen der Datenbank ausführen..." eine Funktion eingebaut, welche bei fällig gewordenen Wiedervorlagen eine eMail an den betroffenen Mitarbeiter sendet:
let myArray := (select Wiedervorlage)[Wiedervorlage <= today() and 'eMail gesendet am' = null];
let myCNT := cnt((select Wiedervorlage)[Wiedervorlage <= today() and 'eMail gesendet am' = null]);
if myCNT > 0 then
let myChoice := dialog("e-Mails senden?", "Es sind " + myCNT + " Wiedervorlage(n) fällig, zu denen noch keine eMail versandt wurde(n).
Sollen diese jetzt gesendet werden?", ["Ja", "Nein"]);
if myChoice = "Ja" then
for i in myArray do
let myDate := first((select Wiedervorlage)[Nr = i].Wiedervorlage);
let myText := first((select Wiedervorlage)[Nr = i].Text);
let myMail := first((select Wiedervorlage)[Nr = i].Mitarbeiter.'E-Mail');
let mySubject := "Wiedervorlage fällig am " + format(date(myDate), "DD.MM.YYYY");
let myTXT := "Hallo,
am " + format(date(myDate), "DD.MM.YYYY") + " ist wie folgt fällig:
" + myText + "
Bitte um Erledigung und Rückmeldung.
Mit freundlichen Grüßen,
" + user();
let myHTML := "Hallo,<br><br>am " + format(date(myDate), "DD.MM.YYYY") + " ist wie folgt fällig:<br><br>" + myText + "<br><br>Bitte um Erledigung und Rückmeldung.<br><br>Mit freundlichen Grüßen,<br><br>" + user();
sendEmail({
from: userEmail(user()),
to: myMail,
bcc: userEmail(user()),
subject: mySubject,
text: text(myTXT),
html: myHTML
});
let myWV := first((select Wiedervorlage)[Nr = i]);
myWV.('eMail gesendet am' := now())
end
end
end;
Das Script funktioniert soweit wie gewünscht. Ich hätte jedoch erwartet, dass ich in der for-Schleife direkter auf die Array-Einträge zugreifen kann, hab aber keine Syntax gefunden, die mir die first(select)-Konstruktionen erspart. Hat jemand einen Tipp, wie das "sauberer" geht?
lg, Torsten
3 Antworten
-
Hallo nochmal,
okay, einen Schritt zur Vereinfachung hatte ich ja schon selbst im Code erarbeitet - nur eben falsch eingesetzt. :-)
let myWV := first((select Wiedervorlage)[Nr = i]);
let myDate := myWV.Wiedervorlage;
let myText := myWV.Text;
let myMail := myWV.Mitarbeiter.'E-Mail';
lg, Torsten
-
Hallo Torsten,
man kann die Datensätze in der Schleife direk als i benennen:
---
let myArray := (select Wiedervorlage)[Wiedervorlage <= today() and 'eMail gesendet am' = null];
let myCNT := cnt((select Wiedervorlage)[Wiedervorlage <= today() and 'eMail gesendet am' = null]);
if myCNT > 0 then
let myChoice := dialog("e-Mails senden?", "Es sind " + myCNT + " Wiedervorlage(n) fällig, zu denen noch keine eMail versandt wurde(n).
Sollen diese jetzt gesendet werden?", ["Ja", "Nein"]);
if myChoice = "Ja" then
for i in myArray do
let myDate :=i.Wiedervorlage;
let myText := i.Text;
let myMail :=i.Mitarbeiter.'E-Mail';
let mySubject := "Wiedervorlage fällig am " + format(date(myDate), "DD.MM.YYYY");
let myTXT := "Hallo,
am " + format(date(myDate), "DD.MM.YYYY") + " ist wie folgt fällig:
" + myText + "
Bitte um Erledigung und Rückmeldung.
Mit freundlichen Grüßen,
" + user();
let myHTML := "Hallo,<br><br>am " + format(date(myDate), "DD.MM.YYYY") + " ist wie folgt fällig:<br><br>" + myText + "<br><br>Bitte um Erledigung und Rückmeldung.<br><br>Mit freundlichen Grüßen,<br><br>" + user();
sendEmail({
from: userEmail(user()),
to: myMail,
bcc: userEmail(user()),
subject: mySubject,
text: text(myTXT),
html: myHTML
});
let myWV := i;
myWV.('eMail gesendet am' := now())
end
end
end;
---
Leo
-
Hallo Leo,
ich war mir sicher, dass ich es genau so versucht habe, es aber nicht ging. Aber ja, hab's so jetzt umgesetzt und tut einwandfrei. Das war auch genau die Syntax, nach der ich gesucht habe. Danke Dir!
lg, Torsten
Content aside
- vor 5 JahrenZuletzt aktiv
- 3Antworten
- 1718Ansichten