Domino 9 und frühere Versionen > ND8: Entwicklung
Unterschiedliches Verhalten von Agenten
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