Nummernkreise

Nummernkreise dienen dazu, eindeutige Zahlen bzw. Zeichenketten zu erzeugen, die z. B. für Barcodes oder als IDs verwendet werden können.

Über in Lobster Data Platform / Orchestration konfigurierte Nummernkreise solche eindeutigen Kennungen zur Laufzeit dynamisch erzeugt und automatisch zugeordnet werden.

Für die automatische Zuordnung von Barcodes zu Geschäftsobjekten bzw. deren Positionen stehen eigene Ereignisaktionen (Generiere Barcodes (Bestellung), Generiere Barcodes (Sendung), usw.) bereit, die per Konfiguration einen bestimmten Nummernkreistyp spezifizieren.

Außerdem können über den Wertauflöser "Nummernkreiswert" Werte bei einem Nummernkreistyp gezielt abgefragt werden, z. B. um sie per Ereignisaktion "Setze Wert" zuzuweisen.

Da die Kapazität eines Nummernkreises aus technischer Sicht immer endlich ist, sieht Lobster Data Platform / Orchestration Mechanismen vor, die einem Administrator beim geordneten Wechsel zwischen Nummernkreisen desselben Typs unterstützen sollen.

Je Nummernkreis kann eine prozentuale Warnschwelle (Anteil bereits verbrauchter Nummern) definiert werden, deren Überschreitung z. B. eine Benachrichtigung per E-Mail auslösen kann (s. Nummernkreis (Ereignisse)).

Dynamische Zuordnung des "zuständigen" Nummernkreises

Immer wenn eine "Nummer" mit Bezug zu einem bestimmten Nummernkreistyp angefordert wird, wird dynamisch ein "zuständiger" Nummernkreis ermittelt.

Dabei werden zunächst folgende Kriterien geprüft, um grundsätzlich geeignete Nummernkreise zu ermitteln:

  • Der Nummernkreis muss per Konfiguration dem angefragten Nummernkreistyp zugeordnet sein.

  • Für den Nummernkreis muss per Konfiguration das Kennzeichen Aktiv gesetzt sein.

  • Dem Nummernkreis muss per Konfiguration mindestens ein Zuordnungskriterium zugewiesen sein, das im Kontext der Anfrage lesbar ist und zutrifft.

►HINWEIS◄ Um eine Nummer von einem Nummernkreis zu beziehen, reicht also ggf. eine Berechtigung "Zuordnungskriterium/Lesen" aus. Berechtigungen für "Nummernkreise" sind nicht erforderlich, da sie nur die Konfiguration betreffen.

  • Sofern mehrere Nummernkreise diese Anforderungen erfüllen, wird die Auswahl über das Zuordnungskriterium mit der höchsten Priorität beschränkt ("Best-matching" s. Zuordnungskriterien).

  • Nur wenn dann immer noch mehrere Kandidaten konkurrieren, gibt die in der Konfiguration (s. u.) zugewiesene Priorität des Nummernkreises den Ausschlag.

Konfiguration von Nummernkreisen

images/download/attachments/62850144/image2018-11-26_8-37-56-version-1-modificationdate-1603450999666-api-v2.png

In der Unterkategorie "Details" (1) steht neben den allgemeinen Grundfunktionen Neu, Löschen, Abbrechen, Kopieren, Speichern auch der Button Test beginnen (s. Tests) zur Verfügung.

Die Buttons Zurücksetzen und Suchen in der Unterkategorie "Liste" (2) betreffen die Anzeige der Daten im Listenbereich (10).

Der Button Zuweisen (3) öffnet ein Untermenü zum Hinzufügen oder Löschen von Zuweisungen für Zuordnungskriterien für den Nummernkreis.

Die Unterkategorie "Nummernkreis" (4) enthält spezifische Funktionen für Nummernkreise:

  • Per Button "Vorschau" in einem Fensterbereich des Reiters "Nummernteile" (s. u.) eine Vorschau für die per "Anzahl" wählbare Anzahl an Nummern generiert.
    ►HINWEIS◄ Diese Funktionalität überschneidet sich mit der Testfunktion (s. Button "Test beginnen" und Tests)

  • Per Button "Letzten Wert anzeigen" kann der letzte vom Nummernkreis ausgegebene Wert in einer Meldung angezeigt werden.

Ein Name (5) für den Nummernkreises muss angegeben werden aber nicht nicht eindeutig sein, da zur Identifikation die ID ausschlaggebend ist und die Adressierung zur Abfrage von Nummern ohnehin nur den Nummernkreistyp (6) spezifiziert.

Jeden Nummernkreis muss unter Typ (6) genau einen Nummernkreistyp zugeordnet werden, über den auch die Abfrage von Nummern durch Ereignisbehandlungen angestoßen wird.

Der Haken Aktiv (7) entscheidet, ob ein Nummernkreis bei Anfragen überhaupt berücksichtigt wird. Falls beim Versuch eine Nummer zu erzeugen ein Fehler auftritt, wird ein Nummernkreis automatisch inaktiv (s. Nummernkreis (Ereignisse)).

Die Priorität (8) entscheidet über die dynamische Zuordnung des zuständigen Nummernkreises (s. oben), wenn keine anderen Kriterien eine eindeutige Auswahl ergeben. Sie kann genutzt werden, um den Schwenk zu einem neuen Nummernkreis zu automatisieren, wenn der Vorgänger erschöpft ist. Der bei Bedarf nachrückende Nummernkreis sollte dazu vorkonfiguriert und mit einer niedrigeren Priorität als sein Vorgänger aber denselben Zuordnungskriterien (s. Abschnitt "Dynamische Zuordnung ..." oben) versehen werden.

Die Warnschwelle (9) gibt an, bei welchem prozentualen Ausschöpfungsgrad eines Nummernkreises das Ereignis Warnschwelle erreicht (s. Nummernkreis (Ereignisse)) ausgelöst werden soll. Was in diesem Fall passieren soll, ist über Ereignisbehandlungen zu definieren.

Im unteren Bereich des Fensters erscheint eine Liste (10) der definierten Nummernkreise, die für den Benutzer sichtbar sind.
►HINWEIS◄
Diese Liste zeigt nicht unbedingt alle Nummernkreise, die für den Kontext operativ relevant sind, da dafür kein Lesezugriff für die Konfiguration erforderlich ist, solange die Zuordnungskriterien "gelesen" werden können.

Nummernteile

images/download/attachments/62850144/image2018-5-14_10_4_39-version-1-modificationdate-1603450999737-api-v2.png

Die Baumansicht (1) links bereitet die Elemente der Konfiguration eines Nummernkreises hierarchisch auf.

Die Hierarchie der Nummernteile wird im Editor (2) rechts linear visualisiert. Die Abfolge der Nummernteile kann hier auch per drag & drop bearbeitet werden.

Nummernteile können per Klick auf das Plus-Symbol (3) hinzugefügt und über das Mülltonnen-Symbol (4) entfernt werden. Die Auswahl der verfügbaren Nummernteil-Typen hängt von den lizenzierten Modulen ab.

Konfigurationsparameter des ausgewählten Nummernteils - im Beispiel "Prüfziffer" (5) - erscheinen im Detailbereich (6).

Rechts vom Editor wird ein Vorschaufenster angezeigt, das über den Button "Vorschau" (s. oben) aktualisiert werden kann.

Konfiguration von Nummernteiltypen

Alle Typen von Nummernteilen haben die folgenden Merkmale gemeinsam:

  • Als Beschreibung kann Klartext zur jeweiligen Komponente eingetragen werden.

  • Wenn per Nummernteil wird ausgelöst durch auf einen dynamischen Nummernteil (s. Dynamisch (Nummernteil)) verwiesen wird, dann wird der Nummernteil, von dem der Verweis ausgeht nur dann "angesteuert", wenn der dynamische Nummernteil überläuft (s. Beispiel unten).

Die folgenden Typen können als Nummernteil verwendet werden:

Beispiel für die bedingte Auslösung von Nummernteilen

Ein Nummernkreis soll Kennungen ausgeben, die den Sitzplan eines Verkehrsflugzeugs unter der vereinfachenden Annahme abbilden, dass die Sitzreihen von 01 bis 32 lückenlos durchnummeriert sind und jeweils 6 Plätze pro Reihe existieren, die mit denn Buchstaben A, B, C, D, E und F unterschieden werden.

Die Kennungen ("Sitzplätze") sollen vom Nummernkreis so ausgegeben werden, dass die Sitzreihen von vorne nach hinten gefüllt und die Sitze innerhalb der Reihe von A bis F besetzt werden.

Dies kann zwei mit dynamischen Nummernteilen (s. Dynamisch (Nummernteil)) und einer Verknüpfung wie folgt gelöst werden:

images/download/attachments/62850144/image2018-11-27_11-14-49-version-1-modificationdate-1603450999647-api-v2.png images/download/attachments/62850144/image2018-11-27_11-12-51-version-1-modificationdate-1603450999650-api-v2.png

  • Für die "Sitzreihe" wird ein Laufzähler mit Startwert 1 und Endwert 32 vorgesehen. Mit Breite 2 und Fülllzeichen 0 werden die "Vornullen" für die ersten zehn Reihen sichergestellt.

  • Die Ausgabe von Kennbuchstaben für die "Sitzposition" wird über Hexadezimale Ziffern (A=10, ..., F=15) erreicht, indem Starwert 10, Endwert 15 und die Basis 16 gewählt werden.

  • Entscheidend ist die Einstellung für Nummernteil wird ausgelöst durch für die "Sitzreihe", wo auf den Nummernteil "Sitzposition" als Auslöser für den Wechsel der Sitzreihe verwiesen wird.

Ergebnis: (Vorschau für die ersten 20 Plätze)

images/download/attachments/62850144/image2018-11-27_11-27-7-version-1-modificationdate-1603450999645-api-v2.png