Domino 9 und frühere Versionen > Entwicklung

item.LastModified bei RT-Feld

(1/4) > >>

-Michael-:
Hallo,

wir haben was seltsames festgestellt:

Ich habe in einer Form im Postsave-Event ein Script, welches item.LastModified in ein Feld schreibt.
Das zu überwachende Item ist ein Richtext-Item.

Seltsam ist: Unter gewissen Voraussetzungen erkennt Notes im Postsave-Event nicht, dass sich das Item geändert hat.
Beispielsweise geht ein User in das Dokument, geht in das Richtextfeld, macht Str+A (also alles markieren), und dann Strg+V (Inhalt der Zwischenablage einfügen). Nach dem Speichern wird aber nichts geschrieben, da lt. item.LastModified nichts geändert wurde. Das tritt aber nur manchmal so auf. Soweit ich beobachten konnte, ist das nur bei Inhalten aus der Zwischenablage.
Schwierig dabei ist, dass ich das selber nicht reproduzieren kann.

Gibt es da vielleicht einen (dokumentierten) Bug? Hat das wer von Euch auch schonmal festgestellt? In der KB habe ich nichts gefunden.

Client: 5.0.11

Michael

koehlerbv:
Dass das mit dem Clipboard zu tun haben könnte, ist eher auszuschliessen, Michi. A-Bär: RT Items sind bekanntlich immer kritisch, auch ist hier nicht unbedingt ein Bug auszuschliessen.
Schade, dass Du es nicht reproduzieren kannst ...

Da NotesItem.LastModified ja ein eindeutig zu identifizierender Wert ist, wäre ein (zugegebenermassen blinder) Versuch es wert, Deine Routine (entsprechend angepasst) ins QueryClose zu verlegen. Vielleicht handelt es sich um ein Timing-Problem zwischen den Events, und bis QueryClose vergeht ja wieder etwas Zeit ...

Ich habe vorab hier ein paar Tests mit RT item und LastModified gemacht, habe aber dieses Problem auch nicht nachvollziehen können. Ist halt eben immer schwieirg, wenn sich etwas nicht reproduzierbar ereignet.

Bernhard

y20frank:

--- Zitat von: koehlerbv am 04.09.04 - 00:54:05 ---habe aber dieses Problem auch nicht nachvollziehen können. Ist halt eben immer schwieirg, wenn sich etwas nicht reproduzierbar ereignet.
--- Ende Zitat ---

so, habe ich auch mal gecheckt: eine Maske hat ein RT-Field und ein Check (Text) Feld. Dort schreibt LN die Änderungszeit rein.

Mit STRG+A den Text markiert, mit STRG+V den Text wieder ins Item kopiert. "Soll Doc gespeichert werden?" = JA, aber LastModified wird nicht eingetragen... Logisch, ist ja auch der gleiche Text...!?

So wie -Michael- beschreibt, geht der User wie folgt vor:
1. Doc geöffnet
2. Doc bearbeiten
3. Im RTF STRG-A (den Text markieren)
4. Im RTF STRG-C (den Text kopieren) ??
5. Im RTF STRG-V (den gleichen??!! Text wieder da rein kopiert)
6. Frage nach "Dokument speichern" = JAhaaa!
7. Dokument gespeichert!

OK, aber damit ist das Item ja nicht "modifiziert" worden...  und warum sollte auch das LasModified da einen anderen Zeitwert zurückliefern...?!  ???

Habe zum checken den folgenden Code genommen (Client / Designer 7.0 beta):

Sub Postsave(Source As Notesuidocument)
   Dim doc As NotesDocument
   Set doc = source.Document
   Set item = doc.GetFirstItem("Test")
   check =  Cstr(item.LastModified)
   Call source.FieldSetText("Check", check)
   Call source.Save
End Sub

Und da wird wirklich nur geändert, wenn auch der Text sich im RTF ändert! Sonst nicht!

koehlerbv:
Irgendwas kann da aber nicht hinhauen, Frank: Wenn PostSave QuerySave wegen Call Source.Save aufruft, hast Du ein verschachteltes Maskenereignis ...

Bernhard

y20frank:
Hi Bernhard! Stimmt, sorry hast Recht, das Script ist natürlich im QuerySave... war erst im PostSave, bin da in die STRG-V-Falle getappt...  :P

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln