Domino 9 und frühere Versionen > ND9: Entwicklung

Agent mit @mailsend

(1/4) > >>

addict84:
Guten Morgen Community,
ich bin neu hier und wende mich gleich mit einer (für mich großen) Problemstellung an euch.
In der Forumssuche habe ich leider keine Antworten gefunden.

Also ich nutze in einer DB eine bestimmte Maske um Informationen zu sammeln und allen Mitarbeitern zur Verfügung zu stellen. Außerdem möchte ich das ein bestimmter Kreis bei einem neuen Dokument per Mail mit informiert wird (mit DokLink). Soweit so gut. Der Agent läuft auch, aber jedesmal wenn ich an dem Agenten etwas ändere (z.b. die Empfänger), sendet er für alle Dokumente an alle Empfänger erneut ein Mail.
Es scheint mir fast, als hätte er vergessen dass er das schon mal gemacht hat.
Außerdem sendet er auch gelöschte (obwohl ich das vermeintlich ausgeklammert habe)

Dokumentenauswahl:  Benutzt Maske 'Knowledgebase-Eintrag'
Aktion: @MailSend("Max Muster/";"";"";"Neuer Knowledgebase-Eintrag";"";"Es liegt ein neuer oder geänderter Knowledgebase-Eintrag vor " + @NewLine +"Thema: " + Kurzbeschreibung + @NewLine; [IncludeDoclink]);
SELECT (LÖSCHDATUM = "")
Trigger: Nachdem Dokum. erstellt oder geändert wurden

Für euch ist es bestimmt eine recht einfache Sache, aber ich kann mir beide Phänome nicht erklären (also das alle gesendet werden sobald ich etwas ändere und das gelöschte auch mit dabei sind (gelöschte sind aber nur bei der"ersten Runde" mit dabei wenn ich danach etwas ändere undweroder lösche, werde ich darüber nicht informiert, was auch so sein soll))


ps. sorry für den Roman ;-)

Peter Klett:
Willkommen im Forum!

Als erstes würde ich den Empfänger definierbar machen (Einstellungsdokument, Profildokument o.ä.), dann brauchst Du den Agenten nicht anzufassen, wenn sich der ändert.

Ein neu gespeicherter Agent "vergisst" alles, was vorher war, deshalb würde ich mich nicht auf solche Steuerungen verlassen. Markiere die Dokumente, zu denen eine Mail gesendet wurde und berücksichtige das beim Versand. Z.B. so (ungetestet, ich würde das in Script schreiben, in diesem Jahrtausend habe ich wohl keinen Formelagenten solcher Art geschrieben)


--- Code: ---@If (Gesendet = "";@MailSend("Max Muster/";"";"";"Neuer Knowledgebase-Eintrag";"";"Es liegt ein neuer oder geänderter Knowledgebase-Eintrag vor " + @NewLine +"Thema: " + Kurzbeschreibung + @NewLine; [IncludeDoclink]); "");
FIELD Gesendet := "1"

--- Ende Code ---

addict84:
Sehr gute, Danke Peter.
Das werde ich mal probieren. Mit LS kenne ich mich leider nicht aus, bin noch Laie im Bereich ;-)

Die editierbare Einstellung würde ich dann mit dblookup versuchen?!

VG
Marcel

Peter Klett:
@DBLookup ist eine Möglichkeit, wenn Du ein separates Dokument für Einstellungen hast / baust.

Alternativ kannst Du auch mit Profildokumenten arbeiten, @GetProfileField und @SetProfileField wären da die relevanten Formelbefehle.

Ist Geschmacksache ...

addict84:
Profildokumente sind mir ehrlich gesagt noch recht fremd, daher würde ich da bei mir selbst eine größere Baustelle aufmachen müssen
@dblookup ist mir da aktuell lieber

leider funktioniert folgende Variante nicht:
(es gibt ein Einstelldokument in dem die Namen der Kollegen Max Muster und Maxi Tester als Liste stehen)

Empfänger:=@Implode(@DbLookup("":"NoCache";EinstellServer : EinstellDatenbank;"Funktionen";"Test";2);":");

@If (LÖSCHDATUM = "" & gesendet = "";@MailSend(Empfänger;"";"";"Neuer Knowledgebase-Eintrag";"Es liegt ein neuer oder geänderter Knowledgebase-Eintrag vor " + @NewLine +"Thema: " + Kurzbeschreibung + @NewLine;""; [IncludeDoclink]);"");
FIELD gesendet:="1";


Trage ich die Namen konkret in den Agenten, dann macht er auch das was er soll, über die Variable leider nicht.
Frage ich mit einem Prompt ab wie die Empfänger aussehen kommt Max Muster: Maxi Tester

mir fehlt also irgendwie die Brücke aus diesem String dann eine kompatible Form für den Versand zu erstellen

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln