Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: thomson666 am 21.04.10 - 08:23:19
-
Hallo!
Vielleicht kann mir jemand mal auf die Sprünge helfen.
In einem Mailverständigunsscript bekomm ich immer wieder mal den Fehler
4413 Document is not from this collection
Hier der Code:
If Col.Count = 0 Then Exit Sub
'------------------------
VTLMailSend = 0
Set doc = col.GetFirstDocument
Do Until doc Is Nothing
id = doc.dok_id
mail_in_datum = doc.tim_mail_in_datum
mail_flag = doc.mail_flag(0)
If (mail_flag = "1" ) Then ' mail_flag = 1 -> handelt es sich um ein überarbeitetes Rundschreiben, daher müssen alle Dokumente durchlaufen werden
' alle älteren Dokument gelöscht werden
search_string = "@Text(dok_id)="""+id(0)+""""
Set Col1 = db.search (search_string, datetime, 0)
Set doc1 = col1.GetFirstDocument
Do Until doc1 Is Nothing
id1 = doc1.dok_id
mail_in_datum1 = doc1.tim_mail_in_datum
If (id(0)=id1(0) And mail_in_datum1(0)<mail_in_datum(0)) Then
Call Doc1.ReplaceItemValue ("status", "Archiv")
Call Doc1.Save (False, False)
End If
Set doc1 = col1.GetNextDocument(doc1)
Loop
End If
Call SendMail (Doc)
Set doc = col.GetNextDocument(doc)
Loop
Aussteigent tut der Script beim Aufruf von
call SendMail(doc)
Ich weiss keinen Rat!
Könnt mir jemand helfen?!
Sg
Tommy
-
Ich könnte mir vorstellen, dass der Code auf ein Problem läuft, wenn in der inneren Schleife ein doc1 auf das selbe Dokument "zeigt" wie das Dokument doc in der äußeren Schleife.
-Werner
-
Hmmm
du meinst also wenn die Bedienung für das innere Dokument zutrifft und ich das
doc1.Save mache.
Guter Tipp!
Das wirds wohl sein.
Danke, aber ich bin total auf der Leitung gstanden...
tommy
-
Ja genau.
Wenn doc in der inneren Schleife beim db.search auch "gefunden" wird, dann wird das alte Dokument, das ja ein Mitglied der Collection Col war durch das Dokument aus der Collection Col1 "überschrieben" und ist nach der inneren Schleife nicht mehr gültiges Member von Col.
-Werner