フィールドレベル検証ルールの定義
フィールド・レベルの検証ルールは、標準フィールドまたはカスタム・フィールドで定義できる制約です。 対応するフィールドの値が設定されるたびに評価されます。
ルールが実行されると、フィールドの値がまだ割り当てられず、ルールが成功した割当てのゲート・キーパーとして機能します。 記述する式(または長いスクリプト)は、値が有効かどうかを示すboolean値を返す必要があります。 ルールがtrueを返す場合、同じフィールドの他のすべてのフィールド・レベル・ルールもtrueを返すかぎり、フィールド割当ては成功します。 ルールでfalseが返された場合、これによってフィールド割当ては発生せず、無効なフィールドはUIで視覚的に強調表示され、構成されたエラー・メッセージがエンド・ユーザーに表示されます。 この状況では割当てが失敗するため、フィールドには現在の値が保持されます(値がnullの場合はnullなど)。ただし、webページのUIコンポーネントでは、無効なエントリを確認して修正し、再試行できます。 スクリプトでは、newValueキーワードを使用して、検証に合格した場合に割り当てられる新しい値を参照できます。 既存のフィールド値を参照するには、oldValueキーワードを使用します。 フィールド・レベル・ルールは、適用するルールが設定される新しい値に依存する場合に適しています。
たとえば、Priorityフィールドを含むTroubleTicketオブジェクトを考えてみます。 入力した数値が1から5の範囲であることを検証するには、フィールドレベルの検証ルールは次のようになります:
-
フィールド名: 優先度
-
ルール名:
Validate_Priority_Range -
エラー・メッセージ:
The priority must be in the range from 1 to 5
ルール本文
newValue == null || (1..5).contains(newValue as Integer)
フィールドAの検証ルールが、他の1つ以上のフィールドの値(YやZなど)に依存する場合は、オブジェクト・レベルのルールを作成し、「オブジェクト・レベル検証ルールでのUIの無効なフィールドの設定」で説明されているように、どのフィールドが無効と強調表示されるかをプログラム的に通知します。