Domino 9 und frühere Versionen > ND6: Entwicklung

Täglicher Agent - Datumvergleich - Email senden

<< < (2/2)

ascabg:
Hallo,

Warum holst Du Dir die Werte aus den entsprechenden Felden mit @GetField(...) in eine Variable?
Du kannst doch die Felder direkt ansprechen.


--- Code: ---@If(@Today <= @Adjust(verleihdatum; 0; 0; -7; 0; 0; 0)

--- Ende Code ---

Warum fragst Du die 'Datumsdifferenz' (@Adjust) eigentlich zweimal ab? (zumal die zweite Abfrage warscheinlich eh nichts bringt, da diese sich im Else-Zweig Deiner @If-Abfrage befindet und somit nie zum Zuge kommt.


Andreas

Tode:
In der Formelspracher verzichtet man im Normalfall auf verschachtelte Ifs und macht etwas, was man in anderen Programmiersprachen eigentlich nicht macht: Man bricht einfach die Code- Verarbeitung an passenden Stellen per @Return ab....

Laut Deiner Anforderung muss es im übrigen @Today != @Adjust( verleihdatum; 0 ; 0 ; -7; 0 ; 0 ; 0 ) heissen. Deine Variante bedeutet, dass bis sieben Tage vorher jeden Tag eine Mail versendet wird, danach nicht mehr (also selbst wenn Du AB sieben Tage vorher jeden Tag eine Mail versenden willst, ist das falsch, dann müsste es @Today >= @Adjust... heissen).

Dein Code würde (besser aber noch lange nicht gut) so aussehen:

--- Code: ---@If( @Today != @Adjust(datum;0;0;-7;0;0;0) | MailSent = "1"; @Return( "" ) ; "" );
REM "Der Code hier wird nur ausgeführt, wenn der @Return oben die Ausführung nicht ebgebrochen hat";
datum := @Text(verleihdatum));
name := @Name([CN];an);

details := "Hallo Frau/Herr " + name + ","+ @NewLine + @NewLine+ "Bitte denken Sie daran Ihr geliehenes Gerät zuzückzugeben." + @NewLine + @NewLine +
"Anbei Ihre Informationen zu dem Gerät:" + @NewLine + @NewLine +  
"-------------------------------------------------" +@NewLine +
"Gerät: " + neuGerät  + " " + Workstationfeld + " " + Notebookfeld + " " + Sonstigefeld + " (" + neuHostname + ")" +  @NewLine +
"-------------------------------------------------" + @NewLine +
"Verliehen bis: " + datum + @NewLine +
"-------------------------------------------------" + @NewLine +
"Sonstige Infos: " + infos + @NewLine +
"-------------------------------------------------" + @NewLine;

@MailSend(an; verleiher;"";"Erinnerung zur Rückgabe";"";details);
FIELD MailSent := "1";

--- Ende Code ---

Amelia:

--- Zitat ---Warum holst Du Dir die Werte aus den entsprechenden Felden mit @GetField(...) in eine Variable?
--- Ende Zitat ---
Wie vorhin schon erklärt hatte ich das so, weil ich dachte das Notes sonst das Feld nicht verarbeiten kann, weil ich keinen richtigen Rückgabewert des Feldes hatte.


--- Zitat ---In der Formelspracher verzichtet man im Normalfall auf verschachtelte Ifs und macht etwas, was man in anderen Programmiersprachen eigentlich nicht macht
--- Ende Zitat ---
Okay, Notes ist für mich in vielen Dingen noch sehr unversändlich, gerade was die Formelsprache betrifft.


Das mit dem Adjust hatte ich so aus dem anderem Thread den ich gepostet hatte übernommen. Da ich mir selbst nicht ganz sicher war.


Schon mal vielen herzlichen Dank für die große Hilfe, werde mich gleich dran setzen und versuchen es umzusetzen.

Habe noch eine Frage an dich Tode:
Du hattest mir ja einen Vorschlag für den Code wie er aussehen könnte geschickt, und unter anderem "datum := @Text(verleihdatum));" mit aufgeführt. Brauche ich nun das @Text, oder nicht? So wie du ja schon geschrieben hattest, eigentlich nicht? Hatte mich jetzt etwas verwirrt. Ich bin anfangs davon ausgegangen, da prompt mir ohne das @text davor keinen Wert ausgibt, dass das Datum dann auch nicht mit @Adjust verglichen werden kann.

Tode:
Du willst das Datum in Deinem MailTEXT verwenden... Ein Datum kann man aber nicht mittels "+" mit einem Text verknüpfen (ungültiger Operator, Text erwartet). Deshalb die Hilfsvariable, aber eben nur für den Text der Mail.

Ach: Habe noch einen Fehler in meiner Formel entdeckt... in der ersten Zeile muss es natürlich heissen
@Adjust(verleihdatum;0;0;-7;0;0;0)

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln