Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Lancelot am 18.02.08 - 08:45:07
-
Hey Leute,
ich habe einen Agent, der über eine Ansicht läuft, die nur Dokument enthält, die ein Wiedervorlagedatum haben.
Der Agent vergleicht das Wiedervorlagedatum mit dem heutigen Datum und wenn das Datum erreicht oder überschritten ist,
soll der Agent eine Mail an den im Dokument gespeicherten Mitarbeiter schicken.
Es kommt jedoch vor, dass einige Mitarbeiter bei uns beim Wiedervorlagenempfänger einen Namen eingeben, den es bei uns im
Adressbuch nicht gibt. Wie die das auch immer schaffen.
Jetzt soll der Agent aber nicht abgebrochen werden, sondern ich soll dem Admin eine Mail schicken, welches Doc
den falschen Mitarbeiter eingetragen hat und danach soll das nächste Doch in der View verarbeitet werden.
Ich habe es schon mit "On Error GoTo Fehler" versucht, aber da ich die Sprungmarke vor "End Sub" eingefügt habe, liest der Agent nicht das nächste Doc.
Was mache ich falsch.
Hier der Code:
While Not (doc Is Nothing)
On Error Goto Fehler
Set memo = New NotesDocument( db )
memo.SaveMessageOnSend = False
Const NotesMacro$ = "@Elements(wrpdate)"
result = Evaluate(NotesMacro$, doc)
resvar = result(0)-1
i = 0
SendToVar = doc.wrpname(i)
Do While i <= resvar
Set datetime2 = New NotesDateTime( doc.wrpdate( i ) )
docdate = datetime2.dateonly
docyear = Year(docdate )
docmonth = Month(docdate )
docday = Day(docdate )
y = (docyear*10000)+(docmonth*100)+(docday)
If x >= y Then
SendToVar = doc.wrpname(i)
memo.Subject = "WIVO fällig: " + doc.wrpAusp(z) + " zu '" + doc.Projekt(0) + " / " + doc.Beschreiben(0) + "!"
memo.form ="Memo"
Set rtitem = New NotesRichTextitem(memo, "Body")
memo.SendTo = SendToVar
Call rtitem.appendText("Dieser Link führt Sie direkt zu Ihrer WIVO! " &" ---> ")
Call rtitem.appendDocLink(doc, "Public\projektseg.nsf")
Call memo.Send(True)
End If
zahl = zahl + 1
i = i+1
z=z+1
Loop
Set doc = View.GetNextDocument(doc)
z=0
Wend
Fehler:
Set memo = New NotesDocument( db )
memo.Subject = "FEHLER: Der Agent ist nicht gelaufen!"
memo.form ="Memo"
memo.SendTo = "Admin Notes/segmueller/DE"
Call memo.Send(True)
End Sub
Bin für jede Idee dankbar. ;-)
-
Ich habe das mal mit einem "On Error resume next" gelöst. Ist zwar nicht elegant, aber da es eine unbedeutende Anwendung ist, habe ich es mal so gelassen.
-
zum Bleistift
NextDoc:
Set doc = View.GetNextDocument(doc)
z=0
Wend
Goto endofsub
Fehler:
Set memo = New NotesDocument( db )
memo.Subject = "FEHLER: Der Agent ist nicht gelaufen!"
memo.form ="Memo"
memo.SendTo = "Admin Notes/segmueller/DE"
Call memo.Send(True)
goto NextDoc
endofsub:
End Sub
-
oder:
wend
exit Sub
Fehler:
ich beende die Routine immer vor drm Errorhandler.
Grüsse
Dau-in
-
Danke Euch allen für die Beiträge.
Da alle Vorschläge funktionieren, muß ich mich jetzt für einen entscheiden.
Nochmals Danke! ;-))
-
Zu Andrés Vorschlag (dem ich ansonsten beipflichte) nur noch eine Anmerkung: Statt Goto NextDoc eine Resume NextDoc (um den Fehlerstatus auch richtig totzuschlagen).
Bernhard
-
Oh, danke Bernhard, Resume ist natürlich Richtig.
-
Danke Bernhard,
mit "Resume Next" sieht es jetzt richtig elegant aus. ;-)
So laß ich den Agent jetzt stehen.
Danke für Eure Hilfe!