Domino 9 und frühere Versionen > ND7: Entwicklung

NotesDocument wird nicht gespeichert trotz Aufruf der Save Funktion

(1/1)

Johnson:
Hi Notesianer,

wir haben gestern festgestellt, dass die Funktion Save der NotesDocument Klasse ein Dokument nur speichert, wenn sich auch ein Feld geändert hat.

Die Funktion gibt auch noch ein False zurück.

Dazu ein kleines Testscript:

--- Code: ---
Dim s As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument

Set db = s.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument


Print doc.LastModified
Sleep(10)
If doc.Save(True, False) Then
Print "saved"
Else
Print "not saved"
End If
Print doc.LastModified

--- Ende Code ---

Für die, die sich fragen, was es für einen Sinn machen würde, ein Dokument ohne Änderungen nochmal abzuspeichern: Es gibt ein paar Agenten, die sich auf das LastModified verlassen. In diesem Fall sollte das Dokument einfach nur gespeichert werden.

Kennt das jemand? Weiß jemand warum das so gemacht wurde?
Wir fanden das schon etwas :o.

Gruß
Johnson

Johnson:
Nebenbei bemerkt ist das nicht einmal in der Hilfe dokumentiert.  ::)

Glombi:
Da verhält sich Script analog zur Formelsprache. Wenn mit
FIELD Feld := ...
das Feld auf den bereits vorhandenen Wert gesetzt wird, wird das Dokument auch nicht im Backend geändert und das LastModified bleibt gleich.

Du musst also ein Item ändern.

Andreas

ata:
... oder die Agenten überdenken, die sich auf das LastModified berufen - eventuell lässt sich die Logik überdenken...

Toni

Johnson:
Wir haben ja jetzt auch ein Timestamp-Feld geschrieben, bevor das Dokument gespeichert wird.

Es ist mir nur nie aufgefallen und waren doch sehr erstaunt. Und wie gesagt: Es ist nicht mal dokumentiert. Jedenfalls nicht in der Notes-Hilfe.

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln