Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: seerow am 25.11.03 - 16:29:37
-
Hallo zusammen,
wie kann ich mit Hilfe des aktuellen Datums/Uhrzeit, beim speichern eines Dokumentes, eine "Doc ID" erzeugen?
Meine zweite Frage zeilt in Richtung DB Design. Ist es möglich, nur die Ansicht in Notes darzustellen (also ohne den rechten Navigations Frame)?
Könnt ihr mir da bitte weiter helfen? :-\
-
Eine 'DocID' so wie ich sie verstehe - berechnet Notes für jedes Dokument (beim Speichern).
Da kannst Du gar nichts berechnen.
Meinst Du, aus dem Zeitstempel einen (relativ) eindeutigen Wert zu erzeugen?
-
hi,
ja genau, aus den Zeitstempell.
zb. 200325111647
-
Das kannst Du Dir doch aus der aktuellen Uhrzeit oder dem Zeitpunkt der Erstellung einfach per @function oder LS als Textstring zusammen basteln?
Oder was ist das Problem, was ich jetzt vielleicht übersehe ?
Bernhard
PS: By the way - solche eine ID muss nicht zwangsläufig eieindeutig sein, da können per Zufall auch mal zwei IDs mit dem gleichen Wert entstehen. Da sollte man also vorsichtig sein.
-
Genau. Den Benutzer Namen würde ich noch dazunehmen - dann wirds recht sicher.
-
alles klar.....ich werds mal probieren, Danke
-
Wenn Du noch Fragen hast, schreibe bitte unbedingt dazu, mit was Du programmierst. Zwischen LS, @functions, JavaScript oder Java oder gar der C-API gibt es ja diverse Unterschiede ;-)
Bernhard
-
kaum... ;)
-
Auf einfache Weise kann man mit
@Unique
eine Dok-ID erzeugen. Die wird aus dem Anfangs- und Endbuchstaben des Vor- und Nachnamens sowei einem Zeitstempel gebildet. Es ist sehr unwahrscheinlich, dass doppelte vergeben werden.
Andreas
-
Interessante Sache, Andreas - hatte ich vorher selbst noch nie probiert (geschweige denn irgendwann mal einen Blick auf @Unique ohne Parameter geworfen).
Eine Ergänzung hierzu: Notes verwendet hier offensichtlich als ersten Teil des Rückgabewertes den
- Anfangsbuchstaben des Vornamens,
- die ersten beiden und
- den letzten Buchstaben des Nachnamens
(also oberflächliche! Erklärung von "BKÖR").
Für den zweiten Teil des Rückgabewertes wird aber bestimmt kein bzw. nicht nur ein) Zeitstempel verwendet: Egal, ob ich die Funktion zweimal hintereinander händisch auslöse oder programmatisch zweimal hintereinander ausführe - ich bekomme oft (in ersterem Fall) oder immer (im zweiten Falle) fortlaufende Codes.
Interessant, was die Jungs da gemacht haben ;-)
Und wo es hinpasst ...
Ciao & danke,
Bernhard
-
Hi,
tja, da war ich wohl etwas Spät. Mit @unique bekommt man es auch hin. Trotzdem danke für den tipppppp 8)
-
Also, wenn es darum geht, das Dokument eindeutig zu stempeln, warum nicht die DocumentUniquID verwenden? Die ist, genau wie @Unique ohne Argumente eine eindeutige Kennzeichnung
-
Hi Jens,
klar @Text(@DocumentUniqueID) geht auch. Nur verwende ich die für Nummern in Formularen etc. nicht, da die etwas länglich sind.
Bei @Unique muss man allerdings eins berücksichtigen:
Wenn man eine anonyme Diskussionsdatenbank macht, in dem man anonyme Maske einstellt - sollte man @Unique besser nicht verwenden. Man kann nämlich die Namen der User eingrenzen. Und schwupp, hat man die Verdächtigen, die die Geschäftsleitung beschimpfen.
Also in diesem Fall was anderes.
Andreas
-
Andreas, das ist ein wichtiger Hinweis, dass @unique Spuren der Rückverfolgbarkeit legt .... und dass die DocUNID etwas länger ist, ist schon so, wollte nur den Hinweis geben, dass man da auch eine Möglichkeit hat.