この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

CustomNotification クラス

CustomNotification は、Apex コードからカスタム通知を作成、設定、送信するために使用されます。

名前空間

メッセージ通信

使用方法

CustomNotification では、2 つの方法でカスタム通知を作成および設定できます。
  • デフォルトのコンストラクタを使用してインスタンスを作成し、さまざまな setter メソッドを使用して通知属性を設定します。
  • インスタンスを作成し、同時にパラメータ化されたコンストラクタを使用して通知パラメータを設定します。
カスタム通知を設定したら、send() をコールして通知を送信します。

通知対象

通知対象は、受信側のクライアントアプリケーションによってユーザが通知に応答するときに適切なレコードまたはページに移動するために使用されます。たとえば、レコードが更新されたとユーザが通知された場合、通知に応答すると関連レコードが開く場合があります。

通知の対象を指定する必要があります。対象は targetID 属性または targetPageRef 属性を使用して指定できます。どちらの属性も必須ではありませんが、両方の属性が省略された場合、send() で例外が発生します。通知に適した対象が存在しない場合は、targetID000000000000000AAA などのダミーの値に設定します。ダミーの値は、例外を防ぐだけでなく、クライアントアプリケーションで通知に応答したときの自動的な移動も防ぎます。

同じ通知で targetIDtargetPageRef の両方を設定できます。通知を受信したクライアントアプリケーションによって、通知に応答するときにどの対象を使用するか (存在する場合) が決まります。

Winter ’21 より前には、通知の対象レコード (targetID) しか設定できませんでした。ほとんどのクライアントアプリケーションでは通知ペイロードに targetID があることを想定しています。targetPageRef しか含まれない通知を処理するようにクライアントアプリケーションを更新できない場合は、targetID をダミーの値に設定してください。

重要

実行コンテキストおよび通知の権限

デフォルトでは、Apex コードはシステムモードで実行され、CustomNotification を使用して通知を送信するためにユーザ権限は必要ありません。ただし、たとえば開発者コンソールで匿名 Apex を実行するなど、Apex コードがユーザコンテキストで実行されている場合、「カスタム通知を送信」ユーザ権限がチェックされ、必要な権限がない場合は send() が失敗します。

次の例の Apex クラスでは、カスタム通知を受信者リストに送信するための静的メソッドが提供されます。Apex からカスタム通知を送信するには、トリガやフローなど、任意の場所からこのメソッドをコールします。

1public without sharing class CustomNotificationFromApex {
2
3    public static void notifyUsers(Set<String> recipientsIds, String targetId) {
4
5        // Get the Id for our custom notification type
6        CustomNotificationType notificationType = 
7            [SELECT Id, DeveloperName 
8             FROM CustomNotificationType 
9             WHERE DeveloperName='Custom_Notification'];
10        
11        // Create a new custom notification
12        Messaging.CustomNotification notification = new Messaging.CustomNotification();
13
14        // Set the contents for the notification
15        notification.setTitle('Apex Custom Notification');
16        notification.setBody('The notifications are coming from INSIDE the Apex!');
17
18        // Set the notification type and target
19        notification.setNotificationTypeId(notificationType.Id);
20        notification.setTargetId(targetId);
21        
22        // Actually send the notification
23        try {
24            notification.send(recipientsIds);
25        }
26        catch (Exception e) {
27            System.debug('Problem sending notification: ' + e.getMessage());
28        }
29    }
30}

この例ではハードコードされた文字列 Custom_Notification をカスタム通知種別の DeveloperName (API 参照名とも呼ばれる) として使用しています。各自のコードでカスタム通知種別を使用してください。

CustomNotification.send() でエラーが発生する場合があり、この例では最小限の処理にとどめています。本番環境での使用を計画しているコードには、より大規模なエラー処理を追加してください。

メモ

CustomNotification のコンストラクタ

CustomNotification のコンストラクタは次のとおりです。

CustomNotification()

Messaging.CustomNotification クラスの新しいインスタンスを作成します。

署名

public CustomNotification()

CustomNotification(typeId, sender, title, body, targetId, targetPageRef)

指定されたパラメータを使用して、Messaging.CustomNotification クラスの新しいインスタンスを作成します。このコンストラクタを使用する場合、さまざまな setter メソッドをコールしてカスタム通知属性を定義する必要はありません。

署名

public CustomNotification(String typeId, String sender, String title, String body, String targetId, String targetPageRef)

パラメータ

typeId
型: String
通知に使用されているカスタム通知種別の ID。
sender
型: String
通知の送信者のユーザ ID。
title
型: String
受信者に表示される通知のタイトル。最大文字数は 250 文字です。
body
型: String
受信者に表示される通知の本文。最大文字数は 750 文字です。
targetId
型: String
通知の対象レコードのレコード ID。

targetID または targetPageRef を指定する必要があります。「CustomNotification クラス」の「使用法」を参照してください。

targetPageRef
型: String
通知のナビゲーション対象の PageReference

targetID または targetPageRef を指定する必要があります。「CustomNotification クラス」の「使用法」を参照してください。

CustomNotification のメソッド

CustomNotification のメソッドは次のとおりです。

send(users)

指定されたユーザにカスタム通知を送信します。

署名

public void send(Set<String> users)

パラメータ

users
型: Set<String>
必須。受信者 ID のセット。各受信者 ID は、通知の送信先となる受信者または受信者種別に対応します。有効な受信者または受信者種別は、次のとおりです。
  • UserId — 通知はこのユーザに送信されます。ただし、このユーザが有効であることが条件です。
  • AccountId — 通知はこの取引先の取引先チー��のメンバーであるすべての有効なユーザに送信されます。

    この受信者種別は、組織の取引先チームが使用できる場合に有効です。

    メモ

  • OpportunityId — 通知はこの商談の商談チームのメンバーであるすべての有効なユーザに送信されます。

    この受信者種別は、組織のチームセリングが使用できる場合に有効です。

    メモ

  • GroupId — 通知はこのグループのメンバーであるすべての有効なユーザに送信されます。
  • QueueId — 通知はこのキューのメンバーであるすべての有効なユーザに送信されます。
値は最大 500 個の値まで組み合わせてセットにすることができます。

戻り値

型: void

「CustomNotification クラス」の「例」を参照してください。

setNotificationTypeId(id)

カスタム通知の種別を設定します。

署名

public void setNotificationTypeId(String id)

パラメータ

id
型: String
通知に使用されているカスタム通知種別の ID。
カスタム通知を送信するには通知種別が必要です。「CustomNotification クラス」の「使用法」を参照してください。

戻り値

型: void

「CustomNotification クラス」の「例」を参照してください。

setTitle(title)

カスタム通知のタイトルを設定します。

署名

public void setTitle(String title)

パラメータ

title
型: String
受信者に表示される通知のタイトル。最大文字数は 250 文字です。
カスタム通知を送信するにはタイトルが必要です。「CustomNotification クラス」の「使用法」を参照してください。

戻り値

型: void

「CustomNotification クラス」の「例」を参照してください。

setBody(body)

カスタム通知の本文を設定します。

署名

public void setBody(String body)

パラメータ

body
型: String
受信者に表示される通知の本文。最大文字数は 750 文字です。
カスタム通知を送信するには本文が必要です。「CustomNotification クラス」の「使用法」を参照してください。

戻り値

型: void

「CustomNotification クラス」の「例」を参照してください。

setSenderId(id)

カスタム通知の送信者を設定します。

署名

public void setSenderId(String id)

パラメータ

id
型: String
通知の送信者のユーザ ID。
送信者の設定は任意です。「CustomNotification クラス」の「使用法」を参照してください。

戻り値

型: void

「CustomNotification クラス」の「例」を参照してください。

setTargetId(targetId)

カスタム通知の対象レコードを設定します。

署名

public void setTargetId(String targetId)

パラメータ

targetId
型: String
通知の対象レコードのレコード ID。
カスタム通知を送信するには targetID または targetPageRef が必要です。「CustomNotification クラス」の「使用法」を参照してください。

戻り値

型: void

「CustomNotification クラス」の「例」を参照してください。

setTargetPageRef(pageRef)

カスタム通知の対象ページを設定します。

署名

public void setTargetPageRef(String pageRef)

パラメータ

pageRef
型: String
通知のナビゲーション対象の PageReference
カスタム通知を送信するには targetID または targetPageRef が必要です。「CustomNotification クラス」の「使用法」を参照してください。

戻り値

型: void

「CustomNotification クラス」の「例」を参照してください。