2022/05/19

【Salesforce】UserInfoクラスの使い方についてご紹介

 
  

UserInfoクラスとは

ここでは「UserInfoクラス」についてご紹介していきます。 まずは「UserInfoクラス」とは何かを確認していきましょう。

概要

UserInfoクラスとは、Salesforceの開発言語Apexで現在のユーザに関する情報を取得するためのメソッドを持つクラスです。 Salesforce組織に現在ログインしているユーザの「ユーザID」「ユーザ名」「プロファイルID」などを取得することが可能です。今回はユーザ情報を取得するUserInfoクラスについて、簡単にご紹介します。

UserInfoクラスのメソッド

SalesforceのApex開発時に利用される代表的なUserInfoクラスのメソッドをいくつかご紹介します。 下記はUserInfoクラスに含まれるメソッドと取得できるユーザ情報になります。すべてのメソッドとその詳細はSalesforce公式のApex開発者ガイドをご確認ください。
UserInfoクラスのメソッド 取得できる情報
getProfileId() ユーザのプロファイルID
getUserId() ユーザID
getUserName() ユーザのログイン名
getName() ユーザの氏名
getUserRoleId() ユーザのロールID
getTimeZone() ユーザのタイムゾーン
getLanguage() ユーザの言語
Apex開発者ガイド:UserInfo クラス

UserInfoクラスの使用例

それでは、ここからは「UserInfoクラス」の使用例について確認していきましょう。 どんな場面でUserInfoクラスを利用できるのかご紹介します。

どんなときに使う?

Salesforce組織に現在ログインしているユーザの情報を取得する際にUserInfoクラスのメソッドを使用します。 例えば、UserInfoクラスの「getProfileId()」メソッドを用いることで現在ログインしているユーザに設定されているプロファイルIDを取得することができます。 プロファイルIDが取得できれば、その他のプロファイル情報が取得できますし、ログインしているユーザのプロファイル(権限)によって処理を分岐させることもできます。

UserInfoクラスを使用して現在のユーザ情報を取得してみよう

それでは、実際にUserInfoクラスのメソッドを用いて、ユーザ情報を取得してみましょう。 ここでは、先程も例にした「プロファイルID」を取得する処理をご紹介します。
String pid = UserInfo.getProfileId();
これで「pid」には現在のログインユーザの18桁のプロファイルIDが取得されます。 取得した「pid」を元に、プロファイル名を取得し、特定のプロファイル名の場合に処理を分岐してみます。

String pid = UserInfo.getProfileId();

Profile p = [SELECT Id, Name FROM Profile WHERE Id = :pid LIMIT 1];

if(p.Name == 'システム管理者'){
     // 何らかの処理
}
取得した「pid」からSOQLでプロファイル名を取得し、プロファイル名が「システム管理者」の場合のみ、分岐に入るようにしました。こうして特定のプロファイルに限定し、処理を分けることができます。

UserInfoクラスを活用してみよう!

UserInfoクラスはログインユーザによって処理を分岐させたい場合などに利用できます。 今回ご紹介した内容以外にもSalesforceでUserInfoクラスを利用できる場面がありますので、使用できるメソッドを確認し、ぜひApex開発の際に活用してください。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】