cybozu.com共通管理に登録されているユーザーには、ログイン名などとは別に、ユーザーを識別するための「ユーザーID」があります。ユーザーID は、普段 kintone を利用する中で直接確認する機会はほとんどありません。



カスタマインでは、プロフィールのカスタマイズ項目にユーザー選択タイプの項目を設定している場合などに、やること「ユーザーのプロフィールを取得する」でユーザーID を取得することがあります。

このとき、ユーザーID から、対応するユーザーを kintone のユーザー選択フィールドで扱える形式で取得できると便利です。


この記事では、ユーザーID と kintone のユーザーを紐づけるユーザーマスタを作成・更新する方法を紹介します。


動作イメージ

今回は、ユーザーマスタを更新するための「ユーザーマスタ更新用」と、ユーザーIDと kintone のユーザーを紐づける「ユーザーマスタ」の2つのアプリを使用します。


「ユーザーマスタ更新用」アプリに下記のようなレコードを1件作成し、レコード詳細画面で、「ユーザーマスタを更新」ボタンをクリックします。



ボタンをクリックすると、「更新グループ」フィールドで指定したグループに所属するユーザーをすべて取得し、「ユーザーマスタ」アプリへ、1ユーザー1レコードとして登録します。

(すでに同じユーザーID のレコードが存在する場合は、そのレコードを更新します)



この記事では、例として「Everyone」に所属するユーザーを、ユーザーマスタへ登録します。


※このカスタマイズでは、取得したユーザーに対応するレコードを追加・更新します。ユーザーマスタに存在するレコードを削除する処理は行いません。


アプリの設定

ユーザーマスタ更新用 アプリ

ユーザーマスタを更新するカスタマイズを設定するアプリです。

次のフィールドを配置します。


フィールド名

フィールドコード

フィールドタイプ

備考

更新グループ

更新グループ

グループ選択



※ユーザー選択フィールドでもグループを選択することは可能ですが、その時点で選択したグループに所属しているユーザーがセットされます。今回、「ユーザーマスタを更新」ボタンをクリックした時点で、「Everyone」に所属しているユーザーを取得するため、グループ選択フィールドを使用します。



後述するカスタマイズは、レコード詳細画面に配置したボタンから実行します。

そのため、「更新グループ」フィールドで「Everyone」を選択したレコードを1件作成しておきます。


ユーザーマスタ アプリ

ユーザーID と kintoneユーザーを紐づけて保存するアプリです。

次のフィールドを配置します。


フィールド名

フィールドコード

フィールドタイプ

備考

ユーザーID

ユーザーID

文字列(1行)

「値の重複を禁止する」を有効

kintoneユーザー

kintoneユーザー

ユーザー選択



※ユーザーID は取り得る値が大きいため、フィールドタイプは数値ではなく、文字列(1行)を使用してください。



ユーザーマスタのレコードは、後述するカスタマイズによって自動的に追加・更新されるため、あらかじめ手動で作成する必要はありません。



カスタマインの設定

「ユーザーマスタ更新用」アプリに、下記のカスタマイズを設定します。



ユーザーマスタを更新するボタンを配置する

まず、レコード詳細画面に「ユーザーマスタを更新」ボタンを配置します。


 やること「ボタンをメニュー位置に配置する」

【場所】

レコード詳細メニューの上側

【ラベル】

ユーザーマスタを更新

【追加位置】

一番右に追加する


 条件「詳細画面を表示した時」 



グループに所属するユーザーを取得する

アクション1 で作成した「ユーザーマスタを更新」ボタンを押した時、「更新グループ」フィールドで選択されているグループに所属するユーザーを取得します。


 やること「グループ(ロール)に所属するユーザーを取得する」

【グループ選択フィールド】

更新グループ

【セット先フィールド(省略可)】

〈選択されていません〉


 条件「ボタンを押した時」

【ボタン】

1



取得したユーザーを1件ずつ取り出す

アクション2 で取得したユーザーごとに、後続のアクション4 でレコードを追加・更新するため、ユーザーを1件ずつ取り出します。


 やること「リストから要素を取り出す」

【リスト】

= $2


 条件「いずれかのアクションの実行が完了した時」

【アクション】

2, 4



ユーザーマスタのレコードを追加または更新する

アクション3 で取り出したユーザーに対応するレコードを、ユーザーマスタへ追加または更新します。


 やること「レコードを更新または追加する(キーの値を直接指定)」

【追加先アプリ】

ユーザーマスタ

【キーとなるフィールド】

ユーザーID

【キーの値】

= $3.id

【マッピング】

ユーザーID = $3.id

kintoneユーザー = $3


 条件「リストから要素を取り出した時」

【アクション】

3



この設定により、既に「ユーザーID」のレコードが存在する場合は更新、なければレコードを新しく追加します。

また、「ユーザーID」フィールドで「値の重複を禁止する」を有効にしているため、同じユーザーID のレコードが重複して登録されるのを防げます。



以上でカスタマイズは完成です。

「ユーザーマスタ更新用」アプリのレコード詳細画面を開き、「ユーザーマスタを更新」ボタンをクリックして動作を確認してください。

なお、cybozu.com共通管理にユーザーを追加した場合など、ユーザー情報に変更があった場合は、必要に応じて「ユーザーマスタを更新」ボタンをクリックし、ユーザーマスタの情報を更新してください。



まとめ

今回のカスタマイズでは、「更新グループ」フィールドで指定したグループに所属する全ユーザーを取得し、ユーザーID をキーとしてユーザーマスタへ追加・更新する方法を紹介しました。


ユーザーマスタにユーザーID と kintoneユーザーを対応付けておくことで、ユーザーID から対応するユーザーを簡単に取得できるようになります。


ご不明な点がございましたら、チャット でお問い合わせください。

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