Cybozu developer networkのTipsのURL:

https://developer.cybozu.io/hc/ja/articles/211429603


今回は自動でルックアップしてセットするカスタマイズをご紹介します!

レコードを追加する時にあらかじめ自分の情報が入力されていたら便利ですよね?


名前だけなら、ユーザー選択フィールドを設置し、初期値をログインユーザーに設定すれば可能ですが、名前以外の情報も同時に入るようにするには、「社員情報マスタ」のような他のアプリから自分の情報を取得する必要があるでしょう。


でも「取得」ボタンを押して自分のレコードを選択、の作業が面倒・・・


そんな時はCustomineで自動ルックアップのカスタマイズをしましょう!


Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。

アプリのフォーム

アプリは「社員マスタ」と「社内申請」の2アプリを作成します。


社員マスタアプリ

フィールド

  • 社員番号:文字列(1行)フィールド

  • 氏名:文字列(1行)フィールド

  • ログイン名:文字列(1行)フィールド


社内申請アプリ

フィールド

  • 社員番号:ルックアップフィールド

  • 氏名:文字列(1行)フィールド

ルックアップの設定

  • ルックアップのキー:社員番号
  • 他のフィールドのコピー:氏名


やりたいこと

社内申請アプリでレコード追加画面を表示したときに、社員マスタアプリから自分のログイン名をキーとして自分の「社員番号」を取得し、社内申請アプリの「社員番号」にコピーする。

取得できた場合はルックアップの取得を実行する。

取得できなかった場合は「社員番号」にエラーを表示する。


Customineの設定

ログインユーザーを取得する

社員マスタから自分の社員情報のレコードを取得するためのキーとなるログイン名を取得します。


やること

ログインユーザーを取得する」を使用します。現在ログインしているユーザーの情報を取得します。取得する情報の中には、ログイン名・表示名・メールアドレスが含まれており、どれを使うかは使うときに選択します。


条件

追加画面を表示した時」を選択します。


ログイン名をキーに社員マスタからレコードを取得する


やること

キーを指定してレコードを取得する」を使用します。

  • 取得先アプリ:社員マスタ

  • (取得先アプリの)キーとなるフィールド:ログイン名

  • キーの値:=$(ログインユーザー取得のアクション番号).code


「$(ログインユーザー取得のアクション番号)」はアクションの結果、ここでは取得したログインユーザーの情報の塊を表し、「.code」はその中からログイン名を取り出すことを表しています。

もし、表示名を利用したい場合は「.name」を、メールアドレスを利用したい場合は「.email」を「.code」の代わりに付け足します。


条件

ログインユーザーの取得に続けて実行したいので、「他のアクションの実行が完了した時」を使用します。


取得したレコードから社員番号をコピーする


やること

フィールドに値をセットする」を使用します。

  • フィールド:社員番号

  • 値:=$(レコード取得のアクション番号)[0].社員番号

「$(レコード取得のアクション番号)[0].社員番号」は取得したレコードの一件目の社員番号の値を参照することを示しています。「値」を入力するときに、「他のアクションの結果」でアクションとフィールドを選択すると自動で入力されます。



条件

こちらもレコードの取得に続けて実行したいので、「他のアクションの実行が完了した時」を使用します。取得したレコードが1件以上の時に限定したいので、「レコード件数が1件以上ならば」を追加します。


ルックアップを取得する


やること

ルックアップを取得しなおす」を使用します。現在のルックアップのコピー元のレコードを取得しなおし、 フィールド値のコピーが設定されている場合はコピーしなおします。

  • ルックアップフィールド:社員番号


条件

これも続けて実行したいので、「他のアクションの実行が完了した時」を使用します。


社員情報レコードが存在しない場合の対応

ユーザーのログイン名をもつ社員情報レコードが存在しない場合は、社員番号に値が入りません。特にエラーなどは表示されないので、ユーザーはなぜ値が入らなかったのかわかりません。

そこで、レコードが取得できなかった場合はエラーを表示することにしましょう。



やること

フィールドエラーを表示する」を使用します。フィールドの下にエラーを表示します。

  • フィールド:社員番号

  • エラーメッセージ:該当データがありませんでした。


条件

他のアクションの実行が完了した時」を使用します。レコード取得の直後に実行したいので、「アクション」はレコード取得のアクションのアクション番号を選択します。


また、レコードが取得できなかった時に限定したいので、「レコード件数が0件ならば」を追加します。


テスト

設定が完了したら、「kintoneアプリへ登録」し、動作チェックしてみましょう。

レコードがある時とない時の両方をチェックしましょう。


レコードがある時

自動で自分の社員番号と氏名が入力されましたね。


レコードがない時

「社員番号」の下にエラーが表示されました。


終わりに

今回のように毎日の手間を減らすカスタマイズをCustomineで簡単に実現できます!

色々設定してどんどん便利なアプリにしてくださいね!


Customineドキュメントサポートページもぜひご活用ください。


もし分からないことがありましたら、フォーラムの方でご質問ください。