Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Johnson am 21.01.10 - 10:37:26

Titel: NotesDocument wird nicht gespeichert trotz Aufruf der Save Funktion
Beitrag von: Johnson am 21.01.10 - 10:37:26
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
	

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
Titel: Re: NotesDocument wird nicht gespeichert trotz Aufruf der Save Funktion
Beitrag von: Johnson am 21.01.10 - 10:39:36
Nebenbei bemerkt ist das nicht einmal in der Hilfe dokumentiert.  ::)
Titel: Re: NotesDocument wird nicht gespeichert trotz Aufruf der Save Funktion
Beitrag von: Glombi am 21.01.10 - 10:53:01
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
Titel: Re: NotesDocument wird nicht gespeichert trotz Aufruf der Save Funktion
Beitrag von: ata am 21.01.10 - 10:54:18
... oder die Agenten überdenken, die sich auf das LastModified berufen - eventuell lässt sich die Logik überdenken...

Toni
Titel: Re: NotesDocument wird nicht gespeichert trotz Aufruf der Save Funktion
Beitrag von: Johnson am 21.01.10 - 11:15:01
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.