Domino 9 und frühere Versionen > ND8: Entwicklung
Info bei Änderung eines Dokuments
emadowo:
Hallo Notes-Gemeinde,
in unserer "ToDo"-Datenbank stellen mehrere Kollegen verschiedene "Aufträge" ein, wer im Team was bis wann zu tun hat. Nun möchte der Mitarbeiter über Änderungen in manchen seiner Aufträge informiert werden, wenn einer an seinem Auftrag etwas ändert. (Datenschutz, Persönlichkeitsrechte usw. sind geklärt). Dazu habe ich in der Maske ein Feld "bitte bei Änderung informieren > ja" ein- und eine Ansicht aufgebaut:
Spalte1: Zeitstempel letzte Änderung
Spalte2: wer ist für den Auftrag zuständig
Spalte3: wer hat zuletzt dran geändert (über @Subset($UpdatedBy; -1)
Spalte4: Feld"bitte bei Änderung informieren = ja"
Nun soll ein täglicher Agent über die Ansicht laufen: "wenn ein Eintrag in der Ansicht drin & "bitte bei Änderung informieren"=ja, dann sende Mail an Auftragsinhaber mit DocLink. Der Code:
--- Code: ---zuständig := @DbColumn("":"";"":"";"(ÄnderungsInfo)";2);
letzter := @DbColumn("":"";"":"";"(ÄnderungsInfo)";3);
Info :=@DbColumn("":"";"":"";"(ÄnderungsInfo)";4);
sende_an := @MailSend(Auftrag_zuständig;"";"";"Änderung deines Auftrags";"Der Auftrag: "+Auftrag_kurz+" wurde von "+letzter + " bearbeitet:";[IncludeDoclink]);
@If(
zuständig != letzter & Info!="";sende_an;
"")
--- Ende Code ---
>>> Der Agent verursachte mehrere hundert von falschen MailSends, obwohl nur eine hätte kommen dürfen!? <<<
Was mach ich falsch, wo liegt der Denkfehler? Vielen Dank für Eure Hilfe!
klaussal:
Ich würde die Abfrage auf das Feld mit "ja" beschränken.
Nach dem Senden der Mail wieder zurück auf "nein" oder "" ändern.
Was sagt denn der Debugger zu dem Problem ?
PS: Bevor ich so etwas aktiviere, teste ich das mit dem Debugger.
Ist nämlich etwas peinlich, wenn da so viele falsche Mails rausgehen....
emadowo:
Danke für die prompte Antwort!
Nun habe ich die Ansicht auf "Änderungsinfo = Ja" beschränkt, somit habe ich in der Ansicht nur diejenigen Einträge, die auch tatsächlich eine Änderungsinfo-Mail bekommen sollen.
Dann habe ich das MailSend mal zum Test rausgenommen und durch nen Prompt ersetzt:
--- Code: ---zuständig := @DbColumn("":"";"":"";"(ÄnderungsInfo)";2);
letzter := @DbColumn("":"";"":"";"(ÄnderungsInfo)";3);
Info :=@DbColumn("":"";"":"";"(ÄnderungsInfo)";4);
InfoAn := @DbColumn("":"";"":"";"(ÄnderungsInfo)";5);
@Prompt([Ok];"Werte" ; zuständig + " / " + letzter + " / " + Info + " / " + InfoAn);
--- Ende Code ---
Der Prompt zeigt NICHT die Namen an, die ich in der Ansicht sehe, sondern andere Namen? Mysteriös, das...
koehlerbv:
Der Agent ist völlig falsch. Es braucht auch keine Ansicht dafür.
Diese Zeile
sende_an := @MailSend(Auftrag_zuständig;"";"";"Änderung deines Auftrags";"Der Auftrag: "+Auftrag_kurz+" wurde von "+letzter + " bearbeitet:";[IncludeDoclink]);
sendet jedes Dokument an "Auftrag_zuständig".
Du brauchst eine Bedingung, wann @MailSend erfolgen soll:
@If (DeineBedingungen; @MailSend; "")
Bernhard
emadowo:
So kanns gehen, wenn man im Thread nur unvollständig postet....
Das war mein ursprünglicher Code:
--- Code: ---zuständig := @DbColumn("":"";"":"";"(ÄnderungsInfo)";2);
letzter := @DbColumn("":"";"":"";"(ÄnderungsInfo)";3);
Info :=@DbColumn("":"";"":"";"(ÄnderungsInfo)";4);
InfoAn := @DbColumn("":"";"":"";"(ÄnderungsInfo)";5);
sende_an := @MailSend(ÄnderungsInfoAn;"";"";"Änderung deines Auftrags";"Der Auftrag: "+Auftrag_kurz+" wurde von "+letzter + " bearbeitet:";[IncludeDoclink]);
@If(
zuständig != letzter & Info!="";sende_an;
"");
--- Ende Code ---
Die Ansicht brauche ich dafür, daß man täglich informiert wird, wer an "meinem" Auftrag rumschreibt.
"Deine Bedingungen" wären nämlich dann:
"Wenn das Dokument heute geändert, und zwar nicht von mir, sondern jemand anders, dann sende Mail", darum:
@If( zuständig != letzter & Info!="";sende_an; ... über die Ansicht, weil dann der Agent nicht auf 8.935 Einträgen, sondern auf 20 läuft...
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln