Lotus Script
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
Do While Not doc Is Nothing
doc.PrzHinweiseAm = Today
doc.PrzHinweiseVon = session.Username
doc.PrzInterviewDatum = Today
Call doc.Save (True, True)
Set doc = col.GetNextDocument (doc)
Loop
Ist wesentlich mehr Text, aber nur ein Element
EDIT: Allerdings würde ich das in eine Bibliothek auslagern (oder in einen Agenten), damit das, wenn es in mehreren Ansichten benötigt wird, nicht mehrfach gebaut und gewartet werden muss. Von daher lohnt sich auch die Auslagerung über einen Formelagenten. Mehrfach verwendbar, aber nur einmal zu pflegen
StampAll hat den Nachteil, dass die Dokumente bei jedem Aufruf gespeichert werden.
Bist Du dir sicher?
Ich habe es mal traced.
Öffnen der Datenbank und Speichern eines Documnets sieht so aus
07:29:59.775 ns^[nserver:2BFC:1094] [EM005:after] ec11.nsf NT000004C2,sq=329 803
[8008: VIEW DEFAULT] [fEM_NSFNOTEOPEN:420]
07:30:21.106 ns^[nserver:2BFC:263C] [EM066:after] ec11.nsf:NT00000F42,sq=13 6A14DDC4072F15CCC125847B002DC112
[0001: DOCUMENT] [0080:] [fEM_NSFNOTEUPDATEEXTENDED:385]
Im While Loop sieht das bei 3 markierten Dolumenten so aus
07:30:42.323 ns^[nserver:2BFC:5D0] [EM066:after] ec11.nsf:NT00000E12,sq=11 B4ADA72E23EFDC125840C002BD985
[0001: DOCUMENT] [0085: FORCE NOCOMMIT] [fEM_NSFNOTEUPDATEEXTENDED:385]
07:30:42.336 ns^[nserver:2BFC:1A40] [EM066:after] ec11.nsf:NT00000EC2,sq=21 3F9F2640C53800B2C12578090031B03F
[0001: DOCUMENT] [0085: FORCE NOCOMMIT] [fEM_NSFNOTEUPDATEEXTENDED:385]
07:30:42.339 ns^[nserver:2BFC:5D0] [EM066:after] ec11.nsf:NT00000F42,sq=14 6A14DDC4072F15CCC125847B002DC112
[0001: DOCUMENT] [0085: FORCE NOCOMMIT] [fEM_NSFNOTEUPDATEEXTENDED:385]
Und beim stampAll ?
Da werden keine events getriggert.
Also würde ich mal behaupten, daß die o.a. Anmerkung, daß jedes Mal gespeichert wird nicht richtig ist.
Ich interpretiere das auch anhand der Beschreibung in der Designer Hilfe so.
The item values are immediately written to the back-end documents.
Man muss auch nicht prüfen, ob der gleiche Wert schon vorhanden ist.
This method does not modify existing NotesDocument objects.
Bist Du dir sicher?
Ja, zumindest aus meiner Sichtweise ;)
Dieses Script
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim col As NotesDocumentCollection
Set col = db.AllDocuments
Call col.StampAll ("Feld1", "x")
Call col.StampAll ("Feld2", "y")
Call col.StampAll ("Feld3", "z")
End Sub
hinterlässt in den Dokumenten drei Speicherzeitpunkte (in $Revisions). Das würde ich als dreimal gespeichert bei drei StampAll-Aufrufen interpretieren.
Ob physisch dabei wirklich ein Schreibvorgang stattgefunden hat, darüber habe ich noch nie nachgedacht, mich interessieren die Spuren, die man in den Dokumenten hinterlässt. Das ist das, was sich ein Revisor vielleicht einmal anschaut, wann das Dokument geändert wurde.