setenv
<setenv>エレメントを使用して、<interface> エレメントまたは <match>エレメント内の環境変数の値を初期化します。 <setenv> エレメントには、他のエレメントは含まれません。
エレメントは、以下の 3 つの異なる方法で使用することができます。
- グループ名を指定する場合、このエレメントは .set コマンドのように機能します。 その際、現行のステップで使用されているコピーではなく、データベース内のマスター・レコードに変数値を設定します。 このため、現行のステップで実行されているアダプターでは、変更内容は表示されません。 この方法で新しい変数を作成することはできません。
- グループ名を指定しない場合、このエレメントは .bset コマンドのように機能します。 その際、実行中のジョブの環境に変数値を設定します。 変更は、そのジョブのすべてのステップで確認できます。 この方法で新しい変数を作成することができます。
- グループ名を指定せず、なおかつ 一時変数 (type="temp") を指定した場合は、アダプター・ロジックを使用するためのみの一時変数がセットアップされます。 この変数は、アダプター・ステップの実行後は存続しません。 この方法で新しい変数を作成することができます。
属性:
- condition
- これはオプションです。condition="function" の形式で指定します。function の値は、結果が TRUE または FALSE に評価される式です。式の評価が TRUE になる場合、コマンドが実行されます。式の評価が FALSE になる場合、コマンドは実行されません。 条件関数を参照してください。
- eval
- オプションです。 True または False に設定します。 True の場合、アダプターは value 属性式を評価して結果を保管することを試みます。
- group
- オプションです。
変数が定義される Build Forge 環境を指定します。
環境名を指定する場合は、指定された環境内にある既存の変数を参照する必要があります。
値として [ADAPTOR] を指定した場合、その値は実行時に設定されます。 この値は、アダプターを呼び出すステップまたはアダプター・リンクの環境に設定されます。
Build Forge では、複数の環境で同じ名前の変数を使用することができます。 環境継承および環境包含の優先順位は、実行時に変数に割り当てる値を決定する方法に影響することがあります。
- name
- これは必須です。設定する変数の名前を指定します。 値は変数でもかまいません。 その場合、変数名は実行時まで設定されません。
- type
- オプションです。
変数を設定する方法を指定します。次のいずれかの値を取ります。
- append text: 既存の値の後に、指定された値を挿入します。 オプションの text が指定された場合、そのテキストは値と値の間に挿入されます。
- once: 変数は、まだ設定されていない場合のみ設定されます。
- prepend text: 既存の値の前に値を挿入します。
- temp: 変数は、アダプターのコンテキストでのみ設定されます。 オプションの text が指定された場合、そのテキストは値と値の間に挿入されます。 次の例を参照してください。
- value
- これは必須です。変数に設定する値を指定します。 eval 属性も指定されている場合は、評価される式でもかまいません。 評価の結果は、値として保管されます。
例:
次の例では、value 属性の式が評価され、その結果が変数 LAST_VER に保管されます。 値は、$LAST_VER、または $1 変数の値のいずれか大きい方に設定されます。
<setenv group="Adaptor" name="LAST_VER"
value="$LAST_VER>$1?$LAST_VER:$1" eval="true" />
次の例では、Changes 変数にデータを付加する前に、改行文字 (¥n) が挿入されます。
<setenv name="Changes" value="$4 - $1 - $6" type="temp append¥n" />
次の例では、変数 INFOPATH の先頭に付加する値の後ろに、コロンが挿入されます。
<setenv name="INFOPATH" value="/usr/local" type="temp prepend:" />