Mit dem Element <setenv> können Sie die Werte von Umgebungsvariablen in <interface>- oder <match>-Elementen initialisieren. Ein <setenv>-Element enthält keine anderen Elemente.
Das Element kann auf drei Arten verwendet werden:
- Wenn Sie einen Gruppennamen angeben, funktioniert das Element ähnlich wie der Befehl .set.
Es legt den Variablenwert im Masterdatensatz in der Datenbank fest, nicht den Variablenwert in der Kopie, die vom aktuellen Schritt verwendet wird. Die Änderung wirkt sich nicht auf den Adapter aus, der im aktuellen Schritt ausgeführt wird. Es ist nicht möglich, auf diese Art neue Variablen zu erstellen.
- Wenn Sie keinen Gruppennamen angeben, funktioniert das Element ähnlich wie der Befehl .bset. Es legt den Variablenwert in der Umgebung des aktiven Vorgangs fest. Die Änderung ist für alle Schritte des Vorgangs verfügbar. Es ist möglich, auf diese Art neue Variablen zu erstellen.
- Wenn Sie eine temporäre Variable (type="temp") angeben, ohne den Gruppennamen anzugeben, richtet das Element eine temporäre Variable ein, die nur für die Adapterlogik verwendet werden kann. Die Variable bleibt nach der Ausführung des Adapterschritts nicht erhalten. Es ist möglich, auf diese Art neue Variablen zu erstellen.
Attribute:
- condition
- Optional. Hat das Format condition="function". Der Wert von function ist ein Ausdruck, der "true" (wahr) oder "false" (falsch) sein kann. Hat "condition" den Wert "true", wird der Befehl ausgeführt. Hat "condition" den Wert "false", wird der Befehl nicht ausgeführt
Siehe Bedingte Funktionen.
- eval
- (optional). Legen Sie dieses Attribut auf "true" oder "false" fest. Wenn es den Wert "true" hat, versucht der Adapter, den Wert des
Attributs "value" zu ermitteln und das Ergebnis zu speichern.
- group
- (optional). Gibt die Build Forge-Umgebung an, in der die Variable definiert ist. Wenn Sie einen Umgebungsnamen angeben, müssen Sie auf eine Variable verweisen, die es in der angegebenen Umgebung gibt.
Wenn Sie [ADAPTOR] als Wert angeben, wird der Wert zur Ausführungszeit festgelegt.
Das Attribut wird auf die Umgebung des Schritts oder der Adapterverknüpfung festgelegt, aus dem oder der der Adapter aufgerufen wird.
In Build Forge kann es Variablen mit demselben Namen in mehreren Umgebungen geben. Die Vorrangstellung von Umgebungsübernahme und Umgebungseinbindung kann sich darauf auswirken, wie der Wert bestimmt wird, der einer Variablen zur Ausführungszeit zugeordnet werden soll.
- name
- Erforderlich. Gibt den Namen der Variablen an, die eingestellt werden soll. Der Wert kann eine Variable sein. In diesem Fall wird die Variable "name" erst zur Ausführungszeit eingestellt.
- type
- (optional). Gibt die Art an, wie die Variable eingestellt wird. Das Attribut hat einen der folgenden Werte:
- append text: Der angegebene Wert wird nach dem jeweils vorhandenen Wert platziert. Ist der optionale Parameter text angegeben, wird dieser Text zwischen die Werte gesetzt.
- once: Die Variable wird nur eingestellt, wenn sie bisher noch nicht eingestellt wurde.
- prepend text: Der Wert wird vor dem jeweils vorhandenen Wert angeordnet.
- temp: Die Variable wird nur im Kontext des Adapters eingestellt.
Ist der optionale Parameter text angegeben, wird dieser Text zwischen die Werte gesetzt. Siehe nachfolgende Beispiele.
- value
- Erforderlich. Gibt den Wert an, auf den die Variable eingestellt werden soll. Wenn auch das eval-Attribut angegeben ist, kann dieses Attribut ein Ausdruck sein, der ausgewertet werden muss.
Das Ergebnis der Auswertung wird als Wert gespeichert.
Beispiele:
Im folgenden Beispiel wird der Ausdruck, der im Attribut "value" steht, ausgewertet und das Ergebnis wird in der Variablen LAST_VER gespeichert. LAST_VER wird auf den größeren Wert von $LAST_VER oder auf den Wert der Variablen $1
gesetzt.
<setenv group="Adaptor" name="LAST_VER"
value="$LAST_VER>$1?$LAST_VER:$1" eval="true" />
Im folgenden Beispiel wird ein Zeilenvorschubzeichen (\n) eingefügt, bevor Daten an die Variable "Changes" angefügt werden:
<setenv name="Changes" value="$4 - $1 - $6" type="temp append\n" />
Im folgenden Beispiel wird ein Doppelpunkt hinter dem Wert eingefügt, der der Variablen "INFOPATH" vorangestellt wird:
<setenv name="INFOPATH" value="/usr/local" type="temp prepend:" />