Domino 9 und frühere Versionen > ND8: Entwicklung

Automatischer aufgerufener Agent läuft nicht mehr auf dem Server

<< < (2/3) > >>

Klafu:
Hallo,

danke für eure Antworten! Ich werde dann mal den Server als Benutzer laufen lassen.

Was das manuelle Ausführen angeht...
Ich hab jetzt mal die While Schleife durch eine Do While ersetzt. Komischerweise ist aber doc = inbox.getnextdoc irgendwann leer obwohl im Eingang noch E-Mails stehen.
Habt ihr eine Idee, woran das liegen kann?


P.S. es scheint so, als ob er beim manuellen durchführen jeweils 50% der Mails im Eingang abarbeitet  ???
Chris

TRO:
Mit dem

   Call doc.RemoveFromFolder("($Inbox)")

entziehst du dem

   Set doc= inbox.Getnextdocument(doc)

seine Grundlage. Es wird dadurch immer ein doc übersprungen


So wäre es korrekt

   While Not doc Is Nothing   

      Set NEXTdoc= inbox.Getnextdocument(doc)

      Set rtitem = doc.GetFirstItem( "Body" )
      If (rtitem.Type = RICHTEXT) Then
         ForAll o In rtitem.EmbeddedObjects      
               Call o.ExtractFile(fpath & o.Source)
               If Dir(fpath + o.Source) <> "" Then
                  Call doc.PutInFolder("Done")
                  Call doc.RemoveFromFolder("($Inbox)")
               Else
                  Call doc.PutInFolder("Error")
                  Call doc.RemoveFromFolder("($Inbox)")
                  i = i+1
               End If
         End ForAll
      End If

      Set doc= NEXTdoc

   Wend

Klafu:
Danke TRO!  :)

Der Ansatz scheint gut zu sein.
Es waren eben noch 3 Mails im Posteingang. Die ersten beiden wurden gemacht. Es wurde also nicht jede zweite ausgelassen. Nur war im 2. Durchgang das Nextdoc leer und somit ist die 3. Mail nicht mehr verarbeitet worden  :-\

Chris

Tode:
Es ist VIEL einfacher: Einfach inbox.AutoUpdate = False setzen....
Ansonsten aktualisiert jede Änderung (putInFolder / removefromfolder) die Inbox und es werden nicht alle Dokumente erfasst.

Mit dem Flag gesetzt wird das LotusScript- Objekt "Inbox" auf dem Stand eingefroren den es zum Zeitpunkt des erstellens hat. Damit beeinflussen die putinfolder, removefromfolder, etc. das ganze nicht mehr. Eine Alternative wäre es, zu sagen:

While not doc is nothing

set doc = inbox.GetFirstDocument
Wend

weil sich das Inbox- Objekt sowieso nach jedem removefromfolder refresht, ist immer ein anderes Dokument das nächste neue...

Klafu:

--- Zitat von: Tode am 08.03.12 - 15:23:25 ---Eine Alternative wäre es, zu sagen:

While not doc is nothing

set doc = inbox.GetFirstDocument
Wend

weil sich das Inbox- Objekt sowieso nach jedem removefromfolder refresht, ist immer ein anderes Dokument das nächste neue...

--- Ende Zitat ---

Danke Torsten. So Funktioniert es nun einwandfrei! Besten Dank auch an die Anderen !

Chris

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln