Ziemlich unschön formatiert, macht keinen Spaß das zu lesen. Und es scheint unvollständig.
Wo ist das Next von Deiner "For nthDoc= ..." Schleife? Ich verstehe auch nicht warum Du zweimal die Notessession initialisierst.
Und zweimal die DB setzt (currentdb2 und db).
Du solltest Dir auch angewöhnen mit Option Declare zu arbeiten. In Deinem Script tauchen plötzlich Variablen (nthDoc, item, etc.) auf, man sieht zwar was sie sein sollen, aber sauber ist das nicht und kann schnell zu Fehlern führen, wenn Du plötzlich z.B. den falschen Type ansprichst.
Du kannst auch Dim Session as NotesSession und Set Session = New NotesSession zusammenfassen in Dim Session as New NotesSession.
Dann machst Du ein
Set currentDoc2=CurrentDocColl2.Getnthdocument(nthDoc)
Das machst Du schon nach Beginn der For-Schleife. Wieso machst Du das da unten nochmal?
Wenn da unten irgendwo noch das Next stecken sollte, dann lädst Du das Document zweimal pro Durchgang in das Objekt.
Hast Du im Debugger verfolgen können wo das Script die "Verbindung" zum Dokument verliert?
Mit
Nach dem speichern bekomme ich allerdings das Problem, dass die Email im Anschluss nicht nicht erneut verarbeitet werden kann
meinst Du, Du kannst den Agenten nicht mehr erneut über die Dokumente jagen?
Das liegt dann wohl an
Call session.UpdateProcessedDoc(CurrentDoc2)
Siehe Hilfe:
This method marks a document so subsequent invocations of the same agent recognize the document as processed. You must explicitly mark a document with this method. No implicit marking occurs in a LotusScript® agent.
If a marked document is modified, it is unmarked and will be processed by the next invocation of the agent.
Also erst wenn das Dokument verändert wird, kann der Agent es wieder bearbeiten.
Bye,
Markus
Hallo und danke für die nächsten Antworten,
ich habe mal den Code oben entfernt, da ich mittlerweile mitbekommen habe, wo der Fehler liegt.
Es liegt an dem ConvertToMime(3). Das Dokument ging nicht verloren, sondern es wurde ja durch das Konvertieren in eine EML umgewandelt.
Jetzt ist die Frage, wie ich dann am besten aus einer konvertierten EML Datei Anhänge auslese?
Dieser Code funktioniert nur, wenn das Dokument noch nicht konvertiert wurde...
Set rtitem = currentdoc2.getfirstItem("Body")
Dim fileCount As Integer
fileCount=0
On Error Resume Next
Dim anhaengename(30) As String
Dim anhaenge(30) As String
If ( rtitem.Type = RICHTEXT ) Then
On Error Resume Next
ForAll o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) And ( o.FileSize > 0 ) Then
anhaengecount%=anhaengecount%+1
fileCount = fileCount + 1
Call o.ExtractFile (Environ("Temp")&"\" + o.Name )
anhaengename(anhaengecount%)=o.Name
anhaenge(anhaengecount%)= (Environ("Temp")&"\" + o.Name )
'Call currentDoc2.Save( false, True )
End If
End ForAll
End Error
End If
@ Andrew Harder
Du gehst mit der Annahmen richtig. Das einzige was in den Annahmen fehlt ist dass ich vorher die Anhänge exportiere.
Gruß Jens
Also, habe das mal nachgebaut, weil das nicht wirklich mein Fachgebiet ist.
Mit diesem Agenten führe ich das ConvertToMime auf eine Mail mit Dateianhängen aus und ändere den Titel.
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim col As NotesDocumentCollection
Set col = db.UnprocessedDocuments
Dim doc As NotesDocument
Set doc = col.GetFirstDocument
Call doc.ConvertToMime (3)
doc.Subject = "xxx" & doc.Subject (0)
Call doc.Save (True, True)
End Sub
Mit diesem Agent zeige ich mir DANACH die in dem Body enthaltenen Dateien an.
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim col As NotesDocumentCollection
Set col = db.UnprocessedDocuments
Dim doc As NotesDocument
Set doc = col.GetFirstDocument
Dim rtitem As NotesRichTextItem
Set rtitem = doc.Getfirstitem("Body")
ForAll o In rtitem.Embeddedobjects
MsgBox o.Name
End ForAll
End Sub
Du schreibst, dass Du .eml-Dateien exportieren willst. Mit ConvertToMime (3) erzeugst Du aber keine .eml-Dateien, sondern wandelst Richtext in Mime um.
Die .eml-Datei würde auch nicht in der Datenbank vorhanden sein, die wird ja genutzt, um sie außerhalb von Notes als Datei abzulegen.
Sorry, ich kann Dir nicht wirklich folgen, was Du willst, was bereits funktioniert, und wo dabei das konkrete Problem ist.