Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Alois am 14.01.05 - 07:33:55
-
Ich habe in die Suche geschaut und glaube dass mein Agent laufen sollte. Allerdings das Ding will nicht so richtig.
Problem: verschiedene Dokumente können meine DB zugesandt werden und werden je nach "Form" unterschiedlich bearbeitet. Hier den Script:
Dim session As New NotesSession
Dim collection As NotesDocumentCollection
Dim db As NotesDatabase
Dim doc As NotesDocument
Print "Hier - Agent agMailFremdeDBEingang"
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
Print "Hier - Agent agMailFremdeDBEingang - Set"
Dim BasicSetup As NotesDocument
Const constrBasicSetupProfileForm = |frmBasicSetupProfile|
Set BasicSetup = db.GetProfileDocument(constrBasicSetupProfileForm)
Print "Hier - Agent agMailFremdeDBEingang - Profile"
Print collection.Count
While Not(doc Is Nothing)
Print "Hier - Agent agMailFremdeDBEingang - DocForm = " + doc.Form(0)
Select Case doc.Form(0)
Case "fremde AADb"
doc.AktuellerBearbeiter = BasicSetup.KeywordsMailEmpf(0)
doc.Form = "mainfrmF002"
doc.DocForm = "mainfrmF002"
Call doc.Save(True,True)
rc = Benachrichtigung(session, db, doc, BasicSetup, "fremde AADb")
Case "Memo"
rc = Benachrichtigung(session, db, doc, BasicSetup, "Memo")
Case Default
End Select
Set doc = collection.GetNextDocument(doc)
Wend
Print "Hier - Agent agMailFremdeDBEingang - Ende"
Ich bekomme in den Log meine Server alle Meldungen und muss feststellen dass meine Collection keine Dokument beinhaltet:
13.01.2005 16:08:17 Agent printing: Hier - Agent agMailFremdeDBEingang
13.01.2005 16:08:17 Agent printing: Hier - Agent agMailFremdeDBEingang - Set
13.01.2005 16:08:17 Agent printing: Hier - Agent agMailFremdeDBEingang - Profile
13.01.2005 16:08:17 Agent printing: 0
13.01.2005 16:08:17 Agent printing: Hier - Agent agMailFremdeDBEingang - Ende
Es kann meine Meinung nach nur an den folgende Befehl liegen:
Set collection = db.UnprocessedDocuments
Aber was kann ich an der Stelle schreiben????
-
Um das Dokument in Zugriff zu bekommen solltest Du es mal mit
Set doc = session.DocumentContext
versuchen.
Andreas
-
@Andreas
Oh scheint zu funktionieren :)
ich habe aber in den Fall nur Zugriff auf ein Dokument... weißt du was passiert wenn ein andere Dokument rein kommt bevor der Agent fertig ist???
-
Der Agent läuft immer los wenn eine Mail eintrifft. Er wird also jedes Mail "für sich" abarbeiten, so dass es kein Problem ist, wenn Du so nur ein Dokument zu fassen bekommst.
Wenn hinter Deinen Aufrufen allerdings komplexe Aktionen stecken, kann es auch schon mal vorkommen das der Agent nicht rechtzeitig fertig wird, und vom Server "gecancelt" wird. Für diesen Fall solltest Du noch einen kleinen (periodischen?) Sicherheitsagenten einbauen.
Andreas
-
@Andreas Super! Die Firma dankt
-
Wichtiger Hinweis: Offenbar - auch wenn das nicht ausdrücklich gesagt wurde - ist das ein Agent "Vor" Auslieferung.
Man beachte, dass die Agenten "Nach Auslieferung" das anders handhaben.
Grundsätzlich wäre zu empfehlen, diese Funktionalität umzuwandeln in einen Agenten "Nach" Mailempfang, die Agenten "Vor" sollten wenn immer möglich vermieden werden: sie werden vom Mail-Router verarbeitet und nicht vom Agent-Manager, und der Mailrouter hat eigentlich wichtigere Aufgaben zu tun.
-
@Semeaphoros
heißt es dass für ein Agente "Nach Eingang" würde den Befehl Set doc = session.DocumentContext nicht funktionieren? könntest du mir dann sagen mit welchem Befehl ich an die Dokuemnte drann kommen kann?
Sonst ist mir klar dass der Mailrouter was besseres zu tun hat (ehrlich gesagt ich hatte mich noch nicht gekümmert wer was macht). Ich kann nur sehen dass der MailRouter nicht viel CPU braucht (während der normalle Betrieb). Sind da andere Aufgaben was er zu überweltigen hat die ab und zu mehr brauchen?
-
Da musst Du dann die UnprocessedDocuments verwenden. Hauptproblem mit den Before-Agenten: solange so ein Agent läuft, werden keine weiteren Mails mehr geroutet, sprich bei einem stak benutzten Mailserver kann durch solche Agenten durchaus der Mailverkehr behindert werden.