Autor Thema: Archivierung: Wie im kopierten Dokument ein Feld ändern?  (Gelesen 1201 mal)

Offline bob

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • R5
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
« Letzte Änderung: 26.06.03 - 19:39:10 von bob »

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Archivierung: Wie im kopierten Dokument ein Feld ändern?
« Antwort #1 am: 27.06.03 - 02:16:58 »
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)
...
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline bob

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • R5
Re:Archivierung: Wie im kopierten Dokument ein Feld ändern?
« Antwort #2 am: 27.06.03 - 11:02:23 »
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)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz