Domino 9 und frühere Versionen > ND8: Entwicklung

Unterschiedliches Verhalten von Agenten

<< < (2/2)

Peter Klett:
Zwei Dinge verstehe ich in Deinem Code nicht, auch wenn sie sicherlich nichts mit dem Problem zu tun haben, denn der Agent läuft ja von Hand.

1. Wozu speicherst Du das Dokument, nachdem Du es von einem Ordner in den anderen verschoben hast?

Die Information darüber, in welchem Ordner sich ein Dokument befindet, ist nicht im Dokument abgelegt.

2. Wozu verwendest Du tempdoc?

Du setzt tempdoc = doc und arbeitest danach mit tempdoc weiter, ohne dass Du doc irgendwie anderweitig benötigst oder neu setzt. Das ist m.E. überflüssig.

Welche Sicherheitseinstellung hast Du im Agenten? Vielleicht ist die zu scharf? In welchem Log steht, dass der Agent erfolgreich gelaufen sei? Ich würde mal ein separates Logging einbauen, bei dem klar erkennbar ist, was der Agent treibt.
Du könntest nach dem Agentenlauf die relevanten Dokumente ansehen, wann sind die zuletzt gespeichert worden? Da der Agent (wie gesagt unnötigerweise) die Dokumente speichert, kannst Du sehen, ob er die angefasst hat, oder nicht.

basile:
Hallo Peter,

das mit dem Speichern habe ich auch weder in den Beispielen, noch in diversen codes im Netz gesehen, hatte das vorher auch nicht drin, aber
tempdoc ist aus dem Grund drin, weil ich ja das Doc, das vom Entry stammt verschiebe, das ist auch so ein Test, auf der Suche nach dem Grund des Problems. Sicherheitseinstellungen sind so, dass der erstmal alles darf.
Das Logging passiert auf meinem client. Im Notes-Data gibt es die Bank log.nsf. Die schreibt brav alles mit, was passiert. mit Print kann man da Meldungen ausgeben. Bei jedem Clientneustart wird ein neues Dokument da drin angelegt.
Habe dieses log auch erst heute gefunden. Manchmal sind doch solche hartnäckigen Fehler auch zu was nütze ;)^.
Der Agent fasst die Dokumente an, tut alles mögliche damit, speichern, items entfernen etc. nur halt nicht Verschieben.

Viele Grüße

Udo

thkn777:
@basile
Bist Du Dir GANZ SICHER(!), daß Du im Script im "If RemoveIt = True" Bereich auch ankommst? Auch wenn das jetzt völlig abwegig ist... falls Du es noch nicht getan hast: bitte prüfen.

War's das? Wenn nicht... hast Du schon mal versucht, das Dokument zuerst in den Zielordner zu verschieben und dann aus dem Quellordner zu löschen?

Auch nicht? Ich hatte mal so ein ähnliches Problem, allerdings läuft mein Agent auf dem Server. Meine Lösung: nicht direkt mit dem Quell-Ordner arbeiten, sondern eine eigene Doc-Collection aufbauen. Damit mache ich auf jeden Fall einen Bogen um evtl. auftretende Refresh/Update Vorgänge im Quellordner, die dann wiederum evtl. die Viewnavigation (z.B. getNextDocument) durcheinanderbringen könnten.



--- Code: --- ' Dokumente in doc collection, view = Quell-Ordner
Call view.Refresh()
Set doc = view.Getfirstdocument()
If doc Is Nothing Then
Print "EXIT: Toll - nichts zu tun."
Exit Sub
End If


' Leere Collection bauen
Set coll = view.Getalldocumentsbykey("%ganztoller!dummy#key*for&empty%collection", True)
If coll.Count > 0 Then
Print "EXIT: Hier ist was nicht in Ordnung."
Exit Sub
End If

' Dokumente manuell in die Collection aufnehmen
While Not doc Is Nothing
Call coll.Adddocument(doc)
Set doc = view.Getnextdocument(doc)
Wend


' Schleife für Bearbeiten der Dokumente aus Collection
Set doc = coll.Getfirstdocument()
count = 0
While Not doc Is Nothing
count = count + 1

' *** hier was-auch-immer-mit-dem-doc-tun

' Dokument in Zielordner verschieben
Call doc.Putinfolder(ZIELORDNER, False)
Call doc.Removefromfolder(QUELLORDNER)
Set doc = coll.Getnextdocument(doc)
Wend
--- Ende Code ---


Da Du ja nach Ideen gefragt hast - vielleicht versuchst Du es mal so?

Viel Glück,
Th.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln