Domino 9 und frühere Versionen > ND6: Entwicklung

Vor/Nach Eingang neuer Mail

(1/2) > >>

Alois:
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????

..Andreas..:
Um das Dokument in Zugriff zu bekommen solltest Du es mal mit

Set doc = session.DocumentContext

versuchen.

Andreas

Alois:
@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???

..Andreas..:
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

Alois:
@Andreas Super! Die Firma dankt

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln