PreferenceDestination - com escopo, global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 5 min. de leitura
  • 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.

    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 O 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.

    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 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.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    notificação GlideRecord Opcional. Especifique uma 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.
    Tabela 8. Retorna
    Tipo Descrição
    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.

    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 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].
    Tabela 10. Retorna
    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 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 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.

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