6.1 フォームについて

ユーザはフォームを使用して、リソースを要求し、リソース要求を承認し、タスクを処理できます。フォームは、ユーザがユーザアプリケーションの[要求および承認]タブの[マイ作業]カテゴリでアクションを選択するときに使用できます。URLから直接使用することもできます。この手法の詳細については、「セクション 6.9, フォームへの直接アクセス」を参照してください。

図 6-1はリソース要求フォームの一例です。フォームの上部には、要求の詳細を表示した読み込み専用領域があります(承認フォームでは承認の詳細)。下部にある[フォームの詳細]セクションで、ユーザはリソース要求(または承認)に情報を入力し、何らかのアクションを行います。

図 6-1 フォームのサンプル

プロビジョニング要求定義エディタで[フォーム]タブを使用して、ユーザアプリケーションの要求フォームと承認フォームにある[フォームの詳細]セクションの見た目と動作を定義します。

要求フォームについて

プロビジョニング要求定義の要求フォームを1つ作成できます。要求フォームは、ワークフローの開始アクティビティに関連付けられています。

図 6-2 リソース要求フォームのサンプル

承認フォームについて

プロビジョニング要求定義の承認フォームは複数定義できますが、承認アクティビティごとに1つのフォームに限られます。承認アクティビティに関連付ける承認フォームは、承認アクティビティのプロパティで指定できます。[フォーム]タブまたは承認アクティビティプロパティシートから承認フォームを作成できます。

図 6-3 リソース承認フォームのサンプル

6.1.1 フォームコントロールのデータバインディングについて

フォームに対して定義するフィールドはすべて、[データ項目マッピング]プロパティシートでのデータバインディングに自動的に使用できるようになります。フォームフィールドを初期化またはデータをプリロードする前動作マッピングと、変更したフォームデータをフローデータというワークフロードキュメントに移動する後動作マッピングの2つのバインディング(つまりマッピング)を、フォームフィールドごとに行えます。これらのデータ項目バインディングとバインディングに使用するスクリプト式は、クライアントブラウザへ送信してユーザに表示する前に、フォームの準備作業としてアプリケーションサーバ上で実行します。前動作データ項目マッピングとフローデータドキュメントを処理する式は、通常、前の承認データを現在の承認に移動したり、フィールドのデフォルト値を設定するために使用されます。データ項目マッピングの詳細については、「セクション 7.2.2, データ項目マッピングの定義」を参照してください。

一部のフォームコントロールを使用して、ワークフローデータ以外のデータソースから値を初期化できます。たとえば、一部のリストコントロールでは、コントロールのプロパティとして初期値を指定できます。初期値の定義の詳細については、「セクション 6.5, フォームコントロールのリファレンス」を参照してください。

6.1.2 フォームおよびイベントについて

Designerでは、フォームコントロールのonLoadイベント、onChangeイベント、またはカスタムイベントで実行するアクションスクリプトを定義できます。各フォームコントロールは[イベント]プロパティをサポートしており、このプロパティでイベントのスクリプトを指定します。定義するスクリプトはイベントレベルスコープを持ち、ユーザのクライアントコンピュータのブラウザで実行します。

[イベント]プロパティから、フォームとデータを参照し変更するスクリプト式を作成できる、DesignerのイベントアクションExpression Builderにアクセスできます。フォームコントロールイベントスクリプトはクライアントブラウザで実行するので、フローデータドキュメントにアクセスできません。ディレクトリ抽象化レイヤクエリにはアクセスできます。

図 6-4 イベントアクションExpression Builder

イベントアクションExpression Builderは、フォームアクションメソッドにもアクセスできます(左列を参照)。この列からは、ディレクトリ抽象化レイヤクエリオブジェクトとともにフォームアクションスクリプトAPIにもアクセスできます。フォームアクションスクリプトAPIはJavaScript*で作成されているので、条件、ループ、およびユーザ定義関数を追加できます。 フォームアクションAPIの詳細については、「セクション 10.3.1, フォームアクションスクリプトメソッド」を参照してください。JavaScriptライブラリをインポートまたは組み込むには、[フォームコントロール]エリアの[スクリプト]タブを使用します。詳細については、セクション 6.3.4, [スクリプト]タブの使用を参照してください。