PreferenceDestination - escopo, global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 5 min. de leitura
  • . PreferenceDestination A API atualiza as preferências de notificação do usuário.

    Um destino de notificação é um 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 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 trabalho. 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 para qualquer usuário. As preferências de notificação do usuário controlam quais destinos receberão quais notificações.

    Use esta API com Preferências API. Antes de chamar qualquer método nesta classe, você deve chamar Preferences.getDestinations() ou Preferences.getDestinationsPorChannel() Métodos para instanciar um objeto PreferenceDestination.

    Esta classe usa sn_notification identificador de namespace.

    PreferenceDestination - getChannel()

    Retorna o canal usado para enviar notificações para o destino.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 2. Retorna
    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.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Cadeia de caracteres Identificador do destino. Por exemplo, um endereço de e-mail, token de instalação da aplicação por push ou sys_id.

    Este exemplo imprime o identificador de cada um dos destinos de Abel Tuter. A saída mostra o identificador de Abel Espaço o destino é 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 e-mail comercial.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    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 o identificador de Abel Espaço o destino é 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.

    Tabela 7. Parâmetros
    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 do destino. Se nenhuma notificação for especificada, este método verificará se o destino tem permissão para receber notificações.
    Tabela 8. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se o destino tem permissão para receber uma notificação.
    Valores possíveis:
    • Verdadeiro: O destino tem permissão para receber uma notificação.
    • Falso: O destino não tem permissão para receber uma notificação.

    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.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    notificação GlideRecord Especificar 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].
    Tabela 10. Retornos
    Tipo Descrição
    Booliano

    Sinalizador que indica se a notificação substitui as preferências do usuário para o destino.

    Valores válidos:
    • Verdadeiro: As preferências do usuário para o destino são ignoradas para esta notificação.
    • Falso: O destino recebe ou não recebe a notificação de acordo com a preferência do usuário.

    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 receberá permissão para receber a notificação. Caso contrário, nenhuma preferência será definida porque a notificação substituirá 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 para que um destino receba ou não notificações.

    . IsOverriden() o método pode ser chamado primeiro para verificar se a preferência do usuário será ignorada, mas não é necessário.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    notificação GlideRecord Opcional. Se uma notificação for especificada, a preferência do usuário será definida para que o destino receba 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 que o destino receba 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:
    • Verdadeiro: O destino tem permissão para receber uma notificação.
    • Falso: O destino não tem permissão para receber uma notificação.
    Tabela 12. Retornos
    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 receberá permissão para receber a notificação. Caso contrário, nenhuma preferência será definida porque a notificação substituirá 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.'); 
    }