Kapitel-HauptseiteZurückblätternWeiterblätternBO-Doku Startseite

2.6. Sequenznummern

 

Die Datei "Sequenznummern" verwaltet für Dateien, in denen jedem Datensatz vom System automatisch eine eindeutige Nummer vergeben wird, die Abfolge dieser Nummern, die sogenannten Sequenznummern. Jede Datei mit automatischer Nummernvergabe hat (mindestens) einen Eintrag in der Datei "Sequenznummern":

 

 

Sequenz

Sequenznummer

Unter einer Sequenz ist die Kombination von Dateinummer und Mandantennummer zu verstehen, die Sequenznummer ist die nächste freie Datensatznummer dieser Sequenz.

 

Beispiel für die Datei "Auftrag":

 

 

41*1

20110445

 

Sequenz

Sequenznummer

 

 

Berechnen der nächsten freien Nummer

Die nächste freie Nummer wird vom System immer wieder neu ermittelt: Wenn Sie in einer Datei mit automatischer Nummernvergabe einen neuen Datensatz aufrufen, erhält dieser als Nummer die niedrigste verfügbare Sequenznummer aus der Sequenznummerndatei.

 

Der betreffende Eintrag der Sequenznummerndatei wird gelöscht und ein neuer Datensatz für die Datei wird angelegt, in dem die Sequenznummer um 1 erhöht wurde. Dies ist die nächste freie Nummer für die Datei.

 

mehrere Sequenznummern pro Datei

Hinweis:

Wenn Sie das Erfassen eines neuen Datensatzes abbrechen, wird dessen nicht benötigte Nummer als Eintrag in die Sequenznummern-Datei zurückgeschrieben, zusätzlich zu dem bereits bestehenden Eintrag für die Datei mit der bereits neuermittelten nächsten freien Nummer.

 

So kann es passieren, dass in der Datei "Sequenznummern" mehrere Einträge mit verschiedenen Sequenznummern für eine Datei vorliegen (insbesondere wenn mehrere Anwender gleichzeitig mit einer Datei arbeiten).

 

Das Vorliegen mehrerer Einträge für eine Datei ist jedoch völlig unbedenklich, da Business OPEN bei jeder Neuanlage eines Datensatzes kontrolliert, wieviele Sequenznummern-Einträge für die betreffende Datei existieren. Im Falle mehrerer Einträge sortiert Business OPEN die vorhandenen Einträge und übernimmt die niedrigste freie Sequenznummer für den neuen Datensatz.

 

Sequenznummer konfigurieren

Das Aussehen der Sequenznummer lässt sich vom Anwender in gewissem Umfang mitbestimmen. Im folgenden Beispiel für die Datei "Auftrag" wurde die Sequenznummer in eine achtstellige Zahl geändert, die mit der aktuellen Jahreszahl beginnt:

 

 

Möchten Sie eine Sequenznummer ändern, öffnen Sie den entsprechenden Datensatz in der Datei "Sequenznummern" und überschreiben Sie den Eintrag im Feld Sequ. Nummer.

 

Wenn Sie mit Nummern arbeiten, in denen die Jahreszahl vorkommt, müssen Sie die Sequenznummern zu jedem Jahreswechsel aktualisieren.

 

Hinweis:

Sequenzkontrolle

Rechnungsnummern

Rechnungsnummern sollten im System aufsteigend und fortlaufend sein. Business OPEN bietet eine Funktion, die Lücken in den Rechnungsnummern findet und füllt.

 

Die Sequenzkontrolle kann auch als Automatismus im laufenden Betrieb freigeschaltet werden. Den entsprechenden Schalter finden Sie auf der ausgeklappten Seite 5 im Mandanten.

 

neu in BO v20:

preemptive Sequenznummern-generierung

In BO v20 kann alternativ zur Standardgenerierung von Sequenznummern die sogenannte preemptive Sequenznummernerzeugung konfiguriert werden. Hierfür ist auf der ausgeklappten Seite 5 im Mandanten die Checkbox SequNumber_Worker anzuhaken:

 

 

Hinweis:

Wenn Sie in das darunter liegende Editierfeld eine 1 eintragen, schreibt BO eine Protokolldatei auf die Festplatte. Durch einen Klick auf das blaue Sternchen rechts daneben können Sie das Logfile direkt ansteuern (nur in der Einplatzversion). Im Serverbetrieb finden Sie das mit Datum und Uhrzeit versehene Logfile im Ordner Log neben dem Datenfile:

 

 

SequNumber_-Worker

Im Fall preemptiver Sequenznummerngenerierung übernimmt ein eigener SequNoDriver_Worker-Prozess am Server (zu erkennen am Hammer-Symbol) die Ermittlung neuer Sequenznummern:

 

 

Die zeitgleiche Anfrage für eine Laufnummer derselben Datei durch mehrere Anwender wird durch "preemptive" vermieden. Das Holen einer neuen Sequenznummer und die damit verbundenen Datensatz-Initialisierungen sind technisch gesehen deutlich schneller (normal 7 Millisekunden, preemptiv 0 Millisekunden).

 

Auch die o.g. Protokollierung kann als preemptiver Prozess schneller und weniger störend für die Hauptstränge des Geschehens in BO ablaufen.

 

 

Exkurs:

preemptive Prozesse in BO v20

BO v20/4D v18 ist eine 64 bit-Installation, welche Multi-Core-Systeme vollständig nutzen kann. Eines der interessantesten Features in diesem Zusammenhang ist die Unterstützung sogenannter preemptiver Prozesse.

 

Vereinfacht gesagt bedeutet dies, automatisch ablaufende Aktionen werden an mehrere Prozessoren oder Prozessorkerne delegiert, was Handlungsstränge, die in BO parallel laufen, entlastet und die Performance allgemein verbessert.

 

Für "preemptive" sind jedoch nur Prozeduren geeignet, die keine Interaktion mit dem Anwender benötigen. Preemptive Routinen werden vom Entwickler als solche gekennzeichnet und erledigen zeitgleich nur eine Aufgabe.

 

Anwendungsbeispiele in BO sind etwa SOAP-Anfragen an den 4D Server, die Sequenznummerngenerierung (s.o.) oder Protokollerstellung.


Kapitel-HauptseiteZurückblätternWeiterblätternBO-Doku Startseite