Autor Thema: Ungewollter Abbruch eines Agenten beim Mailversenden  (Gelesen 2359 mal)

Offline archedude

  • Frischling
  • *
  • Beiträge: 3
Hallo zusammen,

vielleicht kann mir hier jemand bei meinem Problem weiterhelfen.

Ich habe folgendes Problem beim automatisierten Verschicken von Emails in einem LotusNotes Script Agenten in der Maildatenbank.

Über eine ODBC Verbindung wird aus einer Oracle Datenbank eine Liste von Emailadressen und weiteren Daten ausgelesen. An jede eingetragene Emailadresse in dieser Datenbank muss eine individuelle Email verschickt werden. Ich lese also alle Daten aus und gehe in einer For / Next Schleife über das Resultset und verschicke die Mail mit Call doc.Send(False,mailadr).

Jetzt kann es vorkommen, das eine Emailadresse in der Oracle Datenbank nicht mehr gültig ist. Wenn ich den LoNo Client auf Insel stelle wird die Mail ja erzeugt aber ersteinmal in den Ausgehenden Mails gespeichert. Beim Verschicken erhalte ich dann folgenden Zustellungsfehler:
User XY (XY) not listed in public Name & Address Book

Wenn der Agent jetzt aber die Mail gleich verschicken möchte stürzt die Verarbeitung ab.

Meine Frage ist, wie kann ich den folgenden Codeschnippsel um eine Fehlerabfangroutine erweitern, dass auch bei falschen Emailadressen mit dem nächsten Eintrag weitergemacht wird?  :-:

Code
Set db = s.CurrentDatabase
Set doc = New NotesDocument(db)
doc.Form = "Memo"
doc.Subject = "Daten"

For i = 1 To result.NumRows
    result.CurrentRow = i
    wert = result.GetValue(1)
    mailadr = result.GetValue(2)
    doc.Body = "Text " & wert
    Call doc.Save(True,True)
    Call doc.Send(False,mailadr)
Next

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Ungewollter Abbruch eines Agenten beim Mailversenden
« Antwort #1 am: 21.03.07 - 12:48:45 »
Plump gesagt, gar nicht. Für den Agenten sind ja alle MailAdressen gültig, die er als Futter verarbeitet.
Es besteht ja keine Interaktion zwischen Agent und NDR.

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline archedude

  • Frischling
  • *
  • Beiträge: 3
Re: Ungewollter Abbruch eines Agenten beim Mailversenden
« Antwort #2 am: 21.03.07 - 12:51:07 »
Hmm, hab ich bislang auch gedacht - nur wie kann es sein das dann die komplette Verarbeitung abbricht wenn eine Email nicht im public Name & Address Book steht?

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Ungewollter Abbruch eines Agenten beim Mailversenden
« Antwort #3 am: 21.03.07 - 12:51:39 »
Zitat
wenn eine Email nicht im public Name & Address Book steht?
Da sehe ich erst recht keinen Zusammenhang...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline archedude

  • Frischling
  • *
  • Beiträge: 3
Re: Ungewollter Abbruch eines Agenten beim Mailversenden
« Antwort #4 am: 22.03.07 - 13:50:53 »
Ich finde das Problem sehr merkwürdig. Eventuell liegt dies ja auch am Setup  ???

Ich habe das Problem jetzt so umgangen das ich den Ausdruck On Error Resume Next in das Script eingefügt hab, dann stürzt jedenfalls nicht die gesamte Verarbeitung ab.

klaussal

  • Gast
Re: Ungewollter Abbruch eines Agenten beim Mailversenden
« Antwort #5 am: 22.03.07 - 14:49:24 »
Das gleiche Problem hatte ich auch. Habe dann auch ein "resume next" eingebaut. Seit dem läuft es.

Du bist also nicht alleine mit diesem Problem  ;)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ungewollter Abbruch eines Agenten beim Mailversenden
« Antwort #6 am: 23.10.07 - 17:26:24 »
Ich bin gerade per Zufall über den doch schon betagteren Thread gestossen und mag ihn nochmal aufwärmen, da mir hier einiges nicht ausreichend erklärt scheint:

Zunäcgst einmal stürzt der Agent nicht ab, sondern er läuft in einen (verzeichneten!) Fehler und beendet sich korrekterweise. Und es bei weitem nicht so, dass man da gar nichts machen könnte, sondern man kann (und sollte) diesen erzeugten Fehlercode sauber auswerten:
Die Empfängeradresse ist inkorrekt: Es wird der Fehlercode 4294 (lsERR_NOTES_NO_MATCH) erzeugt.
Die Empfängeradresse ist nicht eindeutig: Es wird der Fehlercode 4295 (lsERR_NOTES_AMBIGUOUS_MATCH) erzeugt.

Diese kann man nun im ErrorHandler (aus meiner Sicht ein "must-have", ohne den man keine Zeile in einem Modul schreiben sollte!) auswerten und vor allem protokollieren - sonst kriegt ja niemand mit, dass da was schief läuft. Und protokollieren heisst nicht, ein einfaches Print-Statement abzusondern, dass in den unendlichen Weiten des Server-Logs untergeht. ErrorHandling und Logging wurde hier schon hinreichend diskutiert, das mag ich jetzt nicht erneut aufwärmen.

Gerade wegen der Frage der Beachtung des aufgetretenen Fehlers halte ich - wie wirklich fast immer - ein Resume Next für sehr kontraproduktiv: Das macht man nicht ohne wirklich zwingende Not!
Nach sauberer Fehlerbehandlung (es könnte ja auch ein Fehler <> 4294 / 4295 aufgetreten sein!) ist ein Resume Next natürlich durchaus denkbar.

Ich hoffe, das hilft jemanden, wenn er durch die Suchfunktion oder Blättern auf diesen Thread stossen sollte.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz