Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: bob am 26.06.03 - 19:36:29
-
Hi,
ich möchte mit
Call doc.CopyToDatabase(db)
ein Dokument kopieren, wobei "db" die aktuelle Datenbank ist:
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Nun soll im Ergebnisdokument z.B. das Feld "Status" auf "Archiv" gesetzt werden.
Hintergrund:
Bisher archiviere ich seeeehr umständlich über das Setzen von $VersionOpt auf "4" (also die Notes-interne Möglichkeit). Das klappt soweit auch super, ist aber eben sehr umständlich (Views ohne Antwort-Dokumente, ein Agent der die Doks mit den $REF-Felder bearbeitet etc.
Warum das ganze:
Wenn ein Dok "normal" archiviert wird, verweisen ja noch existierende Dok-Links ins Archiv. Daher soll eben eine Kopie archiviert werden, und das bestehende Dok erhalten bleiben. Dient also quasi auch als "Lebenslauf" des Dokuments.
Ein direktes Kopieren in die Archiv-DB wär zwar ne Lösung, aber dann würde die Performance etc. stark darunter leiden, da z.B. nicht jeder User die Archiv-DB auch lokal hat.....
Ich hoffe mich verständlich ausgedrückt zu haben und dass Ihr 'ne Lösung parat habt :)
Bob
-
wenn ich das richtig verstanden habe, möchtest Du im kopierten Document ein Feld anpassen, weißt aber nicht, wie Du eine Referenz dazu hinbekommen sollst, um darauf zuzugreifen?
Laut Help:
Set newNotesDocument = notesDocument.CopyToDatabase( notesDatabase )
Parameters
notesDatabase
A NotesDatabase. The database in which you want a copy of the document. If you specify Nothing, this method generates an error.
Return value
newNotesDocument
The new document in the specified database.
heißt also in Deinem Beispiel nicht mehr "call doc.copyto..." zu verwenden , sondern
...
Set newDocument = oldDocument.CopyToDatabase( notesDatabase )
newDocument.status = "Archiv"
call newDocument.save(False, False)
...
-
Danke, das wars! :)
Hier noch der Code:
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim newdoc As NotesDocument
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
Set db = session.CurrentDatabase
Set newdoc = doc.CopyToDatabase( db )
newdoc.status = "Archiv"
Call newdoc.save(False, False)