オブジェクト・レベル検証ルールでのUIの無効なフィールドの設定
記述したフィールド・レベルの検証ルールがfalseを返す場合、ADFは失敗した検証にエラーを通知し、ユーザー・インタフェースでフィールドが強調表示されて問題をユーザーの注意に呼び出します。
ただし、オブジェクト・レベルの検証ルールには複数のフィールドが含まれているため、フレームワークでは、問題のある値を持つユーザー・インタフェースで強調表示するフィールドがわかりません。 オブジェクト・レベルの検証ルールで、検証エラーを解決するためにユーザー・レビューが必要な1つ以上のフィールドをハイライトする場合は、このプロセスのフレームワークを支援する必要があります。 これを行うには、検証ルール・スクリプトでadf.error.addAttribute()
関数へのコールを追加してから、false
を返して障害を通知します。
たとえば、次のルールを適用するとします: 担当者を自分のマネージャにすることはできません。 Contact
オブジェクトのId
フィールドは変更できないため、Manager_Id
フィールドにフラグを付けると意味があります - Manager
参照フィールドに関連するセカンダリ・フィールド - ユーザー・インタフェースで強調表示するエラーのフィールド。 次に、検証ルールの例を示します。
-
ルール名:
Contact_Cannot_Be_Own_Manager
-
エラー・メッセージ:
A contact cannot be his/her own manager
ルール本文
// Rule depends on two fields, so must be
// written as object-level rule
if (Manager_Id_c == Id) {
// Signal to highlight the Manager field on the UI
// as being in error. Note that Manager_Id field
// is not shown in the user interface!
adf.error.addAttribute('Manager_c')
return false
}
return true