Autor Thema: item.LastModified bei RT-Feld  (Gelesen 9364 mal)

Offline -Michael-

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
    • Software Guide
item.LastModified bei RT-Feld
« am: 03.09.04 - 23:06:18 »
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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:item.LastModified bei RT-Feld
« Antwort #1 am: 04.09.04 - 00:54:05 »
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

  • Gast
Re:item.LastModified bei RT-Feld
« Antwort #2 am: 04.09.04 - 16:35:52 »
habe aber dieses Problem auch nicht nachvollziehen können. Ist halt eben immer schwieirg, wenn sich etwas nicht reproduzierbar ereignet.

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!
« Letzte Änderung: 04.09.04 - 16:37:42 von y20frank »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:item.LastModified bei RT-Feld
« Antwort #3 am: 04.09.04 - 16:47:32 »
Irgendwas kann da aber nicht hinhauen, Frank: Wenn PostSave QuerySave wegen Call Source.Save aufruft, hast Du ein verschachteltes Maskenereignis ...

Bernhard

y20frank

  • Gast
Re:item.LastModified bei RT-Feld
« Antwort #4 am: 04.09.04 - 16:52:12 »
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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:item.LastModified bei RT-Feld
« Antwort #5 am: 04.09.04 - 17:00:04 »
Hm, mit dem Code (auch wenn das extrem Q&D ist  ;D) funktioniert's:
Code
Sub Postsave(Source As Notesuidocument)
   
   Dim doc As NotesDocument
   Set doc = source.Document
   Dim itemBody As NotesItem
   Dim vLastModified As Variant
   
   Set itemBody = doc.GetFirstItem ("Body")
   vLastModified =  itemBody.LastModified
   
   doc.RTLastModified = vLastModified
   
   Call doc.Save (True, False, True)
   
End Sub

Und ich kann Franks Beobachtung bestätigen: Wenn der RTF-Inhalt komplett via Clipboard wieder eingefügt wird, merkt das "schlaue" Notes, da es keine Änderung gab. Allerdings ist (natürlich) das LastModified-Datum des Dokuments stimmig ...

Ist das ein Bug oder ein Feature ? Bei wirklichen Änderungen des RTF-Inhalts habe ich jedenfalls immer auch eine Änderung des NotesItem.LastModified-Wertes erhalten ...

Bernhard

PS: Frank - ich würde übrigens keine derartigen Tests hinsichtlich einer produktiven Umgebung - hier R5 - mit einer Beta-Version durchführen. Die Aussagen, die Du erhältst, sind ähnliche aussagekräftig wie die von Börsenanalysten  ;D ;D

y20frank

  • Gast
Re:item.LastModified bei RT-Feld
« Antwort #6 am: 04.09.04 - 17:13:41 »
Hm, mit dem Code (auch wenn das extrem Q&D ist  ;D) funktioniert's
Hi Bernhard!
Vielleicht bin ich ja heute völlig verstrahlt, aber auch mit deinem Code funzt es bei mir nicht... OK, ist vielleicht die 7'er BETA an der es liegen mag und die nit so recht will... Grundsätzlich haste da ja Recht, aber ich denke solche Script-Events sind doch eigentlich relativ stabil über alle Versionen... oder?
Habe noch die 5'er zum Testen auf meiner Linux Kiste, aber die ruht gerade...
Meine Meinung zu Börsenanalysisten sag ich getz mal gerade nicht, ok...?!  ;D
« Letzte Änderung: 04.09.04 - 17:14:30 von y20frank »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:item.LastModified bei RT-Feld
« Antwort #7 am: 04.09.04 - 17:20:24 »
Klar sollte alles mögliche stabil sein zwischen den Versionen - ob Beta oder ein R4, R5 oder R6 immer da gleiche Ergebnis bringen. Sowas würde ich aber trotzdem nicht mit 'ner Beta probieren - schade um die Zeit, weil das Resultat stimmen kann, aber nicht muss - Lotus "übt" ja noch mit der Version  ;D
Oder sagen wir es anders: Ich mache andere Tests mit Betas, aber ich mache keine Tests, die wirklich freigegebene Versionen betreffen.

Aber zum Kern: Was klappt denn bei Dir nicht mit dem Code ? Ich habe natürlich andere Feldnamen verwendet, und vor allem ist das Feld zum Speichern des NotesItem.LastModified jetzt nicht mehr Text, sondern Datum / Zeit.

Michi's Problem ist schon ein interessant  ;)  DANKE, dass Du mithilfst !

Bernhard

y20frank

  • Gast
Re:item.LastModified bei RT-Feld
« Antwort #8 am: 04.09.04 - 17:30:10 »
Hi Bernhard!
Hab leider auf meinem "Hauptrechner" (der lieben guten "Mutter") derweil keine andere LN Version... die 5'er und 6'er gingen leider wegen der 7'er zugrunde ("Installationsfehler" sagt man auch im Allgemeinen oder so  :P ) Tja, und mein TUXI mit der 5'er ist heute irgendwie gar nicht gut drauf...

OK, also das mit den Feldern ist ja kein echtes Prob, habe ich natürlich alles auf meine Testmaske angepasst... A-Bär: ich denke wir haben uns da ein wenig missverstanden!
Es ist ja immer noch so, dass wenn der Text des RTF der gleiche (!!) ist die Änderungszeit nicht aktualisiert wird (weil ist ja nichts aktueller als das alte was im Feld stand).
Ansonsten klappt der Code natürlich... und: so weit ich kann helfe ich gerne hier mit!
 :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:item.LastModified bei RT-Feld
« Antwort #9 am: 04.09.04 - 17:40:23 »
Hab leider auf meinem "Hauptrechner" (der lieben guten "Mutter") derweil keine andere LN Version... die 5'er und 6'er gingen leider wegen der 7'er zugrunde ("Installationsfehler" sagt man auch im Allgemeinen oder so  :P )

Guckst Du mal bei hier bei BestPractices  ;) Matthias hat da eine hervorragende Zusammenstellung gemacht.

Hi Bernhard!
OK, also das mit den Feldern ist ja kein echtes Prob, habe ich natürlich alles auf meine Testmaske angepasst... A-Bär: ich denke wir haben uns da ein wenig missverstanden!
Es ist ja immer noch so, dass wenn der Text des RTF der gleiche (!!) ist die Änderungszeit nicht aktualisiert wird (weil ist ja nichts aktueller als das alte was im Feld stand).
Jo, da haben wir uns missverstanden, denn mein Q&D-Code macht natürlich genau das, wie wir es hier diskutieren: Er schnallt nicht, wenn via Clipboard der gleiche Inhalt wieder in ein RTF eingefügt wird.
Wie gesagt: Feature or Failure - das ist jetzt schon fast eine philosophische Frage  ;)

so weit ich kann helfe ich gerne hier mit!

Dafür sind wir sehr dankbar. Vor Deinen Beiträgen brauchst Du Dich wirklich nicht zu verstecken !

Bernhard

y20frank

  • Gast
Re:item.LastModified bei RT-Feld
« Antwort #10 am: 04.09.04 - 17:49:04 »
Zitat
Dafür sind wir sehr dankbar. Vor Deinen Beiträgen brauchst Du Dich wirklich nicht zu verstecken !
Danke Dir, das ist nett und baut auf ...  :-*

Zitat
das ist jetzt schon fast eine philosophische Frage
Ich denke das ist wirklich eine Frage, die man (endlos) diskutieren kann und die für Philos' geeignet ist... ich denke da z.B. an unseren redseeligen Datenschützer, der immer 'ne absolute Revisionsgewährleistung (wg. Datenschutzgesetz) auf alles haben will...  :P

Betsen Gruß
Frank  :)
« Letzte Änderung: 04.09.04 - 17:51:44 von y20frank »

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:item.LastModified bei RT-Feld
« Antwort #11 am: 04.09.04 - 23:05:52 »
Hab leider auf meinem "Hauptrechner" (der lieben guten "Mutter") derweil keine andere LN Version... die 5'er und 6'er gingen leider wegen der 7'er zugrunde ("Installationsfehler" sagt man auch im Allgemeinen oder so  :P )

Guckst Du mal bei hier bei BestPractices  ;) Matthias hat da eine hervorragende Zusammenstellung gemacht.

Danke für die Blumen Bernhard, allerdings war das Teamwork.
Jens (Semeaphoros) hatte da den größten Teil erstellt, ich hatte nur noch meine Ergänzungen (mehrere Datenverzeichnisse, ncompact) eingebracht.

Ich will mich nicht mit fremden Federn schmücken, daher die kurze Richtigstellung  ;)

Grüße,
Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:item.LastModified bei RT-Feld
« Antwort #12 am: 04.09.04 - 23:48:33 »
Ohne jetzt irgendwas von den "Blumen" zurück zu nehmen: Ja, Du hast recht, Matthias - hier zeichnete Jens als Autor (und Hauptakteur), daher flechte ich den selben Strauss erneut und stecke diesmal noch drei Blumen mehr hinein  :D

Euer Fleiss im BP-Forum ist aber nur und ausschliesslich zu loben !

DANKE !

Bernhard

y20frank

  • Gast
Re:item.LastModified bei RT-Feld
« Antwort #13 am: 04.09.04 - 23:56:39 »
Jou, prima beschrieben alles!  :D
Klasse ist nur, das meine Installations-CD für die 5'er Version nicht mehr vom CD-Laufwerk lesbar erkannt wird...  :-\ Sieht auch etwas verratzelt aus auf der DataSite... aber den Thread merk ick mir mal...

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:item.LastModified bei RT-Feld
« Antwort #14 am: 05.09.04 - 00:03:34 »
Klasse ist nur, das meine Installations-CD für die 5'er Version nicht mehr vom CD-Laufwerk lesbar erkannt wird...  :-\ Sieht auch etwas verratzelt aus auf der DataSite

Na ja, einen Artikel, der regelmäßige Backups empfiehlt, haben wir noch nicht  ;D
« Letzte Änderung: 05.09.04 - 00:04:06 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


y20frank

  • Gast
Re:item.LastModified bei RT-Feld
« Antwort #15 am: 05.09.04 - 00:13:26 »
hab noch ein bis zwölf dieser CD's im Büro rumliegen... aber das ist 'n paar Kilometer entfernt...  ;) Muss da mal morgen hin...
Hmmm, vielleicht könnt' ich davon ein paar auch bei Ätsch-Bäy verhökern... oder?!  ;D

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:item.LastModified bei RT-Feld
« Antwort #16 am: 05.09.04 - 00:24:24 »
Wenn Ihr - Matthias, Frank - daran interessiert seid, sollten wir uns Michis Problem wirklich mal näher annehmen. Ich kenne Michi persönlich - wenn er ein Problem hat, dann ist es auch eins. Das Ergebnis könnte interessant sein, denke ich.
Diese UI-Clipboard-Geschichte ist schon spannend - erkennt Notes das sicher ? Ist das überhaupt so gewünscht ? Wenn ja, dann beisst sich auf jeden Fall NotesDocument.LastModified und NotesItem.LastModified.

Sowieso ein interessantes Problem (vor allem, wenn man mit vielen Repliken und dann mit Agents und CutOff Dates arbeitet): Dokument wird auf Server A erstellt. Vor der Replikation läuft Agent auf Server B. Dann repliziert A mit B. Das Dokument auf B ist jetzt "just modified", aber vor längerer Zeit "created". Wisst Ihr, was ich meine ?
Also: Dieser Thread könnte zu weiteren führen  ;)

Bernhard

Offline -Michael-

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
    • Software Guide
Re:item.LastModified bei RT-Feld
« Antwort #17 am: 05.09.04 - 01:19:10 »
Hi,

So spät hier noch was los :-)

Danke für Eure Antworten !

Szenario war folgendes (hatte ich beim "Schulterblick" gesehen):

User
1) öffnet Mailfile
2) selektiert Mail in View/Folder
3) klickt auf "Weiterleiten" - Button
4) geht mit Cursor in Body-Feld
5) Strg+A, Strg+C
Nun ist also ein RT-Inhalt in der Zwischenablage.

Danach Wechsel in meine DB.
6) Dokument öffnen
7) In Edit-Mode wechseln via Doppelklick
8) Cursor in RT-Feld platzieren
9) Strg+A, Strg+V
10) Speichern

Nun wird wohl nicht immer im PostSave-Event festgestellt, dass item.LastModified sich geändert hat.
Reinkopieren des zuvor kopierten Inhalts des gleichen RT-Feldes: Stimmt, dann keine Änderung lt. item.LastModified, das hatte ich auch so festgestellt.
Reinkopierter Inhalt ist aber hier völlig anderer Inhalt als der des ursprünglichen RT-Feld-Inhaltes, ein Verwechseln der Tasten seitens User also ausgeschlossen.

Ca. 4-5mal konnte ich das bei 2 Usern sehen, selber aber nie reproduzieren. War eben auch nicht immer der Fall, sonder nur "manchmal".

Seltsam !

Michael

y20frank

  • Gast
Re:item.LastModified bei RT-Feld
« Antwort #18 am: 05.09.04 - 12:03:12 »
Hi Michael, jaja sicher - immer im "Dienst"...  ;D

Was du da beschreibst ist 'n Knaller... habe die Vorgehensweise auch heute morgen zig mal probiert und keine Reproduzierbarkeit festgestellt... (mit dem 5'er auf Linux und der 7'er beta auf Windoof).
Hm, bei IBM habe ich da auch nichts in dieser Richtung gefunden... bleibt uns wohl nur weiter zu Testen..?! ???
Hat dein RT_Feld ggf. irgendeine Besonderheit? Hide-When-Formel oder so?

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz