1. HOME
  2. ブログ
  3. 【構築日記】テーブル内フィールドを重複禁止にするカスタマイズ方法の紹介

【構築日記】テーブル内フィールドを重複禁止にするカスタマイズ方法の紹介

計算式プラグイン

はじめに

ペパコミ株式会社でサポート担当をしている、鍋島です。
週に10件程度のMTGを行い、その場で出てきた課題を解決するプラグインの紹介とその設定方法の案内を行っています。OJT形式でプロのテクニックを教える伴走サポートを行っているイメージです。

今回は表題の通りで、kintone標準機能では実現できないけれど要望の多い、サブテーブル内のフィールドに対して事実上の重複禁止設定をかける方法をご紹介します。

まず、前提の確認ですが……テーブル内のフィールドで「値の重複を禁止する」にチェックを入れた場合、下記のようなエラーが表示されてアプリの更新ができません。

が、実務的に、テーブルに重複禁止をかけたい場面は多々ありますので、プラグインを駆使して、疑似的な重複禁止設定を実現していきます。

Step1.計算式プラグインを使って重複の有無をチェックする

まず、計算式プラグインを使って、テーブル内の文字列の重複の有無を確認します。

テーブルの外に数式を設定するための文字列一行フィールドを一つ設置します。
今回は結果(一次保存)という名前のフィールドを作成しました。

計算式プラグインを使って、この結果(一次保存)のフィールドに

TDUPCK(重複禁止にしたいフィールドコード)

という数式を設定します。下記の画像を参考にしてください。
なお、数式エラーが出ますので、計算式プラグインはver70以降のものを使ってください。
TDUPCK関数は、テーブルに重複があるとtrue、重複がない場合はfalseと返してきます。




動作の確認を行うと、テーブルに「みかん」を2行入れている場合、結果(一次保存)のフィールドがtrueとなることが確認できました。

Step2.ATTAZoo+の入力サポート+を使い、レコードが保存できないようにする

次に、ATTAZoo+に含まれている入力サポート+のプラグインを使い、結果(一次保存)のフィールドに”t”の文字が含まれている場合は保存ができなくなるようにします。

入力制限でtrueの”t”を含んでいる場合、レコードが保存できないようにします。設定例は下記のようになります。


これで、テーブルに重複が含まれる場合「禁則文字が含まれます」というメッセージが出てレコードが保存できなくなりました。

Step3.エラーの原因が伝わるよう、アプリに工夫を入れる

エラーメッセージをわかりやすくするため、文字列一行フィールドの自動計算を使って、エラー原因を伝えてくれるようなメッセージを設定します。

今回は結果(メッセージ)という文字列一行フィールドを設置して、「自動計算する」にチェックを入れ下記の数式を入力しています。

IF(結果="true","商品に重複があるので保存することができません","商品に重複はありません")

アプリの動作確認を行うと、下記のようテーブルに重複があることがわかるようになりました。

終わりに

ということで、テーブルに重複禁止をかける設定を作ってみました。
ここから発展させるとしたら、カスタマインでエラー原因のダイアログ表示を行うような設定を加えても良いかもしれません。

注意点としては、計算式プラグインのverが70以降でなければならない、kintoneの編集画面で働くカスタマイズなのでcsvを読み込んでレコードを作成する瞬間には機能しない、といった点には注意が必要です。

設定が簡単な割に効果が大きいカスタマイズだと思うので、ぜひ知り合いに勧めていただけると嬉しいです。

鍋島 将栄
伴走ナビ 構築・サポート担当。 krewdata/カスタマイン/計算式プラグインが得意。 JS開発を行わずにプラグインと連携サービスのみで複雑な動きを実現しつつ、あまりトラブルが起きないkintoneを作ることを意識して活動しています。
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

       

関連記事

今すぐ伴走ナビ公式LINEに登録する 最新記事を通知 公式LINEはこちら 毎月5社限定 無料相談はこちら