【構築日記】kintoneのテーブル内フィールドを重複禁止にするカスタマイズ方法を紹介
こんにちは。伴走ナビでkintoneの構築・お客様の伴走支援しています!伴走ナビの鍋島です!
この記事をクリックした方の多くは、
「kintoneのフィールドで重複禁止を設定する具体的な方法が知りたい!」
という悩みを抱えている方が多いのではないでしょうか?
実際に私が担当したお客様でもご要望が多い悩みの一つです。この件はkintoneの標準機能では対応できませんが、プラグインを活用することで事実上の重複禁止を設定することができます!
そこで今回は表題の通り、kintone標準機能では実現できないけれど要望の多い、サブテーブル内のフィールドに対して事実上の重複禁止設定をかける方法をご紹介します。これまで200件以上のkintone改修に携わった知識を活かして分かりやすく解説するので、ぜひ最後まで読んでみてくださいね!
🔳この記事でわかること
・kintoneの「重複禁止」とは
・kintoneで重複禁止を設定する方法
🔳こんな人におすすめの記事です
・kintoneで重複禁止のやり方がわからない方
・重複禁止でできることを知りたい方
目次
前提|標準機能ではテーブル内のフィールドで「重複禁止」ができない
まず、前提の確認ですが……テーブル内のフィールドで「値の重複を禁止する」にチェックを入れた場合、下記のようなエラーが表示されてアプリの更新ができません。
が、実務的に、テーブルに重複禁止をかけたい場面は多々ありますので、プラグインを駆使して、疑似的な重複禁止設定を実現していきます。
※ちなみに、kintoneの標準機能でも「文字列(1行)」と「数値」のフィールドには重複禁止を設定することが可能なので、それ以外の場合に参考にしてみてください。
【実例紹介】プラグインを駆使してテーブル内フィールドの重複禁止を実現する3Step
それではテーブル内フィールドの重複禁止を実現するステップについて
- 計算式プラグインを使って重複の有無をチェックする
- ATTAZoo+の入力サポート+を使い、レコードが保存できないようにする
- エラーの原因が伝わるよう、アプリに工夫を入れる
の3ステップで解説していきます。
Step1.計算式プラグインを使って重複の有無をチェックする
まず、計算式プラグインを使って、テーブル内の文字列の重複の有無を確認します。
テーブルの外に数式を設定するための文字列一行フィールドを一つ設置します。
今回は結果(一次保存)という名前のフィールドを作成しました。
計算式プラグインを使って、この結果(一次保存)のフィールドに
TDUPCK(重複禁止にしたいフィールドコード)
という数式を設定します。下記の画像を参考にしてください。
なお、数式エラーが出ますので、計算式プラグインはver70以降のものを使ってください。
TDUPCK関数は、テーブルに重複があるとtrue、重複がない場合はfalseと返してきます。
動作の確認を行うと、テーブルに「みかん」を2行入れている場合、結果(一次保存)のフィールドがtrueとなることが確認できました。
Step2.ATTAZoo+の入力サポート+を使い、レコードが保存できないようにする
次に、ATTAZoo+に含まれている入力サポート+のプラグインを使い、結果(一次保存)のフィールドに”t”の文字が含まれている場合は保存ができなくなるようにします。
入力制限でtrueの”t”を含んでいる場合、レコードが保存できないようにします。設定例は下記のようになります。
これで、テーブルに重複が含まれる場合「禁則文字が含まれます」というメッセージが出てレコードが保存できなくなりました。
Step3.エラーの原因が伝わるよう、アプリに工夫を入れる
エラーメッセージをわかりやすくするため、文字列一行フィールドの自動計算を使って、エラー原因を伝えてくれるようなメッセージを設定します。
今回は結果(メッセージ)という文字列一行フィールドを設置して、「自動計算する」にチェックを入れ下記の数式を入力しています。
IF(結果="true","商品に重複があるので保存することができません","商品に重複はありません")
アプリの動作確認を行うと、下記のようにテーブルに重複があることがわかるようになりました。
まとめ|カスタマイズでテーブル内フィールドの重複禁止も可能!
ということで、テーブルに重複禁止をかける設定を作ってみました。
ここから発展させるとしたら、カスタマインでエラー原因のダイアログ表示を行うような設定を加えても良いかもしれません。
注意点としては、計算式プラグインのverが70以降でなければならない、kintoneの編集画面で働くカスタマイズなのでcsvを読み込んでレコードを作成する瞬間には機能しない、といった点には注意が必要です。
設定が簡単な割に効果が大きいカスタマイズだと思うので、ぜひ知り合いに勧めていただけると嬉しいです。
この記事へのコメントはありません。