PreferenceDestination - Inclus, global
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 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 de notification [sys_notification]. Les notifications sont envoyées via des 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.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | L’identificateur de la destination. Par exemple, une adresse e-mail, un jeton d’installation d’application push ou sys_id. |
Cet exemple imprime l’identificateur de chacune des destinations d’Abel Tuter. La sortie montre que l’identificateur de la destination d’Abel Espace de travail est l’sys_id de l’utilisateur.
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.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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 de chacune des destinations d’Abel Tuter. La sortie montre que l’identificateur de la destination d’Abel Espace de travail est l’sys_id de l’utilisateur.
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.
| 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 la notification n’est pas lisible par l’utilisateur de la destination. Si aucune notification n’est spécifiée, cette méthode vérifie si le destinataire est autorisé à recevoir des notifications. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si la destination a l’autorisation de recevoir une notification. Valeurs valides :
|
Cet exemple vérifie si chacune des destinations 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.
| 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]. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si la notification remplace les préférences utilisateur pour la destination. Valeurs valides :
|
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. 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(notification GlideRecord, 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 est ignorée, mais ce n’est pas obligatoire.
| 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 :
|
| Type | Description |
|---|---|
| Aucun |
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. 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.');
}