NotifyUtil – Global

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 7 Minuten Lesedauer
  • Die NotifyUtil -Skripteinbindung bietet Dienstprogrammmethoden für die Interaktion mit Notify-Anrufen und SMS-Nachrichten, die serverseitige Skripts verwenden.

    Zur Verwendung dieser Skripteinbindung müssen Sie das Notify-Plugin (com.snc.notify) aktivieren.

    Mit der NotifyUtil-Skripteinbindung haben Sie folgende Möglichkeiten:

    • Rufen Sie alle Notify-Telefonnummern und zugehörigen Notify-Informationen aus einem angegebenen Quelldatensatz ab.
    • Ruft eine Liste eindeutiger Notify-Telefonnummern ab.
    • Ermittelt, ob für den angegebenen Quelldatensatz aktive Telefonkonferenzen vorhanden sind.
    • Ruft die SMS-fähige Nummer ab, die dem angegebenen Notify-Anwender zugeordnet ist.
    • Validiert eine angegebene Notify-Telefonnummer.

    NotifyUtil: NotifyUtil()

    Instanziiert ein NotifyUtil-Klassenobjekt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine

    In diesem Beispiel wird ein NotifyUtil-Objekt instanziiert.

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

    NotifyUtil - getListOfNotifyNumbersAndProviders(String sourceTable, Zeichenfolge sourceSysId, Zeichenfolge notifyGroupSelectorSysId, Boolescher FilterSMSCapableNums)

    Gibt alle Notify-Telefonnummern und zugehörige Notify-Informationen aus einem angegebenen Quelldatensatz zurück, z. B. einem Incident.

    Sie können diese Informationen verwenden, um einen Anruf zu initiieren oder eine SMS-Nachricht zu einem bestimmten Quelldatensatz zu senden. Die zurückgegebenen Informationen basieren auf der Konfiguration des Notify-Anbieterauswahl-Frameworks. Weitere Informationen finden Sie unter Notify

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    filterSMSCapableNums Boolean Optional. Kennzeichnung, die angibt, ob nur SMS-fähige Nummern zurückgegeben werden sollen.
    Gültige Werte:
    • true: Es werden nur SMS-fähige Telefonnummern und Informationen zurückgegeben.
    • „falsch“: Gibt alle Notify-Telefonnummern und -informationen zurück.

    Standardwert: false

    notifyGroupSelectorSysId Zeichenfolge Optional. Sys_id einer Notify-Gruppe, für die die Notify-Nummern und -Informationen zurückgegeben werden sollen.

    Standard: Alle Gruppen

    sourceSysId Zeichenfolge Sys_id des Quelldatensatzes, für den die Notify-Nummern und -Informationen zurückgegeben werden sollen. Dies könnte beispielsweise die sys_id eines Datensatzes in der Incident-Tabelle [incident] sein.
    sourceTable Zeichenfolge Name der Tabelle mit dem Quelldatensatz, der die gewünschten Notify-Nummern und -Informationen enthält.
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    confProviders Liste der verfügbaren Konferenzanbieter.

    Datentyp: Array

    Nummern Liste von Objekten, die jeweils eine einzelne Notify-Nummer beschreiben.

    Datentyp: Array

    "numbers": [{
      "defaultFlag": Boolean,
      "name": "String",
      "number": "String",
      "shortCode": Boolean,
      "sysId": "String
    }]
    number.defaultFlag Kennzeichnung, die angibt, ob die zugeordnete Notify-Nummer die Standardnummer ist.
    Mögliche Werte:
    • true: Standardnummer
    • false: Nicht die Standardnummer

    Datentyp: Boolesch

    numbers.name Name oder Bezeichnung der Nummer.

    Datentyp: Zeichenfolge

    Nummern.Nummer Notify-Nummer.

    Datentyp: Zeichenfolge

    zahlen.shortCode Kennzeichnung, die angibt, ob die zugeordnete Notify-Nummer eine Kurzwahlnummer ist.
    Mögliche Werte:
    • wahr: Kurzwahl
    • false: Keine Kurzwahl

    Datentyp: Boolesch

    zahlen.sysId Sys_id der Notify-Nummer.

    Datentyp: Zeichenfolge

    In diesem Beispiel wird gezeigt, wie Sie die Notify-Telefonnummern und zugehörige Notify-Informationen aus einem angegebenen Quelldatensatz abrufen.

    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)

    Gibt die SMS-fähige Nummer zurück, die dem angegebenen Notify-Anwender zugeordnet ist.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    userGROrId Zeichenfolge oder GlideRecord : Global Sys_id des Benutzerdatensatzes in der Benutzertabelle [sys_user] oder GlideRecord sys_user des Benutzers, für den die SMS-fähige Telefonnummer zurückgegeben werden soll.
    Tabelle : 5. Ergebnisse
    Typ Beschreibung
    Zeichenfolge SMS-fähige Telefonnummer des Benutzers. Gibt null zurück, wenn der angegebene Anwender nicht gefunden wird.

    In diesem Beispiel wird gezeigt, wie Sie mit dem zugehörigen GlideRecord eine SMS-fähige Telefonnummer abrufen.

    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-Nummern, Array-Benutzer, Array-Gruppen, Zeichenfolgentyp, boolesches getData)

    Gibt eine Liste eindeutiger Notify-Telefonnummern zurück.

    Wenn Sie im Anruf keine Parameter übergeben, werden alle Notify-Nummern in der Notify-Telefonnummerntabelle [notify_number] auf Duplikate überprüft, wobei jede verfügbare Telefonnummer nur einmal in der zurückgegebenen Liste angezeigt wird. Sie können die zurückgegebenen Ergebnisse verfeinern, indem Sie eine Liste der zu überprüfenden Benutzer oder Gruppen oder eine Reihe von Nummern oder Nummerntypen (SMS oder Sprache) angeben. Sie können auch anfordern, dass die Metadaten, die jeder Nummer zugeordnet sind, zusammen mit dem eindeutigen zurückgegeben werden Zahlen. Wenn Sie keinen Parameter verwenden möchten, übergeben Sie einfach null als Platzhalter. Beispiel: zurückgegeben nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false);.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    getData Boolean Optional. Kennzeichnung, die angibt, ob Metadaten zusammen mit der Liste der eindeutigen Telefonnummern zurückgegeben werden sollen.
    Gültige Werte:
    • „wahr“: Gibt Metadaten zurück.
    • „falsch“: Keine Metadaten zurückgeben.

    Standardwert: false

    groups Array Optional. Liste der zu überprüfenden sys_id-Gruppen. Befindet sich in der Tabelle „Gruppe“ [sys_user_group].

    Standard: Alle Gruppen aktivieren.

    Nummern Array Optional. Liste der spezifischen Notify-Telefonnummern, die überprüft werden sollen.

    Standard: Alle Telefonnummern überprüfen.

    type Zeichenfolge Optional. Typ der zu überprüfenden Telefonnummern.
    Gültige Werte (Groß-/Kleinschreibung beachten):
    • voice
    • sms

    Standard: Alle Telefonnummerntypen aktivieren

    users Array Optional. Liste der sys_ids bestimmter Anwender, die überprüft werden sollen. Befindet sich in der Tabelle „Benutzer“ [sys_user].

    Standard: Alle Anwender aktivieren

    Tabelle : 7. Ergebnisse
    Name Beschreibung
    Nummern Eindeutige Notify-Telefonnummern.

    Datentyp: Array

    Ergebnis Wird nur zurückgegeben, wenn getData auf „wahr“ festgelegt ist. Metadaten, die jeder eindeutigen Nummer zugeordnet sind.
    Datentyp: Objekt
    "result": {
      "number": "String",
      "sysId": "String",
      "type": "String",
      "valid": Boolean
    }
    Ergebnis.Nummer Eindeutige Notify-Telefonnummer.

    Datentyp: Zeichenfolge

    result.sysId Sys_id des Datensatzes, der die Notify-Telefonnummer enthält. Befindet sich in der Tabelle „Notify-Telefonnummer“ [notify_number].

    Datentyp: Zeichenfolge

    result.type Enthält immer „u“ für Anwender.

    Datentyp: Zeichenfolge

    Ergebnis.gültig Kennzeichnung, die angibt, ob die Notify-Telefonnummer ein gültiges E.164-Format aufweist.
    Mögliche Werte:
    • true: Gültiges E.164-Format.
    • false: Nicht im E.164-Format.

    Datentyp: Boolesch

    In diesem Beispiel wird gezeigt, wie Sie einen bestimmten Satz eindeutiger Notify-Telefonnummern mit SMS-Funktionen anfordern.

    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)

    Bestimmt, ob für den angegebenen Quelldatensatz aktive Telefonkonferenzen vorhanden sind.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    sourceRecSysId Zeichenfolge Sys_id des Datensatzes zur Überprüfung auf aktive Telefonkonferenzen. Zum Beispiel die sys_id eines Datensatzes in der Incident-Tabelle.
    Tabelle : 9. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob dem angegebenen Datensatz aktive Telefonkonferenzen zugeordnet sind.
    Mögliche Werte:
    • „wahr“: Für den angegebenen Datensatz sind aktive Telefonkonferenzen verfügbar.
    • false: Keine aktiven Telefonkonferenzen.

    In diesem Beispiel wird eine Informationsnachricht angezeigt, wenn einem Incident-Datensatz aktive Telefonkonferenzen zugeordnet sind.

    (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 – validOutboundNotifyPhoneNumber(Zeichenfolgennummer)

    Validiert eine angegebene Notify-Telefonnummer.

    Die Methode führt drei Arten der Validierung durch:
    1. Gibt an, ob die Notify-Nummer in der Notify-Telefonnummertabelle [notify_number] vorhanden ist.
    2. Gibt an, ob der Notify-Nummer eine Notify-Gruppe zugeordnet ist.
    3. Gibt an, ob die Notify-Nummer aktiv ist.
    Wenn eine dieser Validierungen fehlschlägt, löst die Methode eine Ausnahme aus.
    Tabelle : 10. Parameter
    Name Typ Beschreibung
    Nummer Zeichenfolge Zu validierende Notify-Nummer.
    Tabelle : 11. Ergebnisse
    Typ Beschreibung
    Keine

    In diesem Beispiel wird veranschaulicht, wie eine Notify-Nummer validiert wird.

    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 – validPhoneNumber (Zeichenfolgennummer)

    Überprüft, ob die angegebene Nummer eine gültige E.164-Telefonnummer ist.

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    Nummer Zeichenfolge Zu validierende Telefonnummer.
    Tabelle : 13. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die angegebene Nummer eine gültige Telefonnummer ist.
    Mögliche Werte:
    • true: Gültige E164-Telefonnummer.
    • „false“: Ungültige Telefonnummer.

    In diesem Beispiel wird veranschaulicht, wie eine Telefonnummer validiert wird.

    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 '';
    }