NotifyUtil : global

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 8 minutes de lecture
  • L’include de script NotifyUtil fournit des méthodes utilitaires à utiliser lors de l’interaction avec les appels Notification et les messages SMS à l’aide de scripts côté serveur.

    Pour utiliser cet include de script, vous devez activer le module d’extension Notification (com.snc.notify).

    À l’aide de l’include de script NotifyUtil , vous pouvez :

    • Obtenez tous les numéros de téléphone de Notification et les informations de notification connexes à partir d’un enregistrement source spécifié.
    • Obtenez une liste des numéros de téléphone Notify uniques.
    • Déterminez s’il existe des téléconférences actives pour l’enregistrement source spécifié.
    • Obtenez le numéro compatible SMS associé à l’utilisateur Notification spécifié.
    • Validez un numéro de téléphone Notification spécifié.

    NotifyUtil : NotifyUtil()

    Instancie un objet de classe NotifyUtil.

    Tableau 1. Paramètres
    Nom Type Description
    Néant

    Cet exemple instancie un objet NotifyUtil.

    var notifyUtil = new NotifyUtil(); 
    notifyUtil.getTelephonyProviers();

    NotifyUtil : getListOfNotifyNumbersAndProviders(String sourceTable, String sourceSysId, String notifyGroupSelectorSysId, Boolean filterSMSCapableNums)

    Renvoie tous les numéros de téléphone de Notification et les informations de Notification connexes à partir d’un enregistrement source spécifié, tel qu’un incident.

    Vous pouvez utiliser ces informations pour lancer un appel ou envoyer un SMS sur un enregistrement source particulier. Les informations renvoyées sont basées sur la configuration du cadre de travail du sélecteur de fournisseur de Notify. Pour plus d’informations, consultez Notification

    Tableau 2. Paramètres
    Nom Type Description
    filterSMSCapableNums Booléen Facultatif. Marqueur indiquant si seuls les numéros compatibles avec les SMS doivent être renvoyés.
    Valeurs valides :
    • true : renvoyer uniquement les numéros de téléphone et les informations compatibles avec les SMS.
    • false : renvoie tous les numéros de téléphone et informations de notification.

    Valeur par défaut : false

    notifyGroupSelectorSysId Chaîne Facultatif. Sys_id d’un groupe Notification pour lequel renvoyer les numéros et informations de Notification.

    Par défaut : Tous les groupes

    sourceSysId Chaîne Sys_id de l’enregistrement source pour lequel renvoyer les numéros et les informations de Notification. Par exemple, il peut s’agir de l’sys_id d’un enregistrement dans la table Incident [incident].
    sourceTable Chaîne Nom de la table qui contient l’enregistrement source qui contient les numéros et informations de Notification souhaités.
    Tableau 3. Renvoie
    Type Description
    confProviders Liste des fournisseurs de conférence disponibles.

    Type de données : tableau

    numéros Liste d’objets, chacun décrivant un numéro Notification unique.

    Type de données : tableau

    "numbers": [{
      "defaultFlag": Boolean,
      "name": "String",
      "number": "String",
      "shortCode": Boolean,
      "sysId": "String
    }]
    nombres.défautMarqueur Marqueur indiquant si le numéro de Notification associé est le numéro par défaut.
    Valeurs possibles :
    • true : nombre par défaut
    • false : ce n’est pas le nombre par défaut.

    Type de données : booléennes

    numbers.name Nom ou étiquette du numéro.

    Type de données : chaîne

    nombres.numéro Numéro de Notification.

    Type de données : chaîne

    numbers.shortCode Marqueur indiquant si le numéro de Notification associé est un code court.
    Valeurs possibles :
    • true : code court
    • false : Pas un code court

    Type de données : booléennes

    nombres.sysId Sys_id du numéro Notification.

    Type de données : chaîne

    Cet exemple montre comment obtenir les numéros de téléphone de Notification et les informations de notification connexes à partir d’un enregistrement source spécifié.

    function updateConferenceBridges(sourceTable, sourceId) {
    
      var notifyUtil = new global.NotifyUtil();
      var numbersAndProviders = notifyUtil.getListOfNotifyNumbersAndProviders(sourceTable, sourceId);
      var confBridges = [];
      if (numbersAndProviders.confProviders) {
        numbersAndProviders.confProviders.forEach(function(provider){
        confBridges.push(provider);
        });
      }
      if (numbersAndProviders.numbers) {
        numbersAndProviders.numbers.forEach(function(number){
          confBridges.push(number.name);
        });
      }
    } 

    NotifyUtil : getSMSNumberForUser(String userGrOrId)

    Renvoie le numéro compatible SMS associé à l’utilisateur Notification spécifié.

    Tableau 4. Paramètres
    Nom Type Description
    userGROrId Chaîne ou GlideRecord : global Sys_id de l’enregistrement utilisateur,

    Table : table de l’utilisateur [sys_user] ou GlideRecord sys_user de l’utilisateur pour lequel renvoyer le numéro de téléphone compatible avec les SMS.

    Tableau 5. Renvoie
    Type Description
    Chaîne Numéro de téléphone de l’utilisateur compatible avec les SMS. Renvoie null si l’utilisateur spécifié est introuvable.

    Cet exemple montre comment obtenir un numéro de téléphone compatible avec les SMS à l’aide du GlideRecord associé.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var nUtil = new NotifyUtil();
      var toNumber = nUtil.getSMSNumberForUser(sourceRecord.assigned_to.getRefRecord());
      var message = 'Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you.';
      if (fromNumber && nUtil.validateOutboundNotifyPhoneNumber(fromNumber) && toNumber && nUtil.validatePhoneNumber(toNumber)) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToNumber(fromNumber, toNumber, message, sourceRecord);
      }
    }
    
    function getFromNumber() {
      var prop = gs.getProperty('custom_property_name', '');
      if (!prop){
        return getFallbackFromNumber();
      }
      return prop;
    } 
    
    function getFallbackFromNumber() {
      var notifyNumGr = new GlideRecord("notify_number");
      notifyNumGr.addActiveQuery();
      notifyNumGr.addQuery('has_sms_out', 'yes');
      notifyNumGr.query();
      if (notifyNumGr.next()) {
        return notifyNumGr.number + '';
      }
      return '';
    } 

    NotifyUtil : getUniquePhoneNumbersForUsersAndGroups(Array numbers, Array users, Array groups, String type, Boolean getData)

    Renvoie une liste de numéros de téléphone Notification uniques.

    Si vous ne transmettez aucun paramètre dans l’appel, tous les numéros Notification de la table Numéro de téléphone de Notification [notify_number] sont vérifiés pour détecter les doublons, chaque numéro de téléphone disponible n’apparaissant qu’une seule fois dans la liste renvoyée. Vous pouvez affiner les résultats de retour en spécifiant une liste d’utilisateurs ou de groupes à vérifier, ou en spécifiant un ensemble de numéros ou de types de numéros (SMS ou vocaux). Vous pouvez également demander que les métadonnées associées à chaque numéro soient renvoyées avec les numéros uniques. Si vous ne souhaitez pas utiliser de paramètre, transmettez simplement null comme espace réservé. Par exemple : return nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false) ;.

    Tableau 6. Paramètres
    Nom Type Description
    getData (en anglais) Booléen Facultatif. Marqueur indiquant s’il faut renvoyer des métadonnées avec la liste des numéros de téléphone uniques.
    Valeurs valides :
    • true : renvoyer les métadonnées.
    • faux : ne renvoie pas de métadonnées.

    Valeur par défaut : false

    groupes Tableau Facultatif. Liste des groupes de sys_id à vérifier.

    Par défaut : vérifiez tous les groupes.

    Table : Groupe [sys_user_group]

    numéros Tableau Facultatif. Liste des numéros de téléphone Notification spécifiques à vérifier.

    Par défaut : vérifiez tous les numéros de téléphone.

    type Chaîne Facultatif. Type de numéros de téléphone à vérifier.
    Valeurs valides (sensibles à la casse) :
    • fonctions vocales
    • sms

    Par défaut : vérifier tous les types de numéros de téléphone

    utilisateurs Tableau Facultatif. Liste des sys_ids d’utilisateurs spécifiques à vérifier.

    Par défaut : vérifier tous les utilisateurs

    Table : Utilisateur [sys_user]

    Tableau 7. Renvoie
    Nom Description
    numéros Numéros de téléphone uniques de Notification.

    Type de données : tableau

    résultat Uniquement renvoyé si getData est défini sur vrai. Métadonnées associées à chaque numéro unique.
    Type de données : objet
    "result": {
      "number": "String",
      "sysId": "String",
      "type": "String",
      "valid": Boolean
    }
    nombre.résultat Numéro de téléphone unique de Notification.

    Type de données : chaîne

    résultat.sysId Sys_id de l’enregistrement qui contient le numéro de téléphone Notification.

    Type de données : chaîne

    Table : Numéro de téléphone de Notification [notify_number]

    type.résultat Contient toujours « u » pour utilisateur.

    Type de données : chaîne

    résultat.valide Marqueur indiquant si le numéro de téléphone de Notification est au format E.164 valide.
    Valeurs possibles :
    • true : format E.164 valide.
    • false : pas au format E.164.

    Type de données : booléennes

    Cet exemple montre comment demander un ensemble spécifique de numéros de téléphone Notification uniques dotés de fonctions SMS.

    var fromNumber = getFromNumber();
    var toNumbers = getRecipientNumbers();
    var message = 'This is an example SMS';
    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var notifySMS = new NotifySMS();
      notifySMS.sendToNumber(fromNumber, toNumbers, message, sourceRecord);
    }
    
    function getRecipientNumbers() {
      var userGr = new GlideRecord('sys_user');
      userGr.addActiveQuery();
      userGr.addQuery('first_name', 'STARTSWITH', 'A');
      userGr.setLimit(5);
      userGr.query(); 
      var userIds = [];
      while (userGr.next()) {
        userIds.push(userGr.getUniqueValue());
      }
      if (userIds.length > 0) {
        var nUtil = new NotifyUtil();
        return nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false);
      } 
    }
    
    function getFromNumber() {
      var prop = gs.getProperty('custom_property_name', '');
      if (!prop){
        return getFallbackFromNumber();
      } 
      return prop; 
    }
    
    function getFallbackFromNumber() {
      var notifyNumGr = new GlideRecord("notify_number");
      notifyNumGr.addActiveQuery();
      notifyNumGr.addQuery('has_sms_out', 'yes');
      notifyNumGr.query();
      if (notifyNumGr.next()) {
        return notifyNumGr.number + '';
      }
      return '';
    }

    NotifyUtil : hasActiveConferenceCalls(String sourceRecSysId)

    Détermine s’il existe des téléconférences actives pour l’enregistrement source spécifié.

    Tableau 8. Paramètres
    Nom Type Description
    sourceRecSysId Chaîne Sys_id de l’enregistrement pour vérifier les téléconférences actives. Par exemple, la sys_id d’un enregistrement dans la table Incident.
    Tableau 9. Renvoie
    Type Description
    Booléen Marqueur indiquant si des téléconférences actives sont associées à l’enregistrement spécifié.
    Valeurs possibles :
    • vrai : les téléconférences actives sont disponibles pour l’enregistrement spécifié.
    • faux : aucune téléconférence active.

    Cet exemple affiche un message d’information si des téléconférences actives sont associées à un enregistrement d’incident.

    (function executeRule(current, previous /*null when async*/) {
      var nUtil = new NotifyUtil();
      if (nUtil.hasActiveConferenceCalls(current.getUniqueValue())) {
        gs.addInfoMessage("There are active conference calls related to this Incident.");
      } 
    })(current, previous);

    NotifyUtil : validateOutboundNotifyPhoneNumber(numéro de chaîne)

    Valide un numéro de téléphone Notification spécifié.

    La méthode effectue trois types de validation :
    1. Indique si le numéro de Notification existe dans la table Numéro de téléphone de Notification [notify_number].
    2. Indique si un groupe de notification est associé au numéro de Notification.
    3. Indique si le numéro de Notification est actif.
    Si l’une de ces validations échoue, la méthode lève une exception.
    Tableau 10. Paramètres
    Nom Type Description
    Numéro Chaîne Numéro de Notification à valider.
    Tableau 11. Renvoie
    Type Description
    Néant

    Cet exemple illustre comment valider un numéro de notification.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var nUtil = new NotifyUtil();
      var toNumber = nUtil.getSMSNumberForUser(sourceRecord.assigned_to.getRefRecord());
      var message = 'Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you.';
      if (fromNumber && nUtil.validateOutboundNotifyPhoneNumber(fromNumber) && toNumber && nUtil.validatePhoneNumber(toNumber)) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToNumber(fromNumber, toNumber, message, sourceRecord);
      }
    }
    
    function getFromNumber() {
      var prop = gs.getProperty('custom_property_name', '');
      if (!prop){
        return getFallbackFromNumber();
      }
      return prop;
    } 
    
    function getFallbackFromNumber() {
      var notifyNumGr = new GlideRecord("notify_number");
      notifyNumGr.addActiveQuery();
      notifyNumGr.addQuery('has_sms_out', 'yes');
      notifyNumGr.query();
      if (notifyNumGr.next()) {
        return notifyNumGr.number + '';
      }
      return '';
    } 

    NotifyUtil : validatePhoneNumber(numéro de chaîne)

    Vérifie que le numéro spécifié est un numéro de téléphone E.164 valide.

    Tableau 12. Paramètres
    Nom Type Description
    Numéro Chaîne Numéro de téléphone à valider.
    Tableau 13. Renvoie
    Type Description
    Booléen Marqueur indiquant si le numéro spécifié est un numéro de téléphone valide.
    Valeurs possibles :
    • true : numéro de téléphone E164 valide.
    • faux : numéro de téléphone non valide.

    Cet exemple illustre comment valider un numéro de téléphone.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var nUtil = new NotifyUtil();
      var toNumber = nUtil.getSMSNumberForUser(sourceRecord.assigned_to.getRefRecord());
      var message = 'Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you.';
      if (fromNumber && nUtil.validateOutboundNotifyPhoneNumber(fromNumber) && toNumber && nUtil.validatePhoneNumber(toNumber)) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToNumber(fromNumber, toNumber, message, sourceRecord);
      }
    }
    
    function getFromNumber() {
      var prop = gs.getProperty('custom_property_name', '');
      if (!prop){
        return getFallbackFromNumber();
      }
      return prop;
    } 
    
    function getFallbackFromNumber() {
      var notifyNumGr = new GlideRecord("notify_number");
      notifyNumGr.addActiveQuery();
      notifyNumGr.addQuery('has_sms_out', 'yes');
      notifyNumGr.query();
      if (notifyNumGr.next()) {
        return notifyNumGr.number + '';
      }
      return '';
    }