フィールド検証フック例

検証フックを使用すると、フィールドに適切な値が含まれていることを確認できます。検証フックは、あらかじめ定義された時に呼び出されて、フィールドの内容が有効であることを確認します。レコードに、無効な値が入ったフィールドが含まれている場合、そのレコードは、エラーが訂正されるまで、データベースにコミットされません。

個々のフィールドの検証にフックを使用する利点は (アクション検証フックを使用してレコード全体を検証することとは対照的に)、フィールド値が無効の場合に、ユーザーに直ちに通知されることです。

フィールド検証フックは、文字列値を戻す関数として作成されます。関数の戻り値は、エラー メッセージと見なされます。戻り値が空の文字列の場合、フィールド値は、有効と見なされます。

次の例では、10 文字未満の文字がフィールドに入力されると、検証フックが入力を拒否して、少なくとも 10 文字を入力するようにユーザーに強制します。

VBScript

Function word_Validation(fieldname)

    ' fieldname As String
    ' word_Validation As String
    ' entityDef = puzzle_words

    Dim val

    val = GetFieldValue(fieldname).GetValue()
    If Len(val) < 10 Then
      word_Validation = "All words must be at least 10 letters long"
    End If 

End Function

Perl

sub word_Validation  {

    my($fieldname) = @_;

    # $fieldname as string scalar
    # $result as string scalar
    # $entityDef = puzzle_words

    my($value);

    $value = $entity->GetFieldValue($fieldname)->GetValue();

    if (length ($value) < 10)  {
      $result = "All words must be at least 10 letters long";
    }
    return $result;
} 

フィードバック