Element 'variable'

Das Element <variable> definiert eine Variable. Es enthält Informationen in einem Format, auf das Ausdrücke verweisen können. Eine Variable kann auf der Ebene des Regelsatzes, eines Regelblocks oder einer Regel definiert werden.

Details

Regelsatzvariable
Sie wird global auf den Regelsatz angewendet. Jeder Ausdruck in diesem Regelsatz kann auf sie verweisen.
Regelblockvariable
Sie kann nur im Regelblock (und beliebigen untergeordneten Regelblöcken) angewendet werden. Jeder Ausdruck in diesem Regelblock kann auf sie verweisen.
Regelvariable
Sie wird nur auf Ausdrücke in dieser Regel angewendet.

Variablen können den gleichen Namen auf unterschiedlichen Ebenen in der Regelhierarchie haben. Beim Zugriff auf eine Variable wird die erste Definition einer Variablen ausgehend von der lokalen Ebene verwendet. Wird eine Variable z. B. auf der Ebene des Regelsatzes, des Regelblocks und der Regel mit dem gleichen Namen definiert, wird die Variablendefinition auf der Ebene der Regel von den Ausdrücken in dieser Regel verwendet.

Wenn Variablen auf der Ebene des Regelsatzes oder Regelblocks definiert werden, werden sie zu unterschiedlichen Zeiten von mehreren Regeln abgerufen und festgelegt. Daher sollten die Interaktionen zwischen den Variablen im Regelsatz sorgfältig codiert werden, damit sichergestellt ist, dass die Variablenwerte korrekt verwaltet werden.

Wenn die Variable auf der Ebene des Regelsatzes oder Regelblocks definiert ist, wird sie nicht reinitialisiert, nachdem das Regelmuster abgeglichen wurde.

Unter den beiden folgenden Bedingungen müssen Sperren für das Abrufen und Festlegen von Regelsatz- und Regelblockvariablen verwendet werden, um zu verhindern, dass die Variablen falsch festgelegt werden:
  • Wenn eine Zeitgeberregel eine Variable während einer <onTimeOut>-Aktion abruft oder festlegt
  • Wenn es sich bei der Anwendung, in die die ACT-Engine eingebettet ist, um eine Multithread-Anwendung handelt

Wenn eine Regel mit einem Gruppierungsschlüssel definiert wird, sind Regelvariablen, die durch das Element <variable> definiert werden, in Lebenszyklusaktionen oder im Element <filteringPredicate> nicht gültig, das in einem Element<activateOnEvent> oder <deactivateOnEvent> enthalten ist, das wiederum in einem Element <activationInterval> enhalten ist. Dies ist der Fall, weil die Regelvariablen in diesem Fall nur auf eine Regelinstanz angewendet werden und Regelinstanzen bei der Ausführung dieser Ausdrücke nicht vorhanden sind.

Attribute

<variable> hat die folgenden Attribute:

Tabelle 1. Attribute des Elements <variable>
Name Beschreibung Datentyp Erforderlich?
name Gibt eine bestimmte Variable an. Auf eine Variable wird durch ihren Namen verwiesen. xsd:NMTOKEN Ja
dataType Gibt den in der Variablen enthaltenen Informationstyp an. Es muss sich um einen vollständig qualifizierten Datentyp wie z. B. java.lang.String handeln. xsd:NMTOKEN Ja

Namenseinschränkungen für Variablen

Variablennamen unterliegen gewissen Einschränkungen. Der Wert des Namensattributs im Element <variable> unterliegt den folgenden Einschränkungen:
  • Er darf nur die folgenden Zeichen enthalten:
    • Buchstaben A-Z in Großschreibung (ASCII, lateinischer Zeichensatz). Die Unicode-Darstellung ist \u0041-\u005a.
    • Buchstaben a-z in Kleinschreibung (ASCII, lateinischer Zeichensatz). Die Unicode-Darstellung ist \u0061-\u007a.
    • Das ASCII-Unterstreichungszeichen (_). Die Unicode-Darstellung ist \u005f.
    • Das Dollarzeichen ($). Die Unicode-Darstellung ist \u0024.
    • Die ASCII-Ziffern 0 – 9. Die Unicode-Darstellung ist \u0030-\u0039.
  • Er darf nicht null sein.
  • Er darf keine leere Zeichenfolge sein.
  • Er darf keine Leerstellen enthalten.
  • Er darf keinen Punkt enthalten.
  • Er darf nicht mit act_ in beliebigem Format (keine Großschreibung, Kleinschreibung oder Groß-/Kleinschreibung) beginnen.

Enthalten in

Enthält

<variable> enthält die folgenden Elemente.

Die Elemente müssen in der angezeigten Reihenfolge codiert werden. Wenn ein Element optional ist, muss es nicht codiert werden. Alle codierten Elemente müssen jedoch die richtige Reihenfolge aufweisen.

Tabelle 2. Im Element <variable> enthaltene Elemente
Element Erforderlich oder optional?
<comment> Optional. 0 oder 1 Vorkommen ist zulässig.
<varInitializer> Erforderlich. 1 Vorkommen ist zulässig.
Zugehörige Konzepte
Variablen