PreferenceDestination : dans le champ d’application, global

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 5 minutes de lecture
  • L’API PreferenceDestination met à jour les préférences de notification de l’utilisateur.

    Une destination de notification est un endroit où une notification peut être remise, comme une adresse e-mail ou un numéro de téléphone spécifique. Cette API est basée sur les notifications de la table Notification [sys_notification]. Les notifications sont envoyées par le biais de canaux tels que l’e-mail ou Espace de travail. Un canal peut être utilisé pour envoyer des notifications à plusieurs types de destinations. Par exemple, un canal de messagerie peut envoyer des notifications à la fois à des destinataires de messagerie personnelle et professionnelle. Les types de destinations sont répertoriés dans le tableau Type de destination de notification [sys_notif_destination_type].

    Un utilisateur peut mettre à jour ses propres préférences de notification et un administrateur peut mettre à jour les préférences de notification pour n’importe quel utilisateur. Les préférences de notification de l’utilisateur contrôlent quelles destinations recevront quelles notifications.

    Utilisez cette API avec l’API Préférences . Avant d’appeler des méthodes de cette classe, vous devez appeler les méthodes Preferences.getDestinations() ou Preferences.getDestinationsByChannel() pour instancier un objet PreferenceDestination.

    Cette classe utilise l’identificateur d’espace de noms sn_notification.

    PreferenceDestination : getChannel()

    Renvoie le canal utilisé pour envoyer des notifications à la destination.

    Tableau 1. Paramètres
    Nom Type Description
    Aucun
    Tableau 2. Renvoie
    Type Description
    GlideRecord GlideRecord de la table Canal de notification [sys_notification_channel] pour le canal utilisé pour envoyer des notifications à la destination.

    Cet exemple imprime le canal utilisé pour envoyer des notifications pour chacune des destinations d’Abel Tuter.

    var recipient = new GlideRecord('sys_user');
    recipient.get('last_name', 'Tuter');
    var prefs = new sn_notification.Preferences(recipient);
    var dests = prefs.getDestinations();
    for (var i=0; i<dests.length; i++) {
         gs.print('Channel for destination '+(i+1)+' is '+dests[i].getChannel().name); 
    }

    Sortie :

    Channel for destination 1 is Workspace

    PreferenceDestination : getDeliverTo()

    Renvoie l’identificateur de la destination.

    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Chaîne Identificateur de destination. Par exemple, une adresse e-mail, un jeton d’installation d’application push ou sys_id.

    Cet exemple imprime l’identificateur pour chacune des destinations d’Abel Tuter. La sortie montre que l’identificateur de destination d’Abel Espace de travail est l’utilisateur sys_id.

    var recipient = new GlideRecord('sys_user');
    recipient.get('last_name', 'Tuter');
    var prefs = new sn_notification.Preferences(recipient);
    var dests = prefs.getDestinations();
    for (var i=0; i<dests.length; i++) {
         gs.print('The identifier for '+recipient.first_name+'\'s '+dests[i].getDestinationType().name+' destination is '+dests[i].getDeliverTo());
    }

    Sortie :

    The identifier for Abel's Workspace destination is 62826bf03710200044e0bfc8bcbe5df1

    PreferenceDestination : getDestinationType()

    Renvoie le type de destination, tel qu’e-mail personnel ou e-mail professionnel.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    GlideRecord GlideRecord de la table Type de destination de notification [sys_notif_destination_type] pour le type de destination.

    Cet exemple imprime l’identificateur pour chacune des destinations d’Abel Tuter. La sortie montre que l’identificateur de destination d’Abel Espace de travail est l’utilisateur sys_id.

    var recipient = new GlideRecord('sys_user');
    recipient.get('last_name', 'Tuter');
    var prefs = new sn_notification.Preferences(recipient);
    var dests = prefs.getDestinations();
    for (var i=0; i<dests.length; i++) {
         gs.print('The identifier for '+recipient.first_name+'\'s '+dests[i].getDestinationType().name+' destination is '+dests[i].getDeliverTo());
    }

    Sortie :

    The identifier for Abel's Workspace destination is 62826bf03710200044e0bfc8bcbe5df1

    PreferenceDestination : isActive (notification GlideRecord)

    Vérifie si la destination a l’autorisation de recevoir une notification.

    Tableau 7. Paramètres
    Nom Type Description
    Notification GlideRecord Facultatif. Notification pour vérifier si la destination a l’autorisation de recevoir cette notification. Une exception est levée si la notification n’existe pas ou si elle n’est pas lisible par l’utilisateur de destination. Si aucune notification n’est spécifiée, cette méthode vérifie si la destination est autorisée à recevoir des notifications.
    Tableau 8. Renvoie
    Type Description
    Booléen Marqueur indiquant si la destination a l’autorisation de recevoir une notification.
    Valeurs possibles :
    • vrai : la destination a l’autorisation de recevoir une notification.
    • faux : la destination n’a pas l’autorisation de recevoir une notification.

    Cet exemple vérifie si chacune des destinations d’Abel Tuter a l’autorisation de recevoir la notification de demande d’approbation.

    var recipient = new GlideRecord('sys_user');
    recipient.get('last_name', 'Tuter');
    var prefs = new sn_notification.Preferences(recipient);
    var dests = prefs.getDestinations();
    var notif = new GlideRecord('sys_notification'); 
    notif.get('name', 'Approval Request'); 
    for (var i=0; i<dests.length; i++) {
       var active = dests[i].isActive(notif) ? 'active' : 'inactive'; 
       gs.print(dests[i].getDestinationType().name + ' ' + dests[i].getDeliverTo() + ' is ' + active + ' for this notification');
    }

    Sortie :

    Workspace 62826bf03710200044e0bfc8bcbe5df1 is active for this notification

    PreferenceDestination : isOverriden(notification GlideRecord)

    Vérifie si une notification remplace les préférences d’un utilisateur pour la destination.

    Tableau 9. Paramètres
    Nom Type Description
    Notification GlideRecord Spécifier une notification pour vérifier si elle remplace les préférences utilisateur pour la destination. La notification doit être un GlideRecord de la table Notification [sys_notification].
    Tableau 10. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si la notification remplace les préférences de l’utilisateur pour la destination.

    Valeurs valides :
    • vrai : les préférences utilisateur pour la destination sont ignorées pour cette notification.
    • false : la destination reçoit ou ne reçoit pas la notification en fonction des préférences de l’utilisateur.

    Cet exemple vérifie si la notification de demande d’approbation remplace les préférences utilisateur pour l’une des destinations d’Abel Tuter. Si la notification ne remplace pas les préférences utilisateur, la destination est autorisée à recevoir la notification. Sinon, aucune préférence n’est définie, car la notification l’écrase.

    var recipient = new GlideRecord('sys_user');
    recipient.get('last_name', 'Tuter');
    var prefs = new sn_notification.Preferences(recipient);
    var dests = prefs.getDestinations();
    var notif = new GlideRecord('sys_notification'); 
    notif.get('name', 'Approval Request'); 
    var firstDest = dests[0]; 
    if (!firstDest.isOverridden(notif)) { 
         dests[0].setActive(notif, true); 
    } else { 
         gs.print('This notification overrides user preference, so don't bother to set a preference.'); 
    } 

    PreferenceDestination : setActive (notification GlideRecord, booléen actif)

    Définit la préférence utilisateur d’une destination pour recevoir ou ne pas recevoir de notifications.

    La méthode isOverriden() peut d’abord être appelée pour vérifier si la préférence utilisateur sera ignorée, mais elle n’est pas obligatoire.

    Tableau 11. Paramètres
    Nom Type Description
    Notification GlideRecord Facultatif. Si une notification est spécifiée, la préférence utilisateur est définie quant à la destination pour recevoir ou non cette notification. La notification doit être un GlideRecord de la table Notification [sys_notification]. Si aucune notification n’est spécifiée, la préférence utilisateur est définie pour la destination de réception ou de non-réception de toutes les notifications.
    actif Booléen

    Marqueur indiquant si la destination a l’autorisation de recevoir une notification.

    Valeurs valides :
    • vrai : la destination a l’autorisation de recevoir une notification.
    • faux : la destination n’a pas l’autorisation de recevoir une notification.
    Tableau 12. Renvoie
    Type Description
    Néant

    Cet exemple vérifie si la notification de demande d’approbation remplace les préférences utilisateur pour l’une des destinations d’Abel Tuter. Si la notification ne remplace pas les préférences utilisateur, la destination est autorisée à recevoir la notification. Sinon, aucune préférence n’est définie, car la notification l’écrase.

    var recipient = new GlideRecord('sys_user');
    recipient.get('last_name', 'Tuter');
    var prefs = new sn_notification.Preferences(recipient);
    var dests = prefs.getDestinations();
    var notif = new GlideRecord('sys_notification'); 
    notif.get('name', 'Approval Request'); 
    var firstDest = dests[0]; 
    if (!firstDest.isOverridden(notif)) { 
         dests[0].setActive(notif, true); 
    } else { 
         gs.print('This notification overrides user preference, so don't bother to set a preference.'); 
    }