PreferenceDestination - com escopo, global
A API PreferenceDestination atualiza as preferências de notificação do usuário.
Um destino de notificação está em algum lugar para o qual uma notificação pode ser entregue, como um endereço de e-mail ou número de telefone específico. Esta API é baseada em notificações da tabela Notificação [sys_notification]. As notificações são enviadas por meio de canais como e-mail ou Espaço. Um canal pode ser usado para enviar notificações para vários tipos de destinos. Por exemplo, um canal de e-mail pode enviar notificações para destinos de e-mail pessoal e e-mail comercial. Os tipos de destino são listados na tabela Tipo de destino de notificação [sys_notif_destination_type].
Um usuário pode atualizar suas próprias preferências de notificação e um administrador pode atualizar as preferências de notificação de qualquer usuário. As preferências de notificação do usuário controlam quais destinos receberão quais notificações.
Use esta API com a API Preferences. Antes de chamar qualquer método nesta classe, você deve chamar os métodos Preferences.getDestinations() ou Preferences.getDestinationsByChannel() para instanciar um objeto PreferenceDestination.
Esta classe usa o identificador de namespace sn_notification.
PreferenceDestination - getChannel()
Retorna o canal usado para enviar notificações ao destino.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| GlideRecord | GlideRecord da tabela Canal de notificação [sys_notification_channel] para o canal que é usado para enviar notificações para o destino. |
Este exemplo imprime o canal usado para enviar notificações para cada um dos destinos de 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);
}
Saída:
Channel for destination 1 is Workspace
PreferenceDestination - getDeliverTo()
Retorna o identificador do destino.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Identificador do destino. Por exemplo, um endereço de e-mail, token de instalação de aplicação por push ou sys_id. |
Este exemplo imprime o identificador de cada um dos destinos de Abel Tuter. A saída mostra que o identificador do destino Espaço de Abel é o sys_id do usuário.
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());
}
Saída:
The identifier for Abel's Workspace destination is 62826bf03710200044e0bfc8bcbe5df1
PreferenceDestination - getDestinationType()
Retorna o tipo de destino, como e-mail pessoal ou comercial.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| GlideRecord | GlideRecord da tabela Tipo de destino de notificação [sys_notif_destination_type] para o tipo de destino. |
Este exemplo imprime o identificador de cada um dos destinos de Abel Tuter. A saída mostra que o identificador do destino Espaço de Abel é o sys_id do usuário.
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());
}
Saída:
The identifier for Abel's Workspace destination is 62826bf03710200044e0bfc8bcbe5df1
PreferenceDestination - isActive (notificação GlideRecord)
Verifica se o destino tem permissão para receber uma notificação.
| Nome | Tipo | Descrição |
|---|---|---|
| notificação | GlideRecord | Opcional. Notificação para verificar se o destino tem permissão para receber essa notificação. Uma exceção será lançada se a notificação não existir ou se a notificação não for legível pelo usuário de destino. Se nenhuma notificação for especificada, este método verificará se o destino tem permissão para receber notificações. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o destino tem permissão para receber uma notificação. Valores possíveis:
|
Este exemplo verifica se cada um dos destinos de Abel Tuter tem permissão para receber a notificação de solicitação de aprovação.
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');
}
Saída:
Workspace 62826bf03710200044e0bfc8bcbe5df1 is active for this notification
PreferenceDestination - isOverriden (notificação GlideRecord)
Verifica se uma notificação substitui as preferências de um usuário para o destino.
| Nome | Tipo | Descrição |
|---|---|---|
| notificação | GlideRecord | Especifique uma notificação para verificar se ela substitui as preferências do usuário para o destino. A notificação deve ser um GlideRecord da tabela Notificação [sys_notification]. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se a notificação substitui as preferências do usuário para o destino. Valores válidos:
|
Este exemplo verifica se a notificação de solicitação de aprovação substitui as preferências do usuário para um dos destinos de Abel Tuter. Se a notificação não substituir as preferências do usuário, o destino terá permissão para receber a notificação. Caso contrário, nenhuma preferência será definida porque a notificação substitui a preferência.
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(notificação GlideRecord, booliano ativo)
Define a preferência do usuário de um destino para receber ou não notificações.
O método isOverriden() pode ser chamado primeiro para verificar se a preferência do usuário será ignorada, mas isso não é necessário.
| Nome | Tipo | Descrição |
|---|---|---|
| notificação | GlideRecord | Opcional. Se uma notificação for especificada, a preferência do usuário será definida para o destino receber ou não essa notificação. A notificação deve ser um GlideRecord da tabela Notificação [sys_notification]. Se nenhuma notificação for especificada, a preferência do usuário será definida para o destino receber ou não todas as notificações. |
| ativo | Booliano | Sinalizador que indica se o destino tem permissão para receber uma notificação. Valores válidos:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
Este exemplo verifica se a notificação de solicitação de aprovação substitui as preferências do usuário para um dos destinos de Abel Tuter. Se a notificação não substituir as preferências do usuário, o destino terá permissão para receber a notificação. Caso contrário, nenhuma preferência será definida porque a notificação substitui a preferência.
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.');
}