Skip to main content

 

アプリケーションの開発

 

OutSystems

フォームへの入力を検証する

フォームが送信されると、OutSystemsでは、ビルトイン検証機能が必須項目や有効なデータ型に対して実行されます。 独自のカスタムフォーム検証も追加可能です。

モバイルアプリでは、フォームが送信される際に実行されるクライアントアクションを使用して、クライアント側の検証を実行します。 すべての検証を、アクションフローのForm.Validの値をテストする既存のIf要素の前に追加します。

各検証について、以下の手順を実行します。

  1. 入力値を検証するためのロジックを追加します。例としてIf要素を使用します。
  2. バリデーションに失敗した場合は、入力のランタイムプロパティを以下のように設定します。
    • Input.Valid = False
    • Input.ValidationMessage = "<エラーメッセージ>"

ビルトイン検証が1つでも失敗した場合、あるいはフォームの任意のフィールドのValidランタイムプロパティにFalseが割り当てられていた場合、フォームのValidプロパティには自動的にFalseが割り当てられます。この場合、無効なすべての対応する入力の横に検証メッセージが表示されます。入力をサーバー側で検証する場合は、サーバー側の検証ロジックを実装したサーバーアクションに入力を送信します。

Webアプリでは、フォームが送信される際に実行されるサーバーアクションを使用して、フォームの検証を実装します。すべての検証をアクションフローの最初に追加します。

  1. 各検証について、以下の手順を実行します。
    1. 入力値を検証するためのロジックを追加します。例としてIf要素を使用します。
    2. バリデーションに失敗した場合は、入力のランタイムプロパティを以下のように設定します。
    3. Input.Valid = False
    4. Input.ValidationMessage = "<エラーメッセージ>"
  2. すべての入力を検証した後、Form.Validの値を確認します。無効な入力が1つでもある場合、フォームも無効になります。
    1. If要素を以下の条件で追加します。Form.Valid
    2. Trueの場合は、アクションフローを継続します。
    3. Falseの場合は、アクションフローを終了します。無効な入力の横に検証メッセージが表示されます。

ビルトイン検証が1つでも失敗した場合、あるいはフォームの任意のフィールドのValidランタイムプロパティにFalseが割り当てられていた場合、フォームのValidプロパティには自動的にFalseが割り当てられます。この場合、無効なすべての対応する入力の横に検証メッセージが表示されます。

モバイルアプリの例

場所の検索レビュー、評価ができるモバイルアプリケーションであるGoOutアプリケーションで、レビューコメントの最小文字数を30文字に設定します。レビューを送信するための[WriteReview]画面が用意されています。画面には[Save]ボタンがあり、Saveクライアントアクションが呼び出されます。検証を実装するには、以下の手順を実行します。

  1. If要素を以下の条件でフローに追加します。Length(Review.Comments) >= 30
  2. Falseブランチでランタイムプロパティを設定します。
    • TextArea_Comments.Valid = False
    • TextArea_Comments.ValidationMessage = "Write at least 30 characters."
  3. If要素とAssign要素を連結してアクションフローを継続します。
  4. パブリッシュして、30文字未満のレビューを追加するテストを行います。

Webアプリの例

場所の検索、レビュー、評価ができるWebアプリケーションであるGoOutWebアプリケーションで、レビューコメントの最小文字数を30文字に設定します。レビューを送信するフォームがホームページにあります。画面には[Save]ボタンがあり、Save画面アクションが呼び出されます。

検証を実装するには、以下の手順を実行します。

  1. If要素を以下の条件でフローに追加します。Length(ReviewForm.Record.Review.Comments) >= 30
  2. Falseブランチでランタイムプロパティを設定します。
    • Review_Comments.Valid = False
    • Review_Comments.ValidationMessage = "The minimum is 30 characters"
  3. If要素を以下の条件で追加します。Form.Valid
  4. Trueの場合は、アクションフローを継続します。Falseの場合は、アクションフローを終了します。
  5. パブリッシュして、30文字未満のレビューを追加するテストを行います。