Read Article

kintoneにはバリデーションチェックの機構が足りない

kintoneにはバリデーションチェックの機構が足りない

こんにちは!
7月の月間ベスト俺トレンド大賞横綱は「ポケモンGO」を抑えて「投資信託」だった武井です。

ハマり過ぎて近所の全本屋の投資本を立ち読み尽くしました!

今オススメのファンドは「たわらノーロード国内REIT」です。
※投資は自己責任でお願いします

さて、私が“お金”ではなく“人生”を投資しているkintone。

今回は、お伝えしている「ルックアップ」以外で最も待望されているであろう「バリデーションチェック」機能についてです。

現状

現状のkintone標準機能で、バリデーションチェックは皆無ではありません。ほ~~~んの少しあります。

あるのは、

  • 同アプリ内の重複チェック(複合キーはチェック不可)
  • 必須チェック
  • 文字数チェック
  • 数値チェック
  • 桁数チェック
  • メールアドレスチェック
  • URLチェック

恐らくこれだけです。
あとはもう、何もチェックできません。ザルです。

さすがにこれは公式な対応策が既にいくつか出ていて、
サンプルカスタマイズサンプルプラグインが割と早い段階でリリースされています。

しかし、そもそもこんなのは標準で備えているべき機能だと思います

その理由は以下の通りです。

  1. カスタマイズやプラグイン設定できないライトコースではバリデーションチェック出来なくていいのか
  2. スタンダードコースだとしても、環境に合わせた設定にするためには、プログラミング知識か外部開発料が要る
  3. これくらいは七面倒くさいカスタマイズだのをしなくても設定したい基本機能である
  4. むしろカスタマイズの用途は、大多数の顧客(ユーザー)にとって「これは標準ではできなくてもしゃあないかもしれんけど」くらいのレベルであるべきと考える
  5. SIerの経験としても、バリデーションチェックの要請はとても多い

悲しい現実

「リンク」というフィールドがあり、その設定欄に「URL」や「電話番号」、「メールアドレス」という“それっぽい”選択肢があります。

「URL」は日本語ドメインについては日本語のままの入力では受け付けないものの、バリデーションチェックが入っています。
「メールアドレス」もバリデーションチェックが入っています。

しかし、電話番号は単に「callto:」のリンクを張ってくれるだけで、
バリデーションは全然チェックしてくれません。
「callto:おほおぉぉぉおおおぉッッ!!」など、何でもありです。
これには、意図的にバリデーションチェックを外しているのではないかという疑義すら生じます。

kintoneは公式に「クラウド型データベース」と謳っています。

しかし、データベースの”tel”カラムに「おほおぉぉぉおおおぉッッ!!」レコードが入ってしまってよいのでしょうか?

私がデータベース管理者なら「何事だ!?」と思います。

俺にできることをやる

今の私にできることといえば、本末転倒のようではありますが、カスタマイズで現状をよりよくすることのみです。

頼まれてもいないのにサイボウズ公式バリデーションチェックプラグイン大パワーアップさせてみました。
パワーアップというかほぼ一から再作成しています

従来と比べてパワーアップした機能の一覧は以下の通りです。

■複合キーの重複チェック

そもそもkintoneは複合キーに完全未対応です。
標準では単一主キーのみ可能な構造です。

この複合キーの重複チェック=kintoneでの複合キー機能の導入と考えていただいて構いません!
(実際にはUI上のみの対応となりますが、普通に使用する分には差異はないでしょう)

複合キーのアプリを作るために毎回プログラムなんぞ書いてられっか!という方にオススメの機能です。
この単機能だけでも割とkintone界隈では画期的なプラグインだと思いますッ!

※複合キーについてご質問が多かったため、ここに簡単に説明を追記いたしますが、
複合キーとは、2つ以上のフィールドを主キー(PK)とするものです。

例えば、「社員ID」と「氏名」というフィールドを作成し、
「社員ID = 1」「氏名 = 武井」
「社員ID = 1」「氏名 = 鈴木」
「社員ID = 2」「氏名 = 武井」
のように、「社員ID」と「氏名」の両方を常に重複禁止とする状態、
すなわち「社員ID」と「氏名」の組み合わせを主キー(PK)とする状態、これが複合キーです(たぶん)。

■電話/FAX番号の形式チェック(+ハイフン許可有無)

電話/FAX番号チェックは元々のプラグインでもありましたが、
チェックのロジックを見直しました。

具体的に言うと、元々のプラグインは「10桁か11桁の数字かどうか」しかチェックしていませんでした。
こんなんだったら標準機能でも頑張れば設定できます。

私の改良版は「ハイフン不可の場合は10~11桁の数値かをチェックし、ハイフン許可の場合は、ハイフン不可の条件か、あるいはハイフンは必ず2つで、00-0000-0000の形式」をチェックしています。

細かく言うと面倒くさいので省きますが、この00-0000-0000の形式は、市外局番などで000-000-0000になったりするので、そこにも対応しています

■携帯電話番号の形式チェック(+ハイフン許可有無)

固定電話とは敢えて分けました。

ハイフン不可の場合は11桁の数値のみ、
ハイフン許可の場合は11桁の数値のみか、あるいは000-0000-0000の形式のみを認めているため、
厳密に携帯電話かどうかを判定したい場合はこちらへ指定してください。

なお、「固定電話でも携帯電話でもどっちの入力でもいい」フィールドには、上記の「電話番号チェック」を使用してください。

■郵便番号の形式チェック(+ハイフン許可有無)

郵便番号も、元々は7桁の数字かどうかをチェックするだけの機能でした。

このプラグインでは、「000-0000」の形式かどうかについてもチェック可能です。

■メールアドレス形式チェック

従来プラグインよりもチェックロジックをよりよく改善しています。

標準機能の「リンク」を使うのを忘れていた場合や、
使っていても「mailto:」のリンクを出したくない場合に有効です。

■半角英数字形式チェック

完全新作のバリデーションです。
何かのIDなどで、必ず半角英数字でなければならないフィールドに適用します。

■半角英字形式チェック

こちらも完全新作で、半角英字のみであることをチェックします。

■全角ひらがなのバリデーション

新作チェックです。
ふりがななど、ひらがなであることをチェックします。

■全角カタカナのバリデーション

新作です。
フリガナなど、カタカナであることをチェックします。

■全角文字のバリデーション

当記事にコメントをいただいて追加したチェックです。
全角文字であることをチェックします。

■半角文字のバリデーション

当記事にコメントをいただいて追加したチェックです。
半角文字であることをチェックします。

■これらすべてのチェックについて、複数フィールドにも対応

従来のプラグインでは、それぞれのチェックについて、
1つのフィールドにしか対応していませんでしたが、
本プラグインでは指定し放題です!

■これらすべてのチェックについて、サブテーブルにも対応

従来のプラグインでは、サブテーブルは無視されていました。
サブテーブルの指定はプログラム的にやや面倒なため、省略されたのでしょう。

私も一瞬「サブテーブルはいいかな」というスタンスでしたが、
頑張ってサブテーブルも完全対応しました!

※複合キーチェックは除く。キーなのに増やせるのはおかしいから。
※「ハイフン形式のみ許可」については対応していません。(そういうことはあまりないと思うので)

※モバイルには対応しません。
(現状のkintoneモバイル版はカスタマイズに堪えないというスタンスであるため)
※従ってモバイル版と併用されているシステムでは、バリデーションが利かず、データ不整合が起こりえます。

無償で素晴らしい機能を持つこのプラグイン、その名も

――「入力値チェックプラグイン 武井plus」――

なお、前職の頃から自己主張が激しいと言われて育ちました。

このプラグインの画期的なところは、
これらの機能について、もはや開発が不要になる点です。
ノンプログラミングこそkintone最大の売りでございますので!

また、運用中にバリデーションチェックしたいフィールドが増えてもその都度開発対応する必要がありましたが、
このプラグインの登場によって、
フィールドを追加したら、プラグインの設定にもフィールドコードを追加してあげるだけで良くなったのですッッ!!タダでッ!

さあ、プラグインのダウンロードはこちらから

