Hallo liebe Notesgemeine.
Ich habe ein, zumindest für mich, nicht nachvollziehbares Problem. Ich versuche das ganze mal verständlich zu beschreiben.
Ich habe eine Datenbank, die auf der modifizierten Schablone "Dokumentbibliothek" Version 6 basiert. Weil in der DB die Dokumente untereinander zum Teil verlinkt sind, habe ich im Freigabeworkflow einen Passus eingebaut, der das Ursprungsdokument immer beibehält (wg. der NoteID) und nur den Inhalt des Dokumentes austauscht. Bei der Kopiererei treten jetzt bei Dokumenten mit Anhang Probleme auf, in Gestalt der Fehlermeldung:
"Ein oder mehrere Anhänge des Quelldokuments fehlen. Starten Sie Fixup, um das Dokument in der Quelldatenbank zu löschen."Der folgende Quellcode steckt in einer Scriptlib (Function SendToNext) und wird im QuerySave aufgerufen:
...
Set arcdoc = db.GetDocumentByID(note.ReleasedDocID(0))
Set tmpdoc = db.CreateDocument
Call arcdoc.CopyAllItems(tmpdoc,True)
Call tmpdoc.Save(False,False)
Call note.Save(False,False)
Forall e In arcdoc.Items
Call arcdoc.RemoveItem(e.name)
End Forall
Call arcdoc.Save(True,False)
Call note.CopyAllItems(arcdoc,True)
Call arcdoc.Save(True,False)
Set agent = db.GetAgent("agDeactivateDoc")
If agent.RunOnServer(arcdoc.NoteID) <> 0 Then
Messagebox "Fehler beim Deaktivieren des freigegebenen Dokumentes" + Chr13) "Bitte benachrichtigen Sie Ihren Administrator",16,"Archivierung"
End If
Forall e In note.Items
Call note.RemoveItem(e.name)
End Forall
Call tmpdoc.CopyAllItems(note,True)
Call note.Save(True, False)
...
Der Fehler passiert beim Speichern des aktuell geöffneten Dokumentes (note.save).
Wenn ich mir das Dokument im Debugger anschaue, dann ist dort aber der Anhang korrekt vorhanden. Das tmpdoc wird übrigens problemlos gespeichert. Auch mit Anhang.
Ich hoffe ich konnte mich verständlich machen und jemand hat eine zündende Idee.
Bei notes.net habe ich zwar einige Threads in dieser Richtung gefunden ($File soll nicht "so einfach" zu kopieren sein), aber weitergeholfen hat's mir nicht.