はじめに
社内申請などを行うkintoneアプリでは、社員本人が申請することも多いですよね。
そのため、レコードを追加するときに社員本人の名前を自動的にセットしてくれたら入力作業が楽になると思いませんか?
そこで今回の記事で紹介するのは、ずばり「自動ルックアップ」です!
レコード追加時に、社員マスターアプリなどから自分の氏名を自動的にルックアップし、セットしてくれるカスタマイズです。
ルックアップのボタンを押して、[ユーザーを選択]画面で自分を選択して…という面倒なアクションが一気に省けちゃいます。
完成イメージ
[+]ボタンを押して新しいレコードを追加する時、ルックアップフィールドに自分の名前がすでにセットされています。
実装イメージ
今回の実装のイメージです。
動作上は標準機能のルックアップと類似していますが、実際はJavaScriptでこのような処理を行っています。
実装の流れ
- レコード追加イベントで、REST APIを使用し、ログイン名をキーにルックアップ先のアプリのレコード情報をリクエスト
- キーに合致したレコード情報を1件取得
- 取得したレコードの値をルックアップフィールドにセット
- ルックアップフィールドのlookupプロパティにtrueを設定し、 ルックアップを自動で取得
アプリの準備
マスターアプリの設定
ルックアップ先のレコードが入るマスター用のアプリを用意します。
今回はログイン名をキーとして合致したレコード情報を取得します。
ログイン名の他にマスターから取得したいフィールドを設定しましょう。
今回は、[社員番号]と[氏名]を設定します。
| フィールド名 | フィールドタイプ | フィールドコード | 備考 |
|---|---|---|---|
| 社員番号 | 文字列(一行) | 社員番号 | 「値の重複を禁止する」を設定 |
| 氏名 | 文字列(一行) | 氏名 | |
| ログイン名 |
文字列(一行) | ログイン名 |
今回のカスタマイズは、
ルックアップの取得を自動で行う
ようにしています。
「コピー元のフィールド」で選択したフィールドについて、既存のレコードの値が重複する場合は自動取得できません。
そのため「コピー元のフィールド」で選択したフィールドについて、「値の重複を禁止する」に設定しています。
マスターができたら、ルックアップ先のレコードを追加するのをお忘れなく!
ログイン名がキーになるため、正確に記載しましょう。
フォームアプリの設定
フォーム用のアプリを用意します。
ルックアップフィールド[社員番号]で先ほどのマスターアプリとの関連付けを以下のキャプチャのように設定します。
なお、キーとなるログイン名についてはkintone APIで取得できるためアプリでのフィールド設定は不要です。
| フィールド名 | フィールドタイプ | フィールドコード | 備考 |
|---|---|---|---|
| 社員番号 | ルックアップ | 社員番号 |
[ほかのフィールドのコピー]で[氏名] < (マスターアプリ名の)[氏名] |
| 氏名 | 文字列(一行) | 氏名 | |
| (なし) | スペース | error_display_field | エラーメッセージ表示用スペースフィールド |
サンプルプログラム
プログラム(JavaScript)
|
|
ポイント解説
ルックアップフィールドへの値セット
|
|
- REST APIで取得したルックアップ先の社員番号を、ルックアップ元にセットしてルックアップを実行しています。
- それにより、申請者に社員番号を勝手に書き換えられることのないアプリ設計になっています。
エラー処理
|
|
- マスターに該当のレコードが見つからない場合は、その旨を画面に表示します。
|
|
- エラー表示は、そのままだと、その後あらためて手動でルックアップに成功しても残ってしまいます。
- そこでフィールド変更時イベントを利用して、ルックアップで値がコピーされた際はクリアするようにしています。
おわりに
このカスタマイズのメリットは、面倒なアクションが省けるということだけではありません。
同じようにマスターを参照するアプリを作成するとき、同名のフィールドコードでルックアップを設定すれば、同じコードでカスタマイズできるという点もメリットになります。
手近なところでは
アプリストア
にある
ワークフロー(社内申請管理)パック
(よく使う3つの社内申請管理のセット)と
社員名簿
の連携でも便利にお使いいただけるかと思います。ぜひ
開発ライセンス
を申し込んで試してみてくださいね。
関連付けしたアプリのレコード情報を自在に取得できるため、たとえば休暇申請アプリに関連付けた有給休暇管理アプリから、自分の氏名と残りの有給休暇日数を同時に表示したレコードを作ることもできそうです。
ご活用ください!
デモ環境
デモ環境で実際に動作を確認できます。
https://dev-demo.cybozu.com/k/229/
ログイン情報は cybozu developer networkデモ環境 で確認してください。
このTipsは、2025年6月版kintoneで動作を確認しています。
