+ Start a Discussion
Yuta.NakagawaYuta.Nakagawa 

APEXで実行ユーザのプロファイルを条件に動作させる方法

APEXトリガで、レコードの更新または削除を実行したユーザのプロファイルを取得して、条件に指定することは可能でしょうか。
例えば、下記の形で条件指定をする時、実行ユーザのプロファイル情報を指定することが可能か知りたいです。
IF(実行ユーザのプロファイル=営業用プロファイル OR マネージャ用プロファイル , 動作A , 動作B)

APEXで実行ユーザのプロファイル情報を取得して条件に指定する方法ありましたら、ご教示ください。
よろしくお願いします。
Best Answer chosen by Yuta.Nakagawa
Taiki YoshikawaTaiki Yoshikawa
例えばSOQLクエリでプロファイル情報を取得できます。
List<Profile> profiles = [
    SELECT
         Id
        ,Name
    FROM
        Profile
    WHERE
        Name =: prmProfileNm
    LIMIT 1
];

UserInfoクラスを利用すればログインユーザ(処理を実行したユーザ)の情報が取得できます。プロファイルの場合はUserInfo.getProfileId()が使えると思います。

https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_methods_system_userinfo.htm

All Answers

Taiki YoshikawaTaiki Yoshikawa
例えばSOQLクエリでプロファイル情報を取得できます。
List<Profile> profiles = [
    SELECT
         Id
        ,Name
    FROM
        Profile
    WHERE
        Name =: prmProfileNm
    LIMIT 1
];

UserInfoクラスを利用すればログインユーザ(処理を実行したユーザ)の情報が取得できます。プロファイルの場合はUserInfo.getProfileId()が使えると思います。

https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_methods_system_userinfo.htm
This was selected as the best answer
Yuta.NakagawaYuta.Nakagawa
Taiki Yoshikawaさん
getProfileIdを利用して設定してみます。
ご回答ありがとうございました。
Taiki YoshikawaTaiki Yoshikawa
補足ですが、レコードID文字列を固定値として判定処理に組み込むとSandbox組織と本番組織で異なる可能性がありますのでご注意下さい。