Domino 9 und frühere Versionen > Entwicklung

unprocesseddocuments - cache Problem?

(1/4) > >>

AC:
Hi Leute,

Kaum aus dem Urlaub zurück und ..
Mist, es tut nicht wie es tun soll.
Laß ich nen Agenten manuell vom Benutzer gestartet über in der view ausgewählte Dokumente laufen,
so laß ich mir zur Kontrolle immer den dc.count in einer msgbox  anzeigen.

Problem tritt auf , wenn der Benutzer den Agenten dann wieder auf neu angehakte Dokumente ein zweites mal startet.
Laß ich den Agenten erneut auf neu anhakte Dokumente laufen so ist der dc.count größer als
er tatsächlich sein müsste, weil anscheinend die vom Vorlauf gewählten Dokumente immer noch
als unprocessed erscheinen.

Auch mit UpdateProcessedDoc hab ich vielseitig herum experimentiert und es brachte nicht das erwünschte Ergebnis.

Hab mir dann eine TestDb gebaut in der ich nur die Basisfunktionalität teste und da funktioniert alles (auch ohne UpdateProcessedDoc)

Eine Möglichkeit : Es ist ein Cache Problem.  :-(
oder
Es muß also an den "speziellen" Gegebenheiten in meiner Produktiv-Db. liegen  

Zum einen ist es ein Kalenderview einer ReportDB, indem ich die vom User auszuwählenden Dokument habe.
In den Dokumenten wird durch den Agenten ein Feld (delsys) gesetzt.
Dadurch verschwindet das Dokument aus der aktuellen Ansicht (weil das Feld in der Ansichtsauswahl eine Rolle spielt).
Ferner wird im persönlichen Kalender des Benutzers der korrespondierende Kalendereintrag auch gelöscht.

Hier in Auszügen das Script.
...
Set dc = db.unprocesseddocuments
Call mdb.OpenMail
Set doc = dc.getfirstdocument
   
   While Not doc Is Nothing
      doc.delsys = session.username
      
      '// jetzt nachsehen und ggf löschen falls im pers. Noteskalender der EIntrag auch vorhanden ist
      
      If doc.caldocunid(0) <> "" Then
         On Error Resume Next
         Set mdoc = mdb.GetDocumentByUNID( doc.caldocunid(0) )   
         If Not  mdoc Is Nothing Then
            Call mdoc.Remove( True )
            Msgbox "Termin wird auch aus Ihrem persönlichen Kalender gelöscht", 64, "Hinweis"
         End If
      End If
      
      doc.caldocunid = ""
      Call doc.save(True,True)
      'Call session.UpdateProcessedDoc( doc )
      Set doc = dc.getnextdocument(doc)
   Wend
 

Der Agent wird über eine Ansichtsaktion gestartet (mittels einer einfachen Aktion).

Wer hat eine Idee an was es liegt, daß beim zweiten mal laufen lassen, ich die zu hohe Anzahl an Dokumenten
in der collection habe.

Ach ja, Notes 5.0.10 D.  

Merci Holcomb

Glombi:
Ich denke, dass die Eigenschaft nicht für Agenten gilt, die manuell gestartet werden. Das ist nur für periodische Agenten zu gebrauchen.

Andreas

AC:

--- Zitat von: Glombi am 03.09.04 - 15:25:06 ---Ich denke, dass die Eigenschaft nicht für Agenten gilt, die manuell gestartet werden. Das ist nur für periodische Agenten zu gebrauchen.

Andreas

--- Ende Zitat ---

Hi Andreas,
was meinst Du damit ?
Der Agent läuft auf  "ausgewählte Dokumente".

Grüße Holcomb


 

Glombi:
"Der Agent läuft auf  "ausgewählte Dokumente". => der Agent läuft über alle gewählten Dokumente. Das UpdateProcessedDoc spielt überhaupt keine Rolle.

Andreas

AC:
Aber wie kriege ich hin, daß beim einem möglichen zweiten Start des Agenten ,
nur die frisch neu angehakten Dokumente in die collection kommen?

Im Moment ist es so, der Benutzer hakt 2 Dokumente an und der Agent arbeitet die zwei ab. Sie verschwinden aus der Ansicht.
Dann hakt er drei an und als msgbox (weil dc.count) erhält er den Hinweis, daß er nun 5 Dokumente bearbeitet.

Weil er wohl die "alten" drei wieder als unprocessed ansieht.

Das ist mein Problem.
 
Holcomb

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln