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
.