ID-Erzeugung

Syntax

	nextId($sequence)

Beschreibung

Erzeugt eine neue eindeutige Nummer in der Sequenz mit gegebenem Namen. Der Rückgabewert ist eine Ganzzahl. Mehrere Aufrufe mit demselben Sequenznamen erzeugen unterschiedliche fortlaufende Nummern. Aufrufe mit unterschiedlichen Sequenznamen können dieselbe Nummer generieren.

Es können mehrere Argumente übergeben werden. In diesem Fall werden alle Argumente zu einem Sequenznamen konkateniert. Ist ein Argument keine Zeichenkette, so wird es in eine Zeichenkette konvertiert. Ist ein Argument ein Fachobjekt, so wird seine interne technische ID verwendet, um als Sequenzname zu dienen. Hierdurch kann für ein bestimmtes Fachobjekt eine Sequenz aus fortlaufenden Nummern generiert werden.

Die Funktion darf nur in einem Transaktionskontext aufgerufen werden.

Parameter

Name Typ Beschreibung Pflicht Default
sequence Zeichenkette Name der Sequenz. Kann auch in mehreren Parametern angegeben werden, die konkatiniert werden. ja

Rückgabewert

Typ: Zahl

Eine ganze Zahl aus der genannten Sequenz.

Beispiele

Eine Sequenz

	{
   a = new(`my.module:MyClass`);
   $a.set(`my.module:MyClass#name`, "A" + nextId("Seq1"));
   b = new(`my.module:MyClass`);
   $b.set(`my.module:MyClass#name`, "B" + nextId("Seq1"));
   list($a, $b);
}

Ausgabe: Eine Liste mit Objekten mit folgenden Namen: [A1, B2]

Mehrere Sequenzen

	{
   a = new(`my.module:MyClass`);
   $a.set(`my.module:MyClass#name`, "A" + nextId("Seq1"));
   b = new(`my.module:MyClass`);
   $b.set(`my.module:MyClass#name`, "B" + nextId("Seq1"));
   c = new(`my.module:MyClass`);
   $c.set(`my.module:MyClass#name`, "C" + nextId("Seq2"));
   list($a, $b, $c);
}

Ausgabe: Eine Liste mit Objekten mit folgenden Namen: [A1, B2, C1]

Das Objekt c erhält hier die Nummer 1, da die ID mit einer anderen Sequenz erzeugt wurde, als a und b.