Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

PermissionSetLicenseAssign オブジェクトをクエリしてユーザー ID を持つ権限セットライセンスのマップを取得する方法

公開日: Oct 13, 2022
説明

この記事では、ユーザー ID とそれらに割り当てられた権限セットライセンス名を取得する方法を紹介します。

SOQL クエリを実行する方法、Apex のサンプルコードを使用してクエリの結果を含む CSV ファイルを自分にメール送信する方法などがあります。 

解決策


オプション 1: SOQL クエリを実行する

このクエリを Developer Console で実行すると、ユーザー ID のリストと、それらに割り当てられている権限セットライセンスを確認できます。

  • 開発者コンソール を開きます。
  • Developer Console を Salesforce Classic から開く手順は次のとおりです。
    • 自分の名前をクリック
    • [開発者コンソール] をクリック
  • Developer Console を Lightning Experience から開く手順は次のとおりです。
    • ギアアイコン | [設定] に移動
    • [開発者コンソール] をクリック
  • 開発者コンソールにて [Query Editor(クエリエディタ)] タブをクリックします。
  • 以下のクエリを入力ボックスに貼り付けます。
    • SELECT PermissionSetLicense.MasterLabel, PermissionSetLicenseAssign.AssigneeId 
      FROM PermissionSetLicenseAssign
  • 左下隅の [Execute(実行)] ボタンをクリックします。


オプション 2: [Execute Anonymous Window (匿名実行ウィンドウ)] サンプルコードを使用して、オプション 1 のクエリの結果を含む CSV ファイルをメールで送信します。 

このサンプルコードを Developer Console の [Execute Anonymous Window (匿名実行ウィンドウ)] で使用して、リストをメールで送信することができます。
注1:組織で権限セットライセンスが使用されていない場合、以下のサンプルコードはエラーします
注2:組織のメールアドレスが設定されていないなど場合にはメールは送信されません

Developer Console から [Debug (デバッグ)] タブに移動して、[Open Execute Anonymous Window (匿名実行ウィンドウを開く)] オプションを選択します。

  • 以下のコードの 1 行目のメールアドレスを自分のメールアドレスに更新します。
    • string emailAddress='YOUR EMAIL ADDRESS GOES HERE';
      string myRow;
      string myCSVFile = '';
      
      list<permissionsetlicenseassign> response = [SELECT PermissionSetLicense.MasterLabel,AssigneeId,PermissionSetLicense.ID FROM PermissionSetLicenseAssign];
      
      for (permissionsetlicenseassign result:response) {
        myRow = result.permissionsetlicense.masterlabel + ',' + result.AssigneeId;
        system.debug (myRow);
        myCSVFile += myRow + '\n';
      }
      Messaging.EmailFileAttachment csvAttachment = new Messaging.EmailFileAttachment();
      Blob myBlob = blob.valueOf(myCSVFile);
      String myName = 'UserID and Wave Permission Set License List.csv';
      csvAttachment.setFileName(myName);
      csvAttachment.setBody(myBlob);
      Messaging.SingleEmailMessage myEmail = new Messaging.SingleEmailMessage();
      String[] toAddresses = new String[]{emailAddress};
      String subject = 'UserID and Wave Permission Set License List CSV';
      myEmail.setSubject(subject);
      myEmail.setToAddresses(toAddresses);
      myEmail.setPlainTextBody('UserID and Wave Permission Set License List CSV');
      myEmail.setFileAttachments(new Messaging.EmailFileAttachment[]{csvAttachment});
      Messaging.SendEmailResult[] r = Messaging.sendEmail(new Messaging.SingleEmailMessage[]{myEmail});
  • 匿名実行ウィンドウの右下の [Execute(実行)]をクリックします。
  • メールを確認します。
  • ファイルをダウンロードします。


関連情報:
権限セットのライセンスを持つユーザーの検索

ナレッジ記事番号

000383181

 
読み込み中
Salesforce Help | Article