Autor Thema: Einladungen verteilen  (Gelesen 3066 mal)

Offline Wupperhannes

  • Frischling
  • *
  • Beiträge: 38
  • Geschlecht: Männlich
Einladungen verteilen
« am: 01.07.09 - 21:07:47 »
Ich habe hier ein Problem dass ich nicht gelöst bekomme. Vielleicht kann mir jemand von Euch helfen.

Ich habe ein Maildatenbank an die Einladungen versendet werden. Immer wenn eine Einladung kommt (Agent startet vor Eintreffen der Mail) dann bearbeitet der Agent sie folgendermaßen: Es wird eine Kopie der Einladung erstellt (Form=Notice), aus einer Adressgruppe wird die Liste der neuen Empfänger geladen, an jeden Eintrag in der Liste wird diese Kopie als Einladung versendet. Danach wird der Agent beendet und die Datenbank speichert in vorgesehener Weise die Einladung.

Das alles funktioniert hervorragend wenn die Adresse der Maildatenbank im Feld "required" der Einladung steht. Steht sie dagegen im Feld "optional" oder "FYI" dann hängt sich der Agent in einer Schleife auf. Es werden tausende Kopien der Einladung in der Maildatenbank gespeichert und somit auch tausende Einladungen and die Empfängerliste versendet.

Ich habe den Eindruck ich sehe den Wald vor lauter Bäumen nicht. Unten ist der Code aufgelistet. Ich nun wirklich nix aufregendes aber ich finde ums Verrecken die Ursache nicht.

Danke vorab an alle die sich diese Problems annehmen...


Sub ProcessNotice
   Dim doc2 As NotesDocument
   Dim EmailList As Variant
   
   EmailList = GetAddressList( )
   
   Set doc2 = New NotesDocument( db )
   
   Set doc = session.DocumentContext
   Call doc.CopyAllItems( doc2 )
   doc2.tmpTopic = "Eintrag des Agenten"   'nur zu Testzwecken
   
   If Not Isempty(EmailList) Then
      Forall m In EmailList
         Call doc2.Send( False, m )   
      End Forall
   End If
End Sub





Offline thomson666

  • Senior Mitglied
  • ****
  • Beiträge: 285
  • Geschlecht: Männlich
  • niemand hats leicht, aber leicht hats oan...
Re: Einladungen verteilen
« Antwort #1 am: 02.07.09 - 08:56:43 »
Hi!

Eine Frage...
Kann es sein das du mehr als ein paar hundert Leute verständigst? Wenn nein dann kannst dir die Schleife sparen und das Array gleich beim Send reinhängen... (weil du nie auf das 32K problem stoßen wirst)

Wieso das mehrere Tausendemale verschickt wird, ist anhand dieses Codes nicht zu erkennen.

Was macht die Funktion GetAdressList?
Grüße
Tommy

Offline Wupperhannes

  • Frischling
  • *
  • Beiträge: 38
  • Geschlecht: Männlich
Re: Einladungen verteilen
« Antwort #2 am: 02.07.09 - 13:24:21 »
GetAddressList() holt aus einer Mailgruppe die Liste der Mail Addressen. Ergebnis ist nichts anderes als eine Stringliste bestehend aus Mailadressen.

Aber Du hast recht. Es sind maximal 10 Adressen. Die Schleife könnte ich mir sparen. Hat bei den ersten Tests aber auch nicht funktioniert. Muss nochmal da eintauchen und sehen ob das einfacher geht.

Ich denke, dass der Effekt nicht vom Code ausgelöst wird. Ich hab den tausendmal rauf und runter gelesen - und es funktioniert ja auch wenn die Adressen im Feld "required" stehen. Meine Vermutung ist, das es am mitgelieferten Code der Datenbank liegt. "Optopnal" wird offensichtlich anders behandelt als "Required". Wenn jemand dafür ein Workaround wüsste wäre mir schon geholfen.

Meine erste simple Idee wäre einfach alle Adressen aus "Optional" löschen. Wäre aber eine sehr unprofessionelle Lösung. (quick and dirty)

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Einladungen verteilen
« Antwort #3 am: 02.07.09 - 13:29:20 »
Vielleicht entstehen deine "tausend Kopien" weil eine Emailadresse die Mail-DB beinhaltet in der dein Agent läuft.

Wäre dann so etwas wie eine Workflow-Endlosschleife :)
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Wupperhannes

  • Frischling
  • *
  • Beiträge: 38
  • Geschlecht: Männlich
Re: Einladungen verteilen
« Antwort #4 am: 02.07.09 - 13:40:42 »
japp, wäre möglich. Ist aber nicht. Diese Maildatenbank dient nur als Verteiler. Alle Adressen an die verteilt wird sind andere Datenbanken. Meine Testumgebung umfasst zur Zeit vier Datenbanken. Den Sender (der die Einladung verschickt), der Verteiler (der die Probleme macht :)) und zwei Empfänger (die in einer Mailgruppe des Verteilers stehen)

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Einladungen verteilen
« Antwort #5 am: 02.07.09 - 13:54:43 »
In deinem Code hast du aber nur ein Send drinnen, kein Save und kein CopyToDatabase da ist ein erzeugen von tausend Kopie-Dokumenten eigentlich nur via Send möglich. Etwas anderes gibt dein Code einfach nicht her.

Oder hast Du noch einen 2. "MacheVieleKopien" - Agent den wir nicht kennen  ::)
 
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Wupperhannes

  • Frischling
  • *
  • Beiträge: 38
  • Geschlecht: Männlich
Re: Einladungen verteilen
« Antwort #6 am: 02.07.09 - 14:07:07 »
Du hast mich da gerade auf eine Idee gebracht. Muss ich gleich mal ausprobieren wenn ich im Bürü bin.  Da muss ich aber jetzt erst mal hinfahren (bin ja 6 Stunden hinter Euch her)

Offline Wupperhannes

  • Frischling
  • *
  • Beiträge: 38
  • Geschlecht: Männlich
Re: Einladungen verteilen
« Antwort #7 am: 02.07.09 - 15:58:16 »
Danke für die Erleuchtung jBubbleBoy. Das Word "Send" hat bei mir ein paar Synapsen getriggert.

Ursache ist tatsächlich, dass Lotus einen "Required" Teilnehmer anders behandelt als einen "Optional" oder "FYI". Wenn Lotus die Einladung verschickt, dann werden die "Required" Teilnehmer in das Feld "To" der Email eingetragen, alle anderen aber in das Feld "Copy To".

Wenn ich nun eine Kopie der originalen Einladung (Email) verschicke, dann überschreibe ich ja das Feld "To", nicht aber das Feld "Copy To". Das heißt jede Email die an "optional" oder "FYI" Teilnehmer verschickt wurde, hat der Email Server auch wieder an den Verteiler zurück kopiert. Der hat sie bearbeitet usw. Eine zusätzliche Zeile

doc2.CopyTo = ""

im Agenten brachte die Lösung.

Wie gesagt - manchmal sieht man den Wald vor lauter Bäumen nicht.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz