オブジェクト・レベル検証ルールの定義
オブジェクト・レベルの検証ルールは、任意のビジネス・オブジェクトに対して定義できる制約です。 フレームワークがオブジェクトを検証しようとすると評価されます。
オブジェクト・レベルのルールを使用して、オブジェクト内の2つ以上のフィールドに依存する条件を適用します。 これにより、ユーザーが値を割り当てる順序に関係なく、ルールが一貫して適用されます。 記述する式(または長いスクリプト)は、オブジェクトが有効かどうかを示すboolean値を返す必要があります。 ルールがtrueを返す場合、同じオブジェクト上の他のすべてのオブジェクト・レベル・ルールがtrueを返すかぎり、オブジェクト検証は成功します。 ルールでfalseが返された場合、オブジェクトは保存されず、構成されたエラー・メッセージがエンド・ユーザーに表示されます。
たとえば、PriorityおよびDueDateフィールドを含むTroubleTicketオブジェクトを考えてみます。 優先度1または2のトラブル・チケットを期日なしで保存できないことを検証するには、オブジェクト・レベル・ルールは次のようになります:
-
ルール名:
Validate_High_Priority_Ticket_Has_DueDate -
エラー・メッセージ:
A trouble ticket of priority 1 or 2 must have a due date
ルール本文
// Rule depends on two fields, so must be written as object-level rule
if (Priority <= 2 && DueDate == null) {
// Signal to highlight the DueDate field on the UI as being in error
adf.error.addAttribute('DueDate')
return false
}
return true