6.7 フォームでのDALクエリの使用

ディレクトリ抽象化レイヤで定義されたクエリオブジェクトでは、LDAP検索を事前定義して、その後ワークフローフォームからこの検索を実行できます。この項では、クエリを定義し、フォームでそれを使用する方法について説明します。

特定の従業員にテレフォンカードを配布したいと考えており、自宅で勤務し、その自宅がローカルオフィスの市外局番外にある従業員だけに配布しようと考えているとします。従業員が次の作業を行うワークフローフォームを作成します。

フォームでは、ユーザは、自身のローカルオフィスの市外局番を入力し、その市外局番に基づいて、カードを受ける資格があるユーザのリストを確認できます。ランタイム時のフォームを図 6-33に示します。

図 6-33 テレフォンカード要求フォームのサンプル

[Candidates Picklist]コントロールのデータは、図 6-34に示すように定義されたクエリの結果から取り込まれます。

図 6-34 テレフォンカードクエリの定義

クエリは、ユーザが入力した市外局番の単一の入力パラメータ(AreaCodeParam)を取得します。クエリは続いて、ユーザエンティティ(idmsample-alhコンテナ内)を検索し、電話番号がAreaCodeParamに入力した同じ値で始まらないユーザを返します。

フォームには、[OfficeAreaCode]という入力フィールドがあります。これは、ユーザがローカルオフィスの市外局番を入力するテキストフィールドです。[OfficeAreaCode]のプロパティを図 6-35に示します。

図 6-35 [OfficeAreaCode]のプロパティ

[テキスト]コントロールがonchangeイベントを定義することに注意してください。onchangeイベントは、ユーザが[テキスト]コントロールからタブで移動すると開始します。onchangeイベントは、図 6-36に示すようにgetCandidatesカスタムイベントを開始します。

図 6-36 OnChangeイベントのプロパティ

getCandidatesイベントは、[Candidates Picklist]コントロールでプロパティとして定義されます。

図 6-37 [Candidates PickList]のプロパティ

イベントが開始されると、getCandidatesイベントは、globalQuery()メソッド(「図 6-38」を参照)をコールするアクション式を実行します。このメソッドは、[Candidates PickList]コントロールの値に、EEOutsideLocalAreaCode図 6-34で定義)というクエリの結果を取り込みます。[OfficeAreaCode]テキストフィールドの値をクエリの入力パラメータAreaCodeParamとして渡します。

図 6-38 GetCandidatesイベント