Accel-Mart Quick チュートリアルガイド 第14版 2023-02-08

10.9.13. 入力チェック(Webデータベース)

入力チェックは、一時保存や登録の際に、フォームに入力された内容のチェックを行う業務ロジックです。
以下のタイミングで実行されます。
  • 登録画面で「一時保存」ボタンをクリックしたとき
  • 登録画面で「登録」ボタンをクリックしたとき
  • 編集画面で「更新」ボタンをクリックしたとき

コラム

一時保存の場合はチェックを行わないなどの制御は、ロジック内で実装可能です。

注意

入力チェックの業務ロジックは1つのWebデータベースアプリケーションに対して1つしか登録できません。

10.9.13.1. 利用例

  • 画面アイテム間で入力値の相関チェックをする
    • 入力値Aの値が○○の場合、入力値Bの値はXXでないといけないなど
  • ログインユーザの役職やロールによって、特定の入力値のチェックを変更する

  • 入力値についてWebデータベースのマスタを検索し、存在チェックをする

  • 画面に表示されるエラーメッセージの表示順序を指定する

コラム

必須入力や半角英数字のみ、最小/最大入力文字数などのチェックは、業務ロジックを使用しなくともフォーム編集画面で設定できます。
設定方法の詳細は「入力チェックを利用したフォームを作成する」を参照してください。

10.9.13.2. 業務ロジックの概要

入力チェックの業務ロジックを新規作成すると、初期状態では以下の図のように設定されています。
タスクを追加し、実現したい業務ロジックを作成してください。
../../../_images/webdb_input_validation_1.png
図:業務ロジックの初期状態
入力チェックを行った結果を、変数のエラーアイテム情報( errorItems )に格納します。
チェック結果に応じて、以下のように設定してください。
  • 入力チェックエラーがなかった場合
    • エラーアイテム情報に何も設定しない
  • 入力チェックエラーがあった場合
    • エラーアイテム情報にエラー情報を設定する
入力チェックエラーがあった場合、エラー情報の通知方法は以下の2つの方法があります。
エラーアイテム情報に inputId (エラーになったアイテムのフィールド識別ID、または、テーブル識別ID)を設定するかどうかで変更できます。
  • エラーメッセージのみを画面上部に表示する

  • エラーがあった画面アイテムに対しエラー通知表示をする
    • 画面アイテムを赤枠で囲みエラー通知アイコンを表示するなど、エラー通知の表示内容は画面アイテムに依存します
エラーアイテム情報( errorItems )は配列型です。
複数のエラー情報を設定する場合は、配列操作関数の「push」等を利用して変数のエラーアイテム情報( errorItems )に要素を追加してください。

コラム

生成された業務ロジックでは、「終了」タスクのマッピング設定で、変数の errorItems が出力の errorItems にマッピングされています。
分岐などにより、「終了」タスクを新たに配置する場合は、既存の「終了」タスクを参考にマッピングを行ってください。

注意

処理中に入力チェック以外のエラーが発生した場合にのみ、出力値のエラーフラグ errortrue を設定してください。
エラーフラグが true の場合は、画面にはシステムエラーが発生した旨のメッセージのみが表示され、入力チェックに関するエラーの通知は行われません。

10.9.13.3. 入力値

入力値 説明
formaParam<object> formaParamオブジェクト を参照
sendParam<object> sendParamオブジェクト を参照

10.9.13.3.1. formaParamオブジェクト

画面の基本情報を保持します。
入力値 説明
loginUserCd<string> ログインユーザコード
applicationId<string> アプリケーションID
applicationNo<long> アプリケーションバージョンNO(アプリケーション履歴番号)
insertId<string> データ登録ID
applicationType<string>
アプリケーション種別
  • std:Webデータベース
  • bis_wkf:ワークフロー
appPageType<string>
アプリケーションページ種別
  • REGISTRATION:登録
  • EDIT:更新
  • REFERENCE:参照
temporaryFlag<string>
一時保存フラグ
  • 1:一時保存
  • 0:一時保存でない
processKey<string> プロセスキー

コラム

一時保存時の入力チェック業務ロジックの実行

画面アイテム「ボタン(一時保存)」のプロパティで「入力チェック」を「しない」としている場合も入力チェックの業務ロジックは実行されます。
一時保存時に入力チェックの業務ロジックを実行したくない場合は、上記の formaParam オブジェクトの temporaryFlag を条件とした分岐を実装してください。

10.9.13.3.2. sendParamオブジェクト

フォームの入力情報を保持する送信パラメータオブジェクトです。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルのパラメータ名はテーブル識別IDです。
上記を除く入力アイテムのパラメータ名はフィールド識別IDです。
複数項目選択可能な画面アイテム(「チェックボックス」、「リストボックス」)は選択された値をカンマ区切りにして値が設定されます。

コラム

画面アイテム「ファイルアップロード」のアップロードファイル情報は含まれません。
ファイル情報の取得には「ファイルアップロード情報取得」タスクをご利用ください。

10.9.13.4. 出力値

出力値 必須/任意 説明
error<boolean> 必須
エラーフラグ
true を設定した場合、当処理をエラー終了します。
処理が正常に終了した場合は false を設定してください。
errorMessage<string> 任意
設定したメッセージを例外ログとして出力します。
errorItems<object[]> 任意
入力チェックエラーアイテム情報です。
入力チェックを行う場合は必ずこのパラメータを定義してください。
画面に表示される入力チェックエラーメッセージの順番は配列の先頭より昇順です。
- inputId<string[]> 任意
エラーになったアイテムの識別ID配列です。
フォームにあるアイテムのフィールド識別IDを設定します。
画面アイテム「ファイルアップロード」はアイテム識別IDを設定します。
1つのエラーメッセージに対し、複数のフィールドが紐づく場合は、配列に識別IDを全て設定します。
入力チェックエラーメッセージのみを表示させたい場合はこのプロパティを省略します。
- errorMessage<string> 任意
入力チェックエラーメッセージです。
設定したメッセージを画面に表示します。
ロケールごとにメッセージを用意する必要がなければこのプロパティを利用してください。
- localizedMessages<object> 任意
ロケール別入力チェックエラーメッセージです。
設定したメッセージをロケールに従って画面に表示します。
アカウントコンテキストから解決されたロケールに一致するメッセージを使用します。
入力チェックエラーアイテム情報の errorMessage が設定されている場合はこのプロパティは使用されません。
ja<string> 任意 日本語ロケールメッセージ
en<string> 任意 英語ロケールメッセージ
zh_CN<string> 任意 中国語ロケールメッセージ
- index <double> 任意
エラー行番号です。
入力チェック対象にテーブルが含まれる場合に定義します。

10.9.13.5. 変数

出力の errorItems にマッピングするための変数です。
出力値 説明
errorItems<object[]> 入力チェックエラーアイテム情報
- inputId<string[]> エラーになったアイテムの識別ID配列
- errorMessage<string> 入力チェックエラーメッセージ
- localizedMessages<object> ロケール別入力チェックエラーメッセージ
ja<string> 日本語ロケールメッセージ
en<string> 英語ロケールメッセージ
zh_CN<string> 中国語ロケールメッセージ
- index <double> エラー行番号

10.9.13.6. 定数

定数ID 説明
FALSE 出力値 error へのマッピングに利用する定数です。
imfrApplicationId
アプリケーションID
「ファイルアップロード情報取得」タスクの入力値等に使用します。

10.9.13.7. 実装例

簡単な入力チェックの業務ロジック実装例をご紹介します。
この業務ロジックでは、「合計金額」という項目の入力値が10,000円以上のとき、「備考」という項目が空欄であればエラーと判定します。

10.9.13.7.1. 概要

../../../_images/webdb_input_validation_2.png
図:業務ロジックの実装例
以下のタスクを使用しています。
  • 基本 > 分岐
  • 基本 > 変数操作

10.9.13.7.2. 処理の流れ・設定例

  1. 分岐タスクで、合計( total )が10,000以上、かつ、備考( notes )が空欄の場合と、それ以外で処理を分岐させます。
    今回の例では、条件式に以下を設定します。
    • ${ $input.sendParam.total >= 10000 && isEmpty( $input.sendParam.notes ) }
  2. 条件式の評価結果がtrueだった場合に変数操作を実行します。falseだった場合は、そのまま終了します。
  3. 変数操作タスクでは、変数のエラーアイテム情報( errorItems )にエラーになったアイテムのフィールド識別ID( notes )、および、エラーメッセージを設定します。
    フィールド識別IDとエラーメッセージはどちらも定数に設定したものを使用します。
    ../../../_images/webdb_input_validation_3.png
    図:「マッピング設定」