24.3 カスタムハンドラの追加

DRAでは、プロパティ属性を相互作用させてワークフロータスクを完了するためや、ワークフロー、プロパティ、フォーム作成でのロードと送信をカスタマイズするために、カスタムハンドラを使用します。

プロパティカスタムハンドラ

プロパティカスタムハンドラーのいくつかの例は次のとおりです。

  • 他のフィールドの値を照会する

  • フィールド値の更新

  • フィールドの読み込み専用状態の切り替え

  • 設定された変数に基づいてフィールドを表示または非表示にする

フォームロードハンドラ

フォームロードハンドラは、通常、初期化コントロールを実行します。これらは、フォームが初めてロードされたときに1回だけ実行されます。プロパティページの場合は、選択したオブジェクトのプロパティについてサーバがクエリを実行する前に実行されます。

フォーム送信ハンドラ

フォーム送信ハンドラでは、ユーザがあるタイプの検証を行ったり、場合によって異常の発生時にフォームの送信をキャンセルすることができます。

Webコンソールでカスタムハンドラおよびカスタマイズを使用する方法の詳細については、DRAマニュアルページにある製品カスタマイズリファレンスの「Webコンソールのカスタマイズ」および「ワークフローのカスタマイズ」セクションを参照してください。

カスタムJavaScriptの有効化

セキュリティ上の理由のため、デフォルトではカスタムJavaScriptは無効になっています。カスタムJavaScriptを有効にすることにより、管理者はJavaScriptコードのスニペットを書き込むことができ、Webコンソールはそのまま実行されます。この例外を有効にするのは、そのリスクを理解して受諾した場合のみにしてください。

カスタマイズする際にカスタムJavaScriptコードを含めるようにするには、次のようにします。

  1. C:\ProgramData\NetIQ\DRARESTProxyのロケーションに移動します。

  2. restProxy.configファイルを開きます。

  3. allowCustomJavaScript="true"を<consoleConfiguration>エレメントに追加します。

24.3.1 カスタムハンドラ作成の基本手順:

次の手順は、事前に選択済みのカスタムハンドラのページからの操作です。そこまで進むには、プロパティフィールドにあるプロパティアイコンからオブジェクトプロパティのカスタムハンドラにアクセスします。選択したワークフローフォーム、[オブジェクトの作成]ページ、または[プロパティの編集]ページの[フォームのプロパティ]ボタンから、フォームロードおよびフォーム送信ハンドラにアクセスします。

  1. カスタマイズするプロパティまたはページを基にして、該当するハンドラタブを選択します。

    • カスタムハンドラ

    • フォームロードハンドラ

    • フォーム送信ハンドラ

  2. ハンドラページを有効にします。そして、次のいずれかを実行します。

    • プロパティフィールドカスタムハンドラ:

      1. 実行時間を選択します。通常、実行時間には2番目か3番目のオプションを使用します。

      2. [+追加]をクリックして、[カスタムハンドラの追加]メニューからカスタムハンドラを選択します。

    • フォームハンドラ: [+追加]をクリックして、[カスタムハンドラの追加]メニューからカスタムハンドラを選択します。

    メモ:一般的に、1つのカスタムハンドラのみが必要な場合もありますが、複数のハンドラを使用することもできます。複数のハンドラは、一覧に載っている順序で順番に実行されます。ハンドラの順序を変更したり、不要なハンドラをスキップしたりする場合は、スクリプト内にフロー制御マクロを追加できます。

  3. その場合、このページに追加するカスタムハンドラごとに設定する必要があります。環境設定オプションはハンドラタイプによって異なります。

    独自のハンドラタイプを作成できます。

    • LDAPクエリまたはRESTクエリのハンドラ:

      1. 静的な値を基にクエリを実行する場合、[接続情報]と[クエリパラメータ]を定義します。

        クエリをダイナミックにする場合、必須フィールドにプレースホルダの値を入力します。これはハンドラの実行に必須です。スクリプトがプレースホルダの値を上書きします。

        メモ:また、RESTクエリのヘッダとクッキーも設定できます。

      2. クエリ前アクションでは、スクリプトエディタを使用して、クエリが送信される前に実行されるカスタムJavaScriptコードを書き込みます。このスクリプトは、すべての接続情報およびクエリパラメータにアクセスでき、これらのパラメータを変更してクエリをカスタマイズすることもできます。たとえば、ユーザがフォームに入力した値に基づいて、クエリパラメータを設定します。

      3. クエリ後のアクションでは、クエリの結果を処理するためのスクリプトを含めます。一般的なタスクには、エラーの確認、返された結果に基づいたフォーム値の更新、およびクエリによって返されたオブジェクトの数に基づいたオブジェクトの一意性の検証が含まれます。

    • スクリプト: カスタムJavaScriptコードを挿入してスクリプトを構築します。

    • DRAクエリ: [クエリパラメータ]タブでJSONペイロードを指定します。ペイロード形式は、DRAサーバに送信されるVarSetキーまたは値のペアに一致している必要があります。RESTおよびLDAPクエリと同様に、サーバに送信する前にペイロードを変更するために使用できるクエリ前アクション、また結果を処理するためのクエリ後のアクションを指定することもできます。

    • メッセージボックスハンドラ: メッセージボックス自体のプロパティを定義した後に、[表示前のアクション]および[閉じた後のアクション]に対してJavaScriptセグメントを書き込むこともできます。

      これらのアクションは、オプションです。[表示前のアクション]は、ユーザに表示される前に、すべてのメッセージボックスのプロパティをカスタマイズするために使用されます。また、[閉じた後のアクション]は、ユーザのボタン選択の処理、および追加のロジックの実行を行うために使用します。

  4. OKをクリックし、ハンドラを保存します。

Webコンソールでカスタムハンドラおよびカスタマイズを使用する方法の詳細については、DRAマニュアルページにある製品カスタマイズリファレンスの「Webコンソールのカスタマイズ」および「ワークフローのカスタマイズ」セクションを参照してください。