従来型トリガーは独自のプロセスで実行されます。例えば、Perl トリガーは Perl インタープリターを開始します。このインタープリターがスクリプトを実行し、その後インタープリターは終了します。 これに対し、インプロセス・トリガー (Bean Scripting Framework を使用するため BSF トリガーとも呼ばれる) は、Web サーバーのプロセス内で実行されます。 この利点として、オーバーヘッドが低減され、パフォーマンスが向上する可能性があります。 また、BSF トリガーは、Perl API ではなくトリガー API にアクセスできます。
従来型トリガーを開始するには、実行可能プログラムを呼び出してスクリプト・ファイルを実行します。
次に例を示します。
perl my_trigger.js arg1 arg2
スクリプトを実行するために必要な実行可能プログラムが使用可能でなければなりません。 Perl はデフォルトで使用可能ですが、他のコマンドがパスに含まれているか、トリガーのディレクトリーにインストールされている必要があります。 成功したコマンドは「0」(ゼロ) を返す必要があります。
ほとんどのトリガーは Perl API にアクセスします。詳しくは、Perl API ヘルプを参照してください。
インプロセス・トリガーは、実行可能プログラム名ではなく bsf を使用することで宣言されます。
次に例を示します。
bsf my_trigger.js arg1 arg2
BSF スクリプトのファイル拡張子 (JavaScript の場合は .js、Python の場合は .py) によって、スクリプトの実行に使用されるスクリプト言語が決定されます。
スクリプトは、bsf.lookupBean (object name) を呼び出すことで、bsf グローバル・オブジェクトからオブジェクトを取得できます。 構文は、使用されるスクリプト言語によって異なります。
オブジェクト | 詳細 |
---|---|
イベント | 起動している特定のトリガー・イベントの詳細が含まれます。 特に、現行ユーザーおよび Admin ユーザーのトークンが含まれます。 このトークンを使用して、API、および変更対象の CR またはタスク ID と対話できます。 すべてのトリガーで共有されるプロパティーもありますが、ほとんどのトリガー・タイプには、独自のイベント・オブジェクト (それぞれに少なくともいくつかの固有のプロパティーを持つ) があります。 詳しくは、トリガー API の資料を参照してください。 |
args | スクリプトに渡される引数 (例えば、ライフサイクルで定義される引数) の配列。 ただし、一部のスクリプト言語にはコマンド行引数を取得するための独自のメソッドが用意されていますが、トリガーで使用してはなりません。 |
log | メッセージを event.log ファイルに書き込む手段。 詳しくは、トリガー API の資料を参照してください。 |
api | トリガーが Rational® Change と相互作用するための API。 例えば、CR 属性を検索したり、関連タスクを作成したりします。 詳しくは、トリガー API の資料を参照してください。 |
event.stopTransition(msg) を呼び出します。これにより、遷移が進行中の場合に続行できなくなり、必要に応じて所定のメッセージがユーザーに表示されます。
event.fail(errorMsg)。これにより、可能な場合はエラー・メッセージがユーザーに表示され、または非同期トリガー中などには event.log に書き込まれます。 事前遷移中に呼び出すと、fail は遷移リンクを非表示にするか、遷移が続行できないようにします (event.stopTransition を呼び出した場合と同様)。