サーバー管理 > イベントトリガーを使用したタスクの自動化とデータの計算 > イベントトリガーでの Windchill RV&S API の使用 > API のビーンおよびメソッド
  
API のビーンおよびメソッド
API とやりとりするビーンを次に示します。
ScriptEnvironmentBean
createAPISessionBean() メソッドでは、API セッションのビーンを取得します。
ScriptAPICommandRunnerBean
Windchill RV&S API コマンドの管理と実行を行います。addOption() メソッドでは、コマンドにオプション フラグを追加します。
ScriptAPISessionBean
Windchill RV&S API セッションへのアクセスと制御を行います。executeCmd() メソッドでは、コマンドを実行します。
ScriptAPISessionBean の使用には細心の注意が必要です。ビーンを誤用した場合は、サーバー全体でデッドロックが発生しやすくなります。実行中の現在のトリガー イベントはリソースをロックする場合があります。このビーンを使用すると、サーバーに戻り、独自のリソースとロックを取得して、新しいトランザクションを開始できます。そのトランザクションは実行中の現在のイベントとは何も共有しません。そのイベントが現在保持しているロックによって、新しいトランザクションはブロックされます。ロックの解除を待っているその新しいトランザクションもロックを解除することはありません。解除を待っているロックは Windchill RV&S が既に保持しているためです。
このビーンを安全に使用できるシナリオを次に示します。
POST トリガー内: POST トリガーでは、確実にすべての情報がコミットされ、すべてのロックが解除されています。
* 
特定の Source トリガーが POST トリガーを実行した後に、トランザクション全体がコミットされています。
PRE トリガーでは、API を排他的に使用して情報を取得しています。更新は行われないため、ロックを取得する必要はありません。このシナリオでさえ、細心の注意が必要です。Oracle の場合、何も問題はありません。Oracle が取得するロックは他のデータベースが取得するロックとはまったく異なるためです。ただし、MS/SQL Server のようなデータベースは、現在のトランザクションで作成または変更するアイテムの排他ロックを取得します。その新たに作成または変更されたアイテムを返す可能性のあるどのクエリーも、共有ロックを取得しようとするため、デッドロックが発生します。