Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet 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
-
Hi,
Wie liest denn Dein Tool das Feld aus?
Andreas
-
... und die wohl in C++ geschreiben.
Und darauf habe ich keine Zugriffsmöglichkeit, :-((
Gruß Jochen
-
Die Belegung von Systemfeldern wie $Revisions ist fest verdrahtet. Du kannst darauf keinen Einfluss nehmen.
Bernhard
-
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
-
Hallo Andreas,
da werd ich dann wohl nicht drumrum kommen, das $Revisions - Feld programmtechnisch anzupacken. Wollte ich eigentlich vermeiden,
Gruß Jochen
-
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
-
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
-
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
-
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
-
6.5.4 engl.
Beispiel Memo.
New Memo : kein $Revisions
CTRL-S: kein $Revisions
Save as Draft: $Revisions als Date/Time
-
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
-
Nachtrag: Schaue ich mir das R6-Dokument mit einem R5-Client an, dann zeigt auch dieser nur Zeit/Datum und nicht Liste an ...
Bernhard ???
-
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
-
If UBound (doc.GetItemValue ("$Revisions")) = 0 then
Call doc.Save (True, False, True)
End If
Das wäre die kürzere Variante ;)
Bernhard
-
Danke,
manchmal ist man einfach zu blind, um den einfachsten Code zu schreiben, :-)
Gruß Jochen
-
Einfacher ist immer schwerer ;)
Bernhard
-
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
-
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