データの検証
デベロッパーがビューを設計する際は、タスクで必要とされるすべてのフィールドとコントロールを追加します。 Pegaビジネスアーキテクト(BA)として、ユーザーが入力するデータ値が有効であることを確認したいと考えています。 システムで、エラーの発生なしに情報を処理するには、有効なデータが必要です。
このトピックでは、ワークフローの最適な処理のために、ユーザーが入力したデータをシステムが検証できるようにするさまざまな方法を確認します。
データ検証要件
ユーザーによるデータ入力が有効であることを確認することで、問題やエラーを発生させずにワークフローがエンドツーエンドで完了できるようになります。
以下の表は、データ検証要件の例を示しています。
データ要件 | 例 |
---|---|
正しいタイプのデータのみを使用する。 | たとえば、ユーザーは、Total purchase unitsフィールドに数値を入力する必要があります。 |
データを可能な値に限定する。 | たとえば、オプションのリストからタイプを選択することにより、ユーザーは有効なローンタイプのみを選択できます。 |
データがビジネスロジックに適合していることを確認する。 | たとえば、Date of birthフィールドは通常、過去の日付です。 |
処理エラーを防ぐため、Pega Platform™では、フィールドタイプとコントロールを提供して、検証要件をサポートしています。 正しいコントロールを選択することが、検証要件を満たすために十分なこともあります。 コントロールやフィールドタイプがデータ検証の実行に十分ではない場合、Pega Platformは、ビジネスロジックを使用して条件付きのフィールドをテストしてデータ検証を提供します。
たとえば、形式がdd/mm/yyyyまたはmm/dd/yyyyのいずれであっても、ユーザーが入力したデータが日付であることを確認するDate onlyフィールドタイプを使用できます。 ただし、Date onlyフィールドタイプは、職歴フォームのStart dateフィールドが過去の日付を取得するようにすることはできません。 その代わりに、ビジネスロジックを使用して過去の日付を検証できます。
コントロールによるデータの検証
コントロールを使用することは、最も一般的な検証アプローチです。 コントロールタイプ、必須フィールド、編集可能な設定などを利用して、コントロールでユーザーの入力を検証することができます。
コントロールタイプ
特定の目的のために正しいコントロールタイプを使用することで、ユーザーが有効な値を入力することができます。 以下の表は、異なるコントロールタイプのユースケースの例を示したものです。
コントロールタイプ | コントロールがどのように検証に役立つか | ユースケース |
---|---|---|
日時 | カレンダーアイコンから日付を選択すると、ユーザーは有効な形式で日付を入力できます。 | ユーザーに、年月日を含む日付を入力してもらう場合。 |
ラジオボタン | 選択肢を有効な値のセットに限定し、ユーザーが値を1つだけを選択できるようにします。 選択肢が少ない場合(5個未満など)は、ラジオボタンを使用します。 | ユーザーに、3つのローンタイプのうち、1つを選択してもらう場合。 フォーム上ですべてのタイプを確認してもらう必要があります。 |
ドロップダウン | 有効な値を、リストに表示されるものだけに限定します。 ドロップダウンリストには、ユーザーがコントロールをクリックしたときにのみオプションが表示されます。これで、フォームを整理できます。 | ユーザーに、リストにある10種類のオフィスチェアから1つを選択してもらう場合。 選択肢をフォームに表示する必要はありません。 |
オートコンプリート | ユーザーがコントロールに1つまたは複数の値を入力すると、選択可能なオプションがフィルタリングされます。 これは、多数のオプションがある場合に(たとえば20個以上)、ユーザーが選択可能なオプションをリスト内で探すのに役立ちます。 | ユーザーに、リストから居住国を選択してもらう場合。 ユーザーは、コントロールにテキストを入力して正しい国名を探せます。 |
チェックボックス | ユーザーはチェックボックスを選択することも、空のままにすることもできます。 このオプションにより、true/falseのプロパティがtrue(選択)またはfalse(未選択)になります。 | ユーザーに、旅行保険を追加で購入するオプションを選択してもらう場合。 |
必須フィールド
コントロールを必須フィールドとして設定すると、ユーザーに必ず値を入力してもらえます。 必須フィールドに値がないフォームを送信しようとするとエラーが表示されます。 リワードプログラムのプロフィールの例では、「Date of birth」を必須フィールドに設定します。 ユーザーがこのフィールドに日付を入力せずにフォームを送信しようとすると、エラーメッセージが表示されます。 フィールドに日付がある場合には、エラーメッセージは表示されません。
ビジネスロジックでのデータ検証
App Studioを使用し、ユーザーがフォームを送信した際にフィールドの値を定数値と比較する、シンプルなビジネスロジック検証を実行します。 無効なデータ値を定義する条件を作成し、条件が満たされた場合にエラーメッセージを表示するようにできます。 ユーザーが、無効な値の条件に一致する値を生成すると、システムによってエラーメッセージが表示されます。 これにより、問題が解決するまで、ユーザーはケースを続行できなくなります。
次の画像で、「+」アイコンをクリックして、ユーザーがLoan amountフィールドに100.00より大きい値を入力するように検証条件を設定する方法の詳細を確認してください。
ビジネスロジック検証はケースライフサイクルのプロセスによく関連付けられており、明確なビジネスロジック検証に基づいて各フィールドインスタンスを検証することが可能となります。 許容可能な値を定義するビジネスロジック検証は、データを取得するフィールドとは区別されています。 たとえば、ユーザーがDate of birthフィールドに入力すると、システムがそれを検証します。 そのフィールドがケース処理で後に使用される際には、検証は再度行われません。
複数のフォームが同じフィールドを使用し、フィールドの各インスタンスに異なる検証条件を適用できます。 たとえば、人事アプリでは、人事担当者はJob historyフォームとNew hreフォームに情報を入力します。 Job historyフォームで、人事担当者は、企業ですでに勤務している従業員の開始日を入力します。 人事担当者は、現在の日付よりも前の日付を入力する必要があります。 New Hireフォームでは、人事担当者はまだ勤務を開始していない従業員の開始日を入力します。 人事担当者は、現在の日付よりも後の日付を入力する必要があります。 各ビジネス条件に1つずつ、2つのビジネスロジック検証を使用することにより、各フォームにユーザーが正しい日付を入力するようにできます。
以下のインタラクションで理解度をチェックしてください。
ステージでの検証
ステージでビジネスロジック検証を使用することもできます。 ステージでビジネスロジック検証を使用して、ケースが特定のステージに入る前に、アプリケーションが正しいデータを生成し、ユーザーが正しいデータを入力または適切なアクションを実行していることを確認できます。 ケースタイプデータモデルのステージでビジネスロジック検証を設定すると、ケースが指定されたステージに入る前にシステムが検証をトリガーします。 ステージエントリ検証で、データ値が無効なデータの条件を満たす場合には、ケースはステージに入ることができず、エラーメッセージが表示されます。
たとえば、住宅ローンのアプリでは、ケースがUnderwritingステージに移る前に、有効なクレジットスコアが必要となります。 アプリケーションはユーザーにクレジットスコアが無効であることを知らせ、ユーザーはクレジット履歴を確認したり、プロセスをキャンセルしたりできます。
次の画像で「+」アイコンをクリックすると、ケースタイプのデータモデルでの検証の設定について詳細を表示できます。
フォームでの検証
ユーザーが入力する値を予測またはコントロールできない場合は、フォームでビジネスロジック検証を使用します。 フォームでビジネスロジック検証を設定すると、ユーザーがフォームを送信する際、検証がトリガーされます。 ユーザーが、無効なデータの条件に一致する値を含むフォームを送信すると、フォームにエラーが表示されます。 これにより、ユーザーが条件を満たすデータを送信するまでケースの作業を続けることができなくなります。 フィールドに新しい値を入力するなど、ユーザーが無効なデータを解決するアクションを直ちに実行できる場合に、フォームで検証を使用します。
たとえば、フォームにDate of birthフィールドがある場合を考えます。 フィールドタイプでは、ユーザーが未来の日付を入力するのを防げません。 ただし、ユーザーが未来の日付を送信するとエラーが表示されるビジネスロジック検証を設計できます。 このシステムでは、ユーザーが過去の日付を入力すると、フォームを送信できるようになります。
以下の画像の中央にある縦棒をスライドすると、左でDate of birthフィールドを検証し、右のフォームにエラーメッセージを表示するステップ設定を表示できます。
以下のインタラクションで理解度をチェックしてください。