公開日:2018-01-11
今回はルックアップフィールドを重複禁止にしたい時の方法です。
半年前に書いた kintoneのルックアップの落とし穴(その1) はこちら。
使ったアプリ
以下の2つのアプリを使います。
- 社員マスタ

2. 社員マスタをルックアップして、社員の情報を入れるアプリ

フィールドはこんな感じです。

実現したい事
アプリ(社員マスタでは無い方)にレコード追加する際、社員ごとに1レコードだけ登録できるように制限したいケースがありました。
社員番号に対して重複を禁止できれば良いのですが、ルックアップフィールドには重複禁止の設定がありません。


↑ 右図では文字列フィールドと書いていますが、以下のフィールドタイプには重複を禁止する設定があります。
- 文字列(1行)
- 数値
- 日付
- 日時
- リンク
試した事
「文字列(1行)」フィールドであれば重複禁止の設定が使える事を利用して、
重複禁止にした「文字列(1行)」フィールドを用意して、自動計算で社員番号をコピーすればいけるのでは!と考えました。
で、実際に試したところ・・・
自動計算を有効にすると、重複禁止の設定ができなくなる仕様でした(´;ω;`)

これはJavaScriptでカスタマイズするしか無いか・・・と思ったのですが、次の方法であればカスタマイズ無しで対応できました(∩´∀`)∩ワーイ
解決策
以下のようにアプリを変更します。
- 「文字列(1行)」を追加し、重複禁止の設定を行う(ここではフィールド名を「社員番号(コピー)」としている)

- 社員番号(ルックアップ)の設定で、「ほかのフィールドのコピー」に「社員番号(コピー)」フィールドの設定を追加する

はい、、、ルックアップでコピーしてあげるだけです・・・。
このように設定する事で、同じ社員番号のデータを追加しようとすると、重複禁止のエラーになるわけです。

注意点としては、既存のレコードには「社員番号(コピー)」に値が入っていないため、再ルックアップしてあげる必要があります。
その3へ続く(?)
投稿者プロフィール

- kintoneを活用したシステム開発(だけ)をやってます。kintone認定資格5冠。