Autor Thema: Info bei Änderung eines Dokuments  (Gelesen 3161 mal)

Offline emadowo

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Geschlecht: Männlich
  • Danke für dieses Forum!
Info bei Änderung eines Dokuments
« am: 10.01.11 - 15:02:52 »
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;
"")

>>> 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!
Erwin Maier
IT-Administration Genossenschaftsbank
Notes R9.01
Kenntnisse: Formelsprache, Script

klaussal

  • Gast
Re: Info bei Änderung eines Dokuments
« Antwort #1 am: 10.01.11 - 15:11:19 »
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....

Offline emadowo

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Geschlecht: Männlich
  • Danke für dieses Forum!
Re: Info bei Änderung eines Dokuments
« Antwort #2 am: 10.01.11 - 15:34:19 »
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);
Der Prompt zeigt NICHT die Namen an, die ich in der Ansicht sehe, sondern andere Namen? Mysteriös, das...

« Letzte Änderung: 10.01.11 - 15:37:49 von earchy »
Erwin Maier
IT-Administration Genossenschaftsbank
Notes R9.01
Kenntnisse: Formelsprache, Script

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Info bei Änderung eines Dokuments
« Antwort #3 am: 10.01.11 - 15:36:59 »
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

Offline emadowo

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Geschlecht: Männlich
  • Danke für dieses Forum!
Re: Info bei Änderung eines Dokuments
« Antwort #4 am: 10.01.11 - 15:43:53 »
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; 
"");
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...


« Letzte Änderung: 10.01.11 - 15:51:34 von earchy »
Erwin Maier
IT-Administration Genossenschaftsbank
Notes R9.01
Kenntnisse: Formelsprache, Script

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Info bei Änderung eines Dokuments
« Antwort #5 am: 10.01.11 - 15:54:14 »
Sorry, aber das ist leider Quatsch.

Deine Zeile
sende_an :=

wird IMMER durchgeführt. Das ist nicht wie in Python, wo man Funktionen einer Variablen zuweisen kann, und dann die Variable anstelle der Funktion aufruft.

Diese Zeile sendet IMMER eine Mail. Und wenn Mailsend ein Ergebnis zurückliefern würde, dann hättest Du dieses danach in der Variablen "sende_an".

Dein @Mailsend muss ins @If rein...

Gruss
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Info bei Änderung eines Dokuments
« Antwort #6 am: 10.01.11 - 16:12:31 »
Und das @dbColumn holt *alle* Spalteninhalte in eine Liste und nicht die eigentlich gewünschte.

Bernhard

Offline emadowo

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Geschlecht: Männlich
  • Danke für dieses Forum!
Re: Info bei Änderung eines Dokuments
« Antwort #7 am: 10.01.11 - 16:57:53 »
"...völlig falsch ...."  ,  "...Quatsch..."   - ihr habt ja Recht!? Ihr müßt mich ja für den NPVG (=Notesprogrammierervolltrottel) halten....  :)

Somit verzichte ich auf die Ansicht, setze den Agent auf "alle neuen und geänderten Dokumente" und fülle den Agent mit diesem Code:
Code
Heute := @Today;
Zugriff := @Accessed;
zuständig := Auftrag_zuständig;
letzter := @Name([CN];@Subset($UpdatedBy; -1));
@If(
Heute=Zugriff & zuständig != letzter & ÄnderungsInfoAn!="";
@MailSend(ÄnderungsInfoAn;"";"";"Änderung des Auftrags";"Der Auftrag:  < "+Auftrag_kurz+" > wurde von "+letzter + " bearbeitet:";[IncludeDoclink]);
"");

Besser so?
Erwin Maier
IT-Administration Genossenschaftsbank
Notes R9.01
Kenntnisse: Formelsprache, Script

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Info bei Änderung eines Dokuments
« Antwort #8 am: 10.01.11 - 17:26:11 »
Sieht doch ganz gut aus, funktioniert das auch?

Übrigens wird hier niemand für ein NPVG (sollte das nicht NPVT heißen) oder was sonst auch immer gehalten. Dass es unterschiedliche Wissensstände gibt, ist doch völlig normal, sonst bräuchte es dieses Forum nicht.

Noch ein Tipp: Ich würde keine Umlaute in Variablennamen verwenden. Das mag ja funktionieren, aber vertrauen darauf würde ich nicht.

Offline emadowo

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Geschlecht: Männlich
  • Danke für dieses Forum!
Re: Info bei Änderung eines Dokuments
« Antwort #9 am: 11.01.11 - 14:00:20 »
jep, es funzt!   :D

Vielen Dank an euch alle - wie immer habt ihr kompetent und schnell geantwortet!

Erwin Maier
IT-Administration Genossenschaftsbank
Notes R9.01
Kenntnisse: Formelsprache, Script

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz