入力ミスが多い?
ワークフロー・システムでは、ヒューマン工程における「入力ミス」が避けられません。たとえば「請求書発行日」と「入金期限」の2つの日付を入力する必要があるワークフロー工程であれば、
- データ複製のまま1年前の日付を入力してしまう
- 請求書発行日と入金期限を逆に入力してしまう
もちろんミスをした担当者が不注意なのかも知れません。あるいは、集中力を高めれば、その瞬間だけはミスなく入力できるかも知れません。しかし、100件・1000件と「ミスなし」を続けることは、むしろ困難と言わざるを得ないでしょう。もし入力項目数が多い業務なら、5件・10件でもミスなく入力することですら難しいかも知れません。
初期値を設定する
システム機能として「初期値の設定」が可能なら積極的に利用したい所です。クラウド型ワークフロー『Questetra BPM Suite』の場合、日付データ項目の初期値として「今日から3日後」や「来月の末日」を設定できます。「データ複製」のケースには無力ですが、新しい案件データを業務プロセスに流す場合には、とても有効な方法です。
<設定画面>
[日付入力フォームのテスト]
<モデリング動画(8倍速)>
入力支援ボタンを表示する
入力値がパターン化できるケースでは「入力支援ボタン」の利用が有効です。たとえば「請求書発行日」の入力値のほとんどが、「今日」もしくは「明日」もしくは「翌月1日」なのであれば、それらの入力ボタンを表示しておくことでクリック入力が可能となり、上述のミス発生率は限りなくゼロになります。
クラウド型ワークフロー『Questetra BPM Suite』においては、JavaScript の知識が必要となりますが、もし「JavaScript による HTML の書き換え」について知識を持つ人が周囲にいるようなら積極的に検討したい所です。(過度な JavaScript の記入は、システムを不安定にしてしまう危険があるので注意が必要です)
※「今日ボタン」は標準機能として実装されています
▼デコレーションで『入力支援ボタン』を設置する例(HTML/JavaScript)
<button type='button' id='my2decoTomorrow'>明日</button> <button type='button' id='my2decoFollowingMonth'>翌月1日</button> <script type='text/javascript'> jQuery("#my2decoTomorrow").on("click",function(){ var myTomorrow = new Date(); myTomorrow.setDate( myTomorrow.getDate() + 1 ); var y = myTomorrow.getFullYear(); var m = myTomorrow.getMonth() + 1; var d = myTomorrow.getDate(); var tmp = y + '-' + ('0' + m).slice( -2 ) + '-' + ('0' + d).slice( -2 ); jQuery("input[name='data\\[2\\].input']").val( tmp );}); jQuery("#my2decoFollowingMonth").on("click",function(){ var myFM = new Date(); myFM.setDate(1); myFM.setMonth( myFM.getMonth() + 1 ); var y = myFM.getFullYear(); var m = myFM.getMonth() + 1; var tmp = y + '-' + ('0' + m).slice( -2 ) + '-01'; jQuery("input[name='data\\[2\\].input']").val( tmp );}); </script>
検証ボタンを設置する
入力後にセルフチェックを行うための「検証ボタン」が有効な場合もあります。これは入力した日付について「N日前/N日後のX曜日」として表示させるだけのボタンです。しかし、入力後に「検証ボタン」をクリックする習慣を付けるだけで、入力ミスの発生リスクを大幅に下げることができます。
この設定も JavaScript の知識が必要となりますが、たとえば、基本的には未来の日付が入力される「入金期限」といった入力フォームでは非常に有効なミス防止策と言えます。
▼デコレーションで『検証ボタン』を設置する例(HTML/JavaScript)
<button type='button' id='my3deco'>Check</button> <script type='text/javascript'> jQuery('#my3deco').on('click',function(){ var myToday = new Date(); var targetDate = new Date( jQuery("input[name='data\\[3\\].input']").val() ); var dayStr= new Array("日","月","火","水","木","金","土"); var myDiff = targetDate.getTime() - myToday.getTime(); var myDiffDays = Math.floor( myDiff / ( 1000 * 60 * 60 * 24 ) ) + 1; var tmp = ""; if( myDiffDays < 0 ){ tmp = "<font color='red'>" + myDiffDays + "日前 (" + dayStr[ targetDate.getDay() ] + ")</font>"; }else{ tmp = myDiffDays + "日後 (" + dayStr[ targetDate.getDay() ] + ")"; } jQuery('#my3decoView').html( tmp ); }); </script> <span id='my3decoView'><font color='gray'>(e.g. 25日後 (水) )</font></span>
<データ項目一覧画面>
[雛形ダウンロード (無料)]
- 業務テンプレート:日付入力フォームのテスト
- 第533話:数値入力ミスを防ぐ工夫 (2017-05-01)
- 第481話:入力フォームに「ボタン de 入力」の工夫 (2016-05-02)
- 住所入力は正確に!(郵便番号データ活用) (2015-11-02)
- 文字列型(!)、日付型(!!)、ファイル型(?!)、掲示板型(?!!) (2014-02-24)
- M213 入力画面: 処理フォーム画面をデコレーションする(HTML/JavaScript) (使い方)
- M207 データ項目: データ項目の初期値があらかじめ入力されているように設定する (使い方)
[英文記事 (English Entry) ]
0 件のコメント :
コメントを投稿