Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: jkunze am 10.02.06 - 11:02:31

Titel: $Revisions - Problem/Änderung in R6
Beitrag von: jkunze am 10.02.06 - 11:02:31
Hallo,

in R5 wurde das Feld $Revisions schon bei der ersten Änderung als Liste angelegt. In R6 erst ab der 2. Änderung. Dadurch habe ich mit einem Tool ziemliche Probleme (es erwartet explizit eine Liste).

Auslöser hierfür ist der Klient, denn die Serverversion spielt - nach meinen Tests - keine Rolle.

Gibt es eine Möglichkeit, das $Revisions-Feld auch mit dem 6er Klient sofort als Liste anzulegen?

Gruß Jochen
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: ascabg am 10.02.06 - 11:05:08
Hi,

Wie liest denn Dein Tool das Feld aus?

Andreas
Titel: Wir benutzen da eine externe .dll ....
Beitrag von: jkunze am 10.02.06 - 11:06:54
... und die wohl in C++ geschreiben.

Und darauf habe ich keine Zugriffsmöglichkeit, :-((

Gruß Jochen
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: koehlerbv am 10.02.06 - 11:14:31
Die Belegung von Systemfeldern wie $Revisions ist fest verdrahtet. Du kannst darauf keinen Einfluss nehmen.

Bernhard
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: Glombi am 10.02.06 - 11:16:02
Du kannst es mittels Script erzwingen, dass $Revisions angelegt wird:

Sub Postsave(Source As Notesuidocument)
   
   Dim doc As NotesDocument
   Set doc = Source.Document
   If Not doc.HasItem( "$Revisions") Then
      Call doc.Save( True, True, True )
   End If
   
End Sub

Andreas
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: jkunze am 10.02.06 - 11:22:35
Hallo Andreas,

da werd ich dann wohl nicht drumrum kommen, das $Revisions - Feld programmtechnisch anzupacken. Wollte ich eigentlich vermeiden,

Gruß Jochen
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: koehlerbv am 10.02.06 - 11:23:48
By the way: Bei mir wird in R6 $Revisions bei der 1. Änderung angelegt. Und das verhält sich damit genau wie unter R5.

Und was meinst Du mit "programmtechnisch anpacken"?

Bernhard
Titel: Also das ist so:
Beitrag von: jkunze am 10.02.06 - 11:28:43
Dokument neu: Kein Feld $Revisions
1. Speichern: $Revisions - Data Type: Time/Date
2. Speichern: $Revisions - Data Type: Time/Date List

In R5 war es schon beim 1. Speichern Data Type: Time/Date List,

Gruß Jochen
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: koehlerbv am 10.02.06 - 11:33:51
Bei mir ist das von Anfang an eine Liste (lt. Anzeige der properties).

Ganz abgesehen davon: Jedes NotesItem ausser RichText ist per se und immer eine Liste - und wenn sie nur 1 Element enthält.

Bernhard
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: Glombi am 10.02.06 - 11:36:53
Zitat
Dokument neu: Kein Feld $Revisions
1. Speichern: $Revisions - Data Type: Time/Date
2. Speichern: $Revisions - Data Type: Time/Date List
Ist bei mir (6.5.4 dt.) genauso.

Andreas
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: umi am 10.02.06 - 11:53:10
6.5.4 engl.
Beispiel Memo.
New Memo : kein $Revisions
CTRL-S: kein $Revisions
Save as Draft: $Revisions als Date/Time
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: koehlerbv am 10.02.06 - 11:58:25
Liste oder nicht dürfte keine Rolle spielen, da es im Backend für Items diese Differenzierung gar nicht gibt.

A-Bär: 1. Änderung in R5 - Revisions = 12 Byte. 1. Änderung in R6: 8 Byte.

Bernhard
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: koehlerbv am 10.02.06 - 12:08:52
Nachtrag: Schaue ich mir das R6-Dokument mit einem R5-Client an, dann zeigt auch dieser nur Zeit/Datum und nicht Liste an ...

Bernhard  ???
Titel: Ich machs jetzt wie vorgeschlagen, ...
Beitrag von: jkunze am 10.02.06 - 13:29:01
Sub Postsave(Source As Notesuidocument)
   
Dim doc As NotesDocument
Dim var As Variant
Dim i As Integer
   
Set doc = Source.Document
i       = 0
   
If doc.HasItem( "$Revisions") Then
   Forall x In doc.GetItemValue( "$Revisions" )
      i = i + 1
   End Forall
   
   If i = 1 Then
      Call doc.Save( True, True )
   End If
End If      

End Sub

Schönes WE und Gruß Jochen
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: koehlerbv am 10.02.06 - 13:32:47
If UBound (doc.GetItemValue ("$Revisions")) = 0 then
   Call doc.Save (True, False, True)
End If

Das wäre die kürzere Variante  ;)

Bernhard
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: jkunze am 10.02.06 - 13:59:20
Danke,

manchmal ist man einfach zu blind, um den einfachsten Code zu schreiben, :-)

Gruß Jochen
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: koehlerbv am 10.02.06 - 14:07:05
Einfacher ist immer schwerer  ;)

Bernhard
Titel: Re: $Revisions - Problem/Änderung in R6
Beitrag von: jkunze am 10.02.06 - 14:21:09
Jajaja, denken tut weh!

Ich mußte deinen Script aber noch um eine Zeile erweitern - und damit ist er auch schon wieder fast so lang wie meiner, :-)

If Ubound( doc.GetItemValue( "$Revisions" )) = 0 Then
  Call doc.Save( True, True )
  Call doc.Save( True, True )         
End If

Jetzt wird das Feld $Revisions gleich angelegt und zur Liste,

Gruß Jochen
Titel: Noch ne Frage zu dem Thema:
Beitrag von: jkunze am 16.02.06 - 09:00:56
gibt es mit @Functions die Möglichkeit abzufragen, ob ein Feld ein/kein Listenfeld ist?

Mit @Elements klappt das in dem Zusammenhang leider nicht. Ich muß unterscheiden können zwischen:

$Revisions Time/Date und
$Revisions Time/Date Liste

Und das muß genau dann klappen, wenn die Liste exakt einen Wert enthält.

Hat jemand eine Idee?

Gruß Jochen