cybozu.com共通管理では、ユーザーのプロフィールにカスタマイズ項目を追加できます。

カスタマイズ項目にユーザー選択タイプの項目を設定して、「上長」や「代理承認者」など、別のユーザーを指定している場合もあるかと思います。


カスタマインでは、やること「ユーザーのプロフィールを取得する」を使用すると、プロフィールのカスタマイズ項目の値を取得できます。

ただし、ユーザー選択タイプのカスタマイズ項目から取得できる値は、選択されているユーザーのユーザーID です。そのままでは、ユーザー選択フィールドにユーザーとしてセットすることはできません。


この記事では、ユーザーID と kintone のユーザーを紐づけたユーザーマスタアプリを利用して、プロフィールのカスタマイズ項目で指定されているユーザーを取得し、ユーザー選択フィールドにセットする方法を紹介します。


なお、ユーザーマスタアプリの作成および更新方法については、次の記事をご覧ください。


動作イメージ

今回は、ユーザー「山田 太郎」(ユーザーID:2)のプロフィールのカスタマイズ項目:上長に、ユーザー「鈴木 花子」(ユーザーID:3)が指定されている場合を例にします。



「案件管理」アプリのレコード追加・編集画面で、「担当者」フィールドに「山田 太郎」を指定すると、「上長」フィールドに「鈴木 花子」が自動的にセットされます。




アプリの設定

案件管理 アプリ

今回のカスタマイズを設定するアプリです。

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


フィールド名

フィールドコード

フィールドタイプ

備考

案件名

案件名

文字列(1行)


担当者

担当者

ユーザー選択

プロフィールを取得するユーザー

上長

上長

ユーザー選択

取得した上長をセットするフィールド



ユーザーマスタ アプリ

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

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


フィールド名

フィールドコード

フィールドタイプ

備考

ユーザーID

ユーザーID

文字列(1行)

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

kintoneユーザー

kintoneユーザー

ユーザー選択





あらかじめユーザーID と対応する kintoneユーザーのレコードを追加しておきます。




ユーザーマスタアプリの作成や、レコードの自動追加・更新方法については、次の記事もご参考ください。



カスタマインの設定

「案件管理」アプリに、下記のカスタマイズを設定します。



上長をクリアする

「担当者」フィールドが変更された時に、まず「上長」フィールドをクリアします。


これにより、新しい「担当者」のカスタマイズ項目: 上長 が設定されていない場合でも、変更前の「担当者」の「上長」が残ることを防ぎます。


 やること「フィールド値をクリアする」 

【フィールド】

上長


 条件「フィールドの値を編集して値が変わった時」

【フィールド】

担当者

【一覧画面の鉛筆を押した時】

一覧画面の鉛筆を押した時は含めない



担当者のプロフィールを取得する

新しく指定された「担当者」のプロフィールを取得します。

「担当者」の選択が解除された場合は、プロフィールの取得を実行しないように、追加条件「フィールド値が空でないならば」を設定します。


今回、プロフィールのカスタマイズ項目を取得するため、「ユーザーのプロフィールを取得する」の【取得したい情報】パラメータには、「すべて」を指定します。

また、「担当者」にセットされた先頭ユーザーを対象とし、【複数ユーザーが選択されている場合】パラメータには、「最初の1人目のみ取得する」を指定します。


 やること「ユーザーのプロフィールを取得する」

【ユーザー選択フィールド】

担当者

【取得したい情報】

すべて

【複数ユーザーが選択されている場合】

最初の1人目のみ取得する

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

〈選択されていません〉


 条件「他のアクションの実行が完了した時」 

【アクション】

1


 追加条件「フィールド値が空でないならば」 

【フィールド】

担当者



ユーザーIDでユーザーマスタを検索する

「担当者」のカスタマイズ項目:上長から取得したユーザーID に対応するレコードを、「ユーザーマスタ」アプリから取得します。


アクション2 で取得したプロフィールのカスタマイズ項目の値は、customItemValues を使用して参照できます。

この例では、「上長」が1番目のカスタマイズ項目に設定されているため、次の式を指定します。

 式:= $2.customItemValues[0]


カスタマイズ項目:上長にユーザーが指定されていない場合は、ユーザーマスタの検索を実行しないように、追加条件「2つの値を比較して条件を満たすならば」を設定します。


 やること「キーを指定してレコードを取得する」

【取得先アプリ】

ユーザーマスタ

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

ユーザーID

【キーの値】

= $2.customItemValues[0]

【最大取得件数】

1


 条件「他のアクションの実行が完了した時」

【アクション】

2


 追加条件「2つの値を比較して条件を満たすならば」

【比較する値(A)】

= $2.customItemValues[0]

【条件】

等しくない

【比較する値(B)】

〈入力されていません〉

【数字の比較方法】

文字として比較



取得したユーザーを上長にセットする

アクション3 で、「担当者」のカスタマイズ項目:上長のユーザーID に対応するレコードが取得できれば、その「kintoneユーザー」を「上長」フィールドにセットします。


 やること「フィールドに値をセットする」

【フィールド】

上長

【値】

= $3[0].kintoneユーザー


 条件「他のアクションの実行が完了した時」 

【アクション】

3


 追加条件「レコード件数が1件以上ならば」

【レコード】

3



ユーザーマスタに該当レコードが存在しない場合はアクションを実行せず、「上長」はクリアされた状態のままになります。



まとめ

この記事では、プロフィールのカスタマイズ項目から取得したユーザーID を、ユーザーマスタアプリを利用して kintone のユーザーとして取得し、ユーザー選択フィールドにセットする方法を紹介しました。


取得したユーザーは、フィールドにセットするだけでなく、そのユーザーのプロフィールや所属組織の取得、プロセス管理の作業者への指定など、さまざまな用途に利用できるので、ぜひいろいろなカスタマイズを試してみてください。


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

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