※Takei_Plus.zipをクリックし「Download」ボタンをクリックしてください。
※プラグインの設定方法はこちらを参照ください。

武井は引き続きユーザーにとってkintoneを使いやすく、より良くする活動を続けて参ります。

【免責事項】
本プラグイン利用に際して発生したいかなる損害・損失も責を負いません。
プラグインに対するご意見は歓迎いたしますが、個別の案件への対応は致しかねます。

【関連記事】kintoneに足りない機能のカスタマイズを提案しているその他記事はこちら

数値以外を自動除外&カレンダーの祝日に色付けカスタマイズ
業界初!?@宛先指定に自動「さん付け」プラグイン提供開始

 

8/8追記

「武井plus」の使い方を記事にまとめていただきました。
https://kintoneapp.com/blog/how_to_use_takeiplus/

この記事を書いた人

武井 琢治
武井 琢治
サイボウズスタートアップス株式会社の武井と申します。
kintoneカスタマイズを行う上での勘所を敷衍して発信していきたいと考えております。
kintoneは中国語対応しているため、中国語でも発信していきたいと思います。
大家好,我叫QB,请多关照。我喜欢吃肠粉。

趣味は漢字です。
所持する資格は、日本漢字能力検定一級です。
URL :
TRACKBACK URL :

COMMENTS & TRACKBACKS

  • Comments ( 6 )
  • Trackbacks ( 0 )
  1. 素晴らしいプラグインを無償でご提供いただきありがとうございます。早速ダウンロードさせていただきました。

    当社では、文字の入力ルールとして、
     ・英数字は半角で(スペースや記号も)
     ・日本語(漢字・ひらがな・カタカナ)は全角で
    と決めていますが、スペースが全角だったり、カタカナを半角で入力したりとかで、なかなか言う事を聞いてくれない輩がいます(^^;

    このようなチェックもできたら非常にうれしいなァ~、という独り言です。

    • yachtmanさん
      早速のダウンロードと貴重なご意見ありがとうございます!!
      おっしゃるチェックは貴社以外でも必要なものだと思いましたので、
      早速プラグインに「全角文字」「半角文字」の各チェックを追加させていただきました!
      お手数ですが再ダウンロードしていただければと思います!

      • 武井様

        早速対応してくれていたのですね~。
        見逃していました。ありがとうございます。

        甘えついでにもう一つ。下記のような事は難しいでしょうか?

        一つのフィールドに日本語と英数字を混在して入力する場合、「日本語は全角で・英数字は半角で」をチェックする。

         品番ひんばんヒンバン-ABC123・・・〇

         品番ひんばんヒンバン-ABC123・・・×

        のようなイメージです。ヨロシクお願い致します。

        • yachtmanさん
          ご意見ありがとうございます。

          ご提案のバリデーションですが、
          作成自体は可能だと思うのですが、
          やや汎用性にかけるかなと思いました。

          もし私のプラグインにてご提案のバリデーションをかけたい場合、
          全角文字の部分と英数字の部分のフィールドを分け、
          それぞれの文字を結合したらよろしいかもしれません。

          似たようなご意見があれば作成しようと思いますが、
          一旦ペンディングとさせていただければと存じます。

          • 武井様

            早速のご回答ありがとうございます。
            そうですね~、その手もありますね。参考にさせていただきます。
            ありがとうございました。

  2. 武井様

    半角英数や全角ひらがななど、ありがちな入力チェックが賄えるすばらしいプラグインですね。
    数値だけの入力チェックを追加していただくことはできないでしょうか。
    たとえば数値のみの7ケタのIDフィールドがあったとします。
    数値フィールドの桁数の設定は、アプリ全体に影響するので、他に数値フィールドがあると、7ケタ小数点なしにすることができません。また数値フィールドでは、入力値が1の場合、0000001とは表示されず、1となってしまいます。
    フィールドごとに、数値のみの入力チェックができ、桁数が指定できるととても便利です。
    ご一考いただけましたら幸いです。

武井 琢治 への返信 コメントをキャンセル

*
*
* (公開されません)

Return Top