アプリケーションにおける入力チェックについてご存知でしょうか。バリデーションや入力値検証、入力規制等と言われることもあります。一見地味な機能に見えるかもしれませんが、IT活用をしていく上で大きな意味を持っています。
この記事ではその具体的な内容やメリットを解説していきます。
入力チェックとは
入力チェックとは、その名の通り、システム等に入力するデータの妥当性を登録前に検証し、チェックをクリアしたデータのみが登録されるように制限するものです。
アプリケーション作る側の開発者の立場から見ても、不正なデータを弾くバリデーション(入力規則)を設けることで、不整合なデータを登録することにより生じる不具合の発生を防止してシステムの安定性を担保したり、セキュリティ上のリスクが生じないようにする、といった観点で必要とされています。
しかし、今回の記事では、上記の観点ではなくITツールを利用するユーザー企業やユーザー自身の観点からの「入力チェック」について解説していきます。
入力チェックの意義・目的
それでは、利用企業やユーザーからみて入力チェックを行うことにどのような意義やメリットがあるのでしょうか。
データ品質の向上
その1つ目がデータ品質の向上です。入力チェックをパスしたデータのみが登録されることで、正しいデータのみが蓄積されるようになります。その結果として、求めている基準のデータ、つまり品質の良いデータを得ることができます。逆に、何の入力チェックも行っていない状態を想像してみて下さい。例えば、金額を入力する欄に、全角で「1000」や記号付きで「¥1,000-」等のバラバラの形式で入力されることになります。
アプリケーションはただ登録するだけで目的が完了するようなものはなく、何らか二次活用するために登録しているので、品質の低いデータが登録されると、活用ができなくなってしまいます。
活用は具体的には様々ですが、例えば、データ分析を例に取ると、顧客データを集計する際に、品質が低い場合、顧客名が全角半角違いで登録されたり、「㈱」の有無があったり等で同じ客が別々に集計される、と考えると分かりやすいかもしれません。
業務ルールの適用
入力チェックを活用する目的の2つ目として、業務ルールの適用が挙げられます。例えば、与信限度額の範囲内でのみ取引先からの受注を受けれる、というルールがある場合に、システム上制限していないとルール上誤った取引が成立してしまうかもしれません。そういった業務上のルールをしっかりと遵守させる、という観点からも入力チェックが活用されるメリットがあります。
入力チェックの仕組みと種類
次に、入力チェックとは具体的にどのような仕組みなのでしょうか。ユーザーが入力を行ってから、実際に登録される前に検証を行い、入力エラーがあった場合は、その原因を表示し、ユーザーに修正を促すというのが基本的な流れです。細かいバリエーションとしては、入力直後からリアルタイムにエラー表示するケースもありますし、登録を実行するボタンをクリックした後でチェックを実行してエラーを表示するケースもあります。
更に具体的に、どのような種類の入力チェックがあるのかを次に説明していきます。
必須
入力されるべき項目が未入力になることを防ぎます。あるデータを作成する際に、必要となる要素が登録されることを担保します
必須項目の具体例 … ないと情報が意味をなさないような重要な項目、データを一意に特定するためにキーとなる項目等
長さ
文字の長さを検証します。例えば、最大文字数が200文字以内でメモ欄を入力する、決められた桁数で社員番号を登録する等です。
範囲
定められた範囲内のデータかどうかを検証します。数値だけでなく、日付や時間等でも範囲の検証は可能です。
例えば、以下のような条件でチェックすることが考えられます。
データの種類 | 制限の具体的な利用例 |
---|---|
数値 | 金額の範囲。1,000〜10,000円の範囲内かどうか等 |
日付 | 相対的な範囲での制限。1ヶ月以内の日付が指定されているか等 |
時間 | 時刻の範囲。0:00〜17:00の範囲内かどうか等 |
フォーマット・形式
データがあるべき形式に沿っているかどうかを検証します。
基本的な所だと、数値項目が数字のみの有効な数値として入力されているか、
日付項目が正しい日付の形式になっているか、
半角英数という条件の項目に対象外の文字列が含まれていないかといった例が考えられます。
関係性
入力チェックは、その項目だけで完結するのではなく、時に他の項目との関係性において妥当かをチェックする必要があります。
例えば、ある選択肢で「その他」を選んだ時には、直後の「備考」を必須項目とする、といったものです。
他にも、日付の前後関係に制約を付けて、「申込日」は「完了日」より前でなければならない、としたり、更に複雑なものだと、顧客マスタの与信残高と比較して、受注金額の上限を設定したり、ということも考えられます。
システム整合性
先程は、これから登録するデータの項目間の関係性でしたが、今後は、既にデータベースに存在しているデータ等の現在のシステムの状態との整合性をチェックする考え方です。
例えは、重複したデータの登録を防ぐためキーとなる項目の組み合わせがデータベースに存在するかチェックしたり、マスターデータを参照する項目(例えば顧客マスタ)を登録する場合に、本当にそのデータが存在するかをチェックしたり、といったものです。
他にも権限設定に応じて、このデータを登録可能かといったことを検証するパターンも考えられます。
具体的なITツールでの実現例
それでは、このような入力チェックは実際のITツールではどのように実現されているでしょうか。ノーコード開発ツールのNuAppを例に取り解説していきます。
NuAppでは、画面上からデータ項目の設定を行い自由にWebデータベースを作成しますが、この際、項目別に入力チェックを行っていきます。
例えば、以下の通りです。
必須チェックを行う場合は、誰がいつ登録するかという状況に応じて設定を変えることができます。同じデータを取り扱っていても、申請者と承認者では入力しなければならない情報が異なってくる、という状況を想像してもらえれば、こうした必須チェックの有無を状況に応じて切り分ける必要性がご理解いただけると思います。
関係性によるチェックを行う際には、「高度な入力ルール」から行います。以下のように、特定の条件時に必須にしたり、別項目と比較して値の範囲を制限することができます。
システム整合性だと、例えば重複排除を行う際は、「キーを指定」からキー項目を設定すると、登録時に重複データが存在していないかをチェックするようになります。
このように、様々な側面から入力チェックを行い、データ品質を担保することが可能です。
このように、ITツールを選定する場合も、入力チェックが目的に応じて簡易に実現できるかどうか、といった点も考慮すると良いかもしれません。
今回の記事でご紹介したNuAppにご興味をお持ちの方は、以下よりお問い合わせ下さい。