Eindeutiger Zähler in Notes
Herzlich Willkommen!/Tipps & Tricks/Eindeutiger Zähler in Notes

Eindeutiger Zähler in Notes

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)