フィールドレベル検証ルールの定義
フィールド・レベルの検証ルールは、標準フィールドまたはカスタム・フィールドに対して定義できる制約です。 対応するフィールドの値が設定されるたびに評価されます。
ルールが実行されると、フィールドの値がまだ割り当てられず、ルールが成功した割当てのゲート・キーパーとして機能します。 記述する式(または長いスクリプト)は、値が有効かどうかを示す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の無効なフィールドの設定で説明されているように、どのフィールドが無効と強調表示されるかをプログラム的に通知します。