PreferenceDestination - Champ d’application, global

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 5 minutes de lecture
  • L’API PreferenceDestination met à jour les préférences de notification de l’utilisateur.

    Une destination de notification se trouve à un endroit où une notification peut être transmise, 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 destinations d’e-mail personnel et d’e-mail professionnel. Les types de destinations sont répertoriés dans la table 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 à partir 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 la destination. Par exemple, une adresse e-mail, un jeton d’installation d’application push ou sys_id.

    Cet exemple affiche l’identifiant de chacune des destinations d’Abel Tuter. La sortie montre que l’identificateur de la 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, par exemple 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 affiche l’identifiant de chacune des destinations d’Abel Tuter. La sortie montre que l’identificateur de la 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 le destinataire a l’autorisation de recevoir une notification.

    Tableau 7. Paramètres
    Nom Type Description
    Notification GlideRecord Facultatif. Spécifiez une notification pour vérifier si le destinataire 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 le destinataire est autorisé à recevoir des notifications.
    Tableau 8. Renvoie
    Type Description
    Booléen

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

    Valeurs valides :
    • true : la destination a l’autorisation de recevoir une notification.
    • false : la destination n’est pas autorisée à recevoir une notification.

    Cet exemple vérifie si chaque destination d’Abel Tuter est autorisée à 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écifiez 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 utilisateur pour la destination.

    Valeurs valides :
    • true : 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 reçoit l’autorisation de la recevoir. Dans le cas contraire, aucune préférence n’est définie, car la notification remplace la préférence.

    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(GlideRecord notification, booléen actif)

    Définit la préférence utilisateur pour une destination afin de recevoir ou non des notifications.

    La méthode isOverriden() peut d’abord être appelée pour vérifier si la préférence utilisateur sera ignorée, mais ce 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 pour que la destination reçoive ou ne reçoive pas 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 que la destination reçoive ou ne reçoive pas toutes les notifications.
    Actif Booléen

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

    Valeurs valides :
    • true : la destination a l’autorisation de recevoir une notification.
    • false : la destination n’est pas autorisée à 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 reçoit l’autorisation de la recevoir. Dans le cas contraire, aucune préférence n’est définie, car la notification remplace la préférence.

    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.'); 
    }