Auch ich hatte schon (fortlaufende) Nummern

Hier ein Anwendungsprofil bei dem die Devise "wird schon nix passieren beim Überbrücken" garantiert zu einem Kurzschluss mit Funkenregen führen würde:
Mehrere sich replizierende DB's über Server in Europa, Mittelamerika und USA, eine zunehmende Anzahl an lokalen Notebook-Usern
und die Anforderung, eindeutige ID's für die Dokumente (Auditnummern - Vorgabe nach TS16949) zu vergeben.
Ich habe das mit einem Kompromiss gelöst:
- neue Audit-Dokumente können nur angelegt werden, wenn eine Verbindung zum zentralen Nummernserver besteht
- Jedes Mal, wenn ein neues Audit angelegt wird, wird dort per LS ein Dokument mit der eindeutigen Nummer (Anlegejahr & 1 höher als das letzte ...) und einem Link zum "Basisdokument" erzeugt (wäre aber mit dieser Lösung auch per simplem Hochzählen im Profile des Nummernservers denkbar, oder?)
- Ist die Verbindung nicht vorhanden, wird die Umgebungsvariable "smode" auf "Offline" gesetzt und die "Neu Anlegen" Funktion darüber per HideWhen ausgeblendet.
Die Verbindung zum zentralen Server überprüfe ich mit folgendem Code im PostOpen der Datenbank:
| Sub Postopen(Source As Notesuidatabase) |
| Dim session As New NotesSession |
| Dim db As NotesDatabase |
| Dim doc As NotesDocument |
| |
| Set db = session.CurrentDatabase |
| |
| Set doc = db.GetProfileDocument("setup") |
| |
| |
| |
| nServerName=doc.nServer(0) |
| nServerPath=doc.nServer(1) |
| |
| text1$="Hinweis" |
| text2$="Kann keine Verbindung zum zentralen Nummernserver " & Chr$(10) & Chr$(10) & _ |
| "\\" & nServername &"\" & nServerPath & Chr$(10) & Chr$(10) &_ |
| "herstellen." & Chr$(10) & "Einige Funktionen stehen nicht zur Verfügung" |
| |
| Dim ndb As New NotesDatabase( nServerName, nServerPath ) |
| |
| If Not ndb.IsOpen Then |
| Msgbox text2$,48,text1$ |
| Call session.SetEnvironmentVar("smode","Offline") |
| Else |
| Call session.SetEnvironmentVar("smode","Online") |
| End If |
| End Sub |
Funktioniert jetzt seit einem guten Jahr in der Form ohne jegliche Probleme ... aber bei der IMHO völlig blödsinnigen Anforderung, bei gelöschten Doks die Nummer wieder runter zu zählen (das gäb doch keine eindeutige Identifizierbarkeit mehr? oder hab ich da was falsch verstanden?) wäre natürlich auch diese Lösung nicht praktikabel ...