madicon.de Infos - Ingenieurbüro Manfred Dillmann

Ein eindeutiger Zähler geht bei Notes (grundsätzlich) nicht, da man nicht davon ausgehen kann, daß alle Benutzer die gleiche Schlüsseltabelle sehen. Man mag zwar anfangs davon ausgehen, niemand verwende eine Replik. Das kann sich aber innerhalb des Lebenszzyklus der Anwendung ändern.

Eine fortlaufende Nummer ist wg. dieser Überlegungen *unmöglich*. Man kann was basteln, aber das bleibt eine Bastelei.

 

Abhilfe

Schaffe eine eindeutige, nicht fortlaufende ID. Die Formel unten erzeugt sowas aus der Zeit. Annahme: es wird niemals zwei Benutzer geben, die in der selben Sekunde ein Dokument erzeugen. Wenn das zu „mutig“ ist, füge einfach ein Benutzerkennung hinzu (etwa die ersten Buchstaben von Vor- und Nachname).

 

Beispiel Eindeutiger Zähler

TimeNow := @Now;
YearString := @Right(@Text(@Year(TimeNow)); 2);
MonthString := @Select(@Month(TimeNow); "01"; "02"; "03"; "04"; "05"; "06"; "07"; "08"; "09"; "10"; "11"; "12");
DayNumber := @Day(TimeNow);
DayString := @Select(DayNumber; "01"; "02"; "03"; "04"; "05"; "06"; "07"; "08"; "09"; @Text(DayNumber));
HourNumber := @Hour(TimeNow);
HourString := @If(HourNumber = 0; "00"; @Select(HourNumber; "01"; "02"; "03"; "04"; "05"; "06"; "07"; "08"; "09"; @Text(HourNumber)));
MinuteNumber := @Minute(TimeNow);
MinuteString := @If(MinuteNumber = 0; "00"; @Select(MinuteNumber; "01"; "02"; "03"; "04"; "05"; "06"; "07"; "08"; "09"; @Text(MinuteNumber)));
SecondNumber := @Second(TimeNow);
SecondString := @If(SecondNumber = 0; "00"; @Select(SecondNumber; "01"; "02"; "03"; "04"; "05"; "06"; "07"; "08"; "09"; @Text(SecondNumber)));
@TextToNumber(YearString + MonthString + DayString + HourString + MinuteString + SecondString)

 

Notes Domino Version

Notes/Domino Version: ab 3.x

 

Ähnliche Beiträge