Domino 9 und frühere Versionen > ND8: Entwicklung

Unterschiedliches Verhalten von Agenten

(1/2) > >>

basile:
Liebe Mitforisten,

ich habe ein eigenartiges Verhalten von Agenten, je nachdem, woher sie gestartet werden:
Der Plan ist, Dokumente (zeitgesteuert) von einem Ordner in einen anderen zu verschieben. Dafür gibt es einen Agenten, der den Ordner durchgeht (Entrycollection), die Dokumente überprüft, und diejenigen, auf die die Kriterien zutreffen in einen anderen Ordner verschiebt (doc.RemoveFromFolder() und doc. PutInFolder()).
wird der Agent von Hand gestartet, tut er das was er soll, im zitgesteuerten Modus funktioniert weder das RemoveFromFolder, noch das PutInFolder.
Ich habe es auch schon versucht, die docs einer Documentcollection zuzuordnen und diese dann mit RemoveAllFromFolder() / PutAllInFolder zu behandeln mit dem gleichen Ergebnis. auch view.autoupdate = false bringt nix.
Ich habe keine UI-Klassen im Agenten.
So langsam gehen mir die Ideen aus.

Viele Grüße

Udo

Peter Klett:
Kann es sein, dass es sich um persönliche Ordner handelt? Wer ist der Unterzeichner des Agenten, kann der die Ordner sehen?

basile:
Hallo Peter,

der Ordner ist nicht persönlich, sondern öffentlich. Ich bin der Unterzeichner, beim Starten auf Knopfdruck mache das natürlich ich, der Zeitgesteuerte Task läuft auf meinem Rechner mit meiner ID. Das Script läuft ja auch durch ohne Fehler (nach lokalem log)

Viele Grüße

Udo

umi:
Moin
Läuft der Agent im Client oder im auf dem Server.
Falls auf dem Client, ist aktiviert dass zeitgesteuerte Agenten laufen dürfen?
Falls auf dem Server, hast Du rechte den Agenten auszuführen?
Wird der Agent überhaupt gestartet?

basile:
Hallo umi,

der Agent läuft auf dem Client, der läuft auch durch (nach log) und meldet keine Fehler.

hier mal der Code:

Option Public
Option Declare

Sub Initialize

   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim entrycoll As NotesViewEntryCollection
   Dim entry As NotesViewEntry
   Dim doc As NotesDocument
   Dim tempdoc As NotesDocument
   
   Const OrdnerName = "IrgendeinOrdner"
   Const OrdnerSentName ="IMAPSent"   
   
   Dim RemoveIt As Boolean
   RemoveIt = False
   
   Set db = session.Currentdatabase
   db.FolderReferencesEnabled = True   
   
   Set view = db.Getview(OrdnerName)
   view.Autoupdate = False

   
   Set entrycoll = view.Allentries   
   Set entry = entrycoll.Getfirstentry()

   
   While Not(entry Is Nothing)
      Set doc = entry.Document   
               
                /* hier wird das Dokument untersucht */
                if (irgendwelche Bedingungen) then
   
                  
           Call doc.Send(False)
           Print "Mail versandt"
           RemoveIt = True   
           Call doc.save(True,False,False)
      end If
   
      If RemoveIt = True Then
         Set tempdoc = doc
      End If      
      Set entry = entrycoll.Getnextentry(entry)
      If RemoveIt = True Then
         Call tempdoc.Removefromfolder(OrdnerName)
         Call tempdoc.PutInFolder(OrdnerSentName, True)
         Call tempdoc.Save(true,False,true)
         RemoveIt = false
      End If
   Wend   
   view.Autoupdate = true
   
End Sub

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln