Benachrichtigungs-SMS – Global

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 9 Minuten Lesedauer
  • Die Benachrichtigungs-SMS Die Skripteinbindung bietet Methoden, mit denen Sie SMS-Nachrichten (Short Message Service) von Notify-Telefonnummern an Geräte senden können, entweder über ihre Telefonnummern oder einen GlideRecord, der ein Feld enthält, das Telefonnummerninformationen enthält.

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

    NotifySMS: NotifySMS()

    Erstellt eine Instanz eines NotifySMS-Objekts.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine

    Dieses Beispiel zeigt, wie ein NotifySMS-Objekt instanziiert wird.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var groupId = sourceRecord.assignment_group + '';
      var toGr = getRecipientGRs(groupId);
      var message = 'An Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to your group';
      if (fromNumber && toGr) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToUsers(fromNumber, toGr, message, sourceRecord);
      } 
    }

    NotifySMS – sendBulkSMS(Zeichenfolge fromNumber, Array toNumber, Zeichenfolgennachricht, GlideRecord sourceRecord)

    Löst eine asynchrone Flow-Aktion aus, die eine SMS-Nachricht (Short Message Service) von einer angegebenen Notify-Telefonnummer an eine Liste von Telefonnummern sendet.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Von Nummer Zeichenfolge Notify-Telefonnummer, die die SMS-Nachricht sendet.
    Bis Nummer Array Liste der Telefonnummern, die die SMS-Nachricht erhalten sollen.
    Nachricht Zeichenfolge Zu sendende Nachricht.
    QuelleDatensatz GlideRecord Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Tabelle Notify-Nachricht [Notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft.

    Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt.

    Tabelle : 3. Rückgaben
    Typ Beschreibung
    ScriptableFlowRunnerResult ScriptableFlowRunnerResult – Umfang Objekt.

    Das Beispiel für den Folgecode zeigt, wie Sie diese Methode zum Senden einer Massen-SMS-Nachricht verwenden können.

    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.sendBulkSMS(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 '';
    }

    NotifySMS – sendToNumber(Zeichenfolge fromNumber, Zeichenfolge zu Nummer, Zeichenfolgennachricht, Object sourceRecord)

    Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Notify-Telefonnummer an eine angegebene Telefonnummer.

    Darüber hinaus können Sie optional den Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, der SMS-Nachricht zuordnen.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Von Nummer Zeichenfolge Notify-Telefonnummer, die die SMS-Nachricht sendet.
    Nachricht Zeichenfolge Zu sendende Nachricht.
    QuelleDatensatz GlideRecord – Global Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Tabelle Notify-Nachricht [Notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft.

    Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt.

    Bis Nummer Zeichenfolge Telefonnummer des Geräts, das die SMS-Nachricht empfangen soll.
    Tabelle : 5. Rückgaben
    Typ Beschreibung
    Keine

    Das folgende Beispiel zeigt, wie Sie eine SMS-Nachricht an eine angegebene Telefonnummer senden und den zugehörigen Incident-Datensatz mit den Nachrichteninformationen stempeln.

    var fromNumber = getFromNumber();  
    var toNumber = '+123456789';  
    var message = 'This is an example SMS';  
    var sourceRecord = new GlideRecord('incident');  
    sourceRecord.query();  
    if (sourceRecord.next()) { 
      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 ''; 
    } 

    NotifySMS – sendToNumbers(Zeichenfolge fromNumber, Array toNumber, Zeichenfolgennachricht, Object sourceRecord)

    Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Notify-Telefonnummer an eine Liste von Telefonnummern.

    Darüber hinaus können Sie optional den Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, der SMS-Nachricht zuordnen.

    Hinweis:
    Intern verwendet diese Methode NotifySMS – sendBulkSMS(Zeichenfolge fromNumber, Array toNumber, Zeichenfolgennachricht, GlideRecord sourceRecord) Methode zum Auslösen einer asynchronen Flow-Aktion.
    Tabelle : 6. Parameter
    Name Typ Beschreibung
    Von Nummer Zeichenfolge Notify-Telefonnummer, die die SMS-Nachricht sendet.
    Nachricht Zeichenfolge Zu sendende Nachricht.
    QuelleDatensatz GlideRecord – Global Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Tabelle Notify-Nachricht [Notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft.

    Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt.

    Bis Nummer Array Liste der Telefonnummern, die die SMS-Nachricht erhalten sollen.
    Tabelle : 7. Rückgaben
    Typ Beschreibung
    Keine

    Das folgende Beispiel veranschaulicht, wie Sie eine SMS-Nachricht an mehrere Telefonnummern senden und die Informationen im zugehörigen Incident-Datensatz speichern.

    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.sendToNumbers(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 '';
    } 

    NotifySMS – sendToUser(Zeichenfolge fromNumber, Objekt toGr, Zeichenfolgennachricht, Objekt sourceRecord)

    Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Telefonnummer an den in einem angegebenen GlideRecord identifizierten Anwender.

    Diese Methode extrahiert die Telefonnummer aus dem angegebenen GlideRecord. Darüber hinaus können Sie optional den Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, der SMS-Nachricht zuordnen.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    Von Nummer Zeichenfolge Notify-Telefonnummer, die die SMS-Nachricht sendet.
    Nachricht Zeichenfolge Zu sendende Nachricht.
    QuelleDatensatz GlideRecord – Global Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Tabelle Notify-Nachricht [Notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft.

    Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt.

    Zu Gr GlideRecord – Global GlideRecord eines Datensatztyps, der ein Feld enthält, das in die Telefonnummer eines Anwenders aufgelöst wird. Der Datensatztyp muss mit dem Datensatztyp korrelieren, der vom derzeit implementierten Telefonnummern-Resolver verwendet wird. Ein Telefonnummern-Resolver ist einfach eine Methode, die die Anwendertelefonnummer aus einem bestimmten GlideRecord-Typ abruft, z. B. einem Anwenderdatensatz oder einem Falldatensatz. Bei Verwendung des Standard-Resolvers entsprechen die Datensätze der Anwendertabelle [sys_user].

    Um den Typ des Datensatzes zu ändern, den der Resolver zum Abrufen der Telefonnummer verwendet, verwenden Sie NotifySMS – setRecordToNumberResolver(Object scriptIncludeInstance, String methodName) Methode.

    Tabelle : 9. Rückgaben
    Typ Beschreibung
    Keine

    Das folgende Beispiel veranschaulicht, wie Sie eine SMS-Nachricht an einen Anwender senden, der im zugehörigen Incident-Datensatz identifiziert wurde, und den zugehörigen Incident-Datensatz mit den Nachrichteninformationen stempeln.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var toGr = sourceRecord.assigned_to.getRefRecord();
      var message = 'An Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you'; 
      if (fromNumber && toGr.isValidRecord()) { 
        var notifySMS = new NotifySMS();
        notifySMS.sendToUser(fromNumber, toGr, 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 ''; 
    } 

    NotifySMS – sendToUsers(Zeichenfolge fromNumber, Objekt-to-Gr, Zeichenfolgennachricht, Object sourceRecord)

    Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Notify-Telefonnummer an Anwender, die in einem angegebenen GlideRecord gefunden wurden.

    Diese Methode extrahiert die Zieltelefonnummern aus dem übergebenen GlideRecord. Darüber hinaus können Sie optional den Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, der SMS-Nachricht zuordnen.

    Hinweis:
    Intern verwendet diese Methode NotifySMS – sendBulkSMS(Zeichenfolge fromNumber, Array toNumber, Zeichenfolgennachricht, GlideRecord sourceRecord) Methode zum Auslösen einer asynchronen Flow-Aktion.
    Tabelle : 10. Parameter
    Name Typ Beschreibung
    Von Nummer Zeichenfolge Notify-Telefonnummer, die die SMS-Nachricht sendet.
    Nachricht Zeichenfolge Zu sendende Nachricht.
    QuelleDatensatz GlideRecord – Global Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Tabelle Notify-Nachricht [Notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft.

    Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt.

    Zu Gr GlideRecord – Global GlideRecord eines Datensatztyps, der ein Feld enthält, das in die Telefonnummer eines Anwenders aufgelöst wird. Der Datensatztyp muss mit dem Datensatztyp korrelieren, der vom derzeit implementierten Telefonnummern-Resolver verwendet wird. Ein Telefonnummern-Resolver ist einfach eine Methode, die die Anwendertelefonnummer aus einem bestimmten GlideRecord-Typ abruft, z. B. einem Anwenderdatensatz oder einem Falldatensatz. Bei Verwendung des Standard-Resolvers entsprechen die Datensätze der Anwendertabelle [sys_user].

    Um den Typ des Datensatzes zu ändern, den der Resolver zum Abrufen der Telefonnummer verwendet, verwenden Sie NotifySMS – setRecordToNumberResolver(Object scriptIncludeInstance, String methodName) Methode.

    Tabelle : 11. Rückgaben
    Typ Beschreibung
    Keine

    Dieses Beispiel zeigt, wie Sie eine SMS-Nachricht an Anwender innerhalb eines angegebenen Incident-Datensatzes senden.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var groupId = sourceRecord.assignment_group + '';
      var toGr = getRecipientGRs(groupId);
      var message = 'An Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to your group';
      if (fromNumber && toGr) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToUsers(fromNumber, toGr, 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 ''; 
    }
    
    function getRecipientGRs(groupId) {
      if (!groupId)
        return;
      var userMemberGr = new GlideRecord('sys_user_grmember');
      userMemberGr.addQuery('group', groupId);
      userMemberGr.query();
      var userIds = [];
      while (userMemberGr.next()) {
        userIds.push(userMemberGr.user + ''); 
      }
      var userGr = new GlideRecord('sys_user');
      userGr.addActiveQuery();
      userGr.addQuery('sys_id', 'IN', userIds.join(','));
      userGr.query();
      return userGr; 
    } 

    NotifySMS – setRecordToNumberResolver(Object scriptIncludeInstance, String methodName)

    Legt die Methode in einer Skripteinbindung fest, die zum Abrufen der Zieltelefonnummer im GlideRecord verwendet werden soll, die in übergeben wird NotifySMS.sendToUser() Und NotifySMS.sendToUsers() Methoden.

    Standardmäßig ist NotifyUtil.getSMSNumberForUser() Die Methode wird verwendet, um die Telefonnummer von einem anwenderbasierten GlideRecord [sys_user] abzurufen. Verwenden Sie SetRecordToNumberResolver() Methode, wenn Sie eine anwenderdefinierte Methode erstellen müssen, um diese Informationen von einem anderen Datensatztyp abzurufen, z. B. einem Falldatensatz.

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    methodName Zeichenfolge Name der Methode, die zum Abrufen der Zieltelefonnummer in einem GlideRecord verwendet werden soll.
    ScriptIncludeInstance Objekt Instanz der Skripteinbindung, die die angegebene Nummernauflösungsmethode enthält.
    Tabelle : 13. Rückgaben
    Typ Beschreibung
    Keine

    Dieses Beispiel zeigt, wie Sie den Telefonnummern-Resolver auf festlegen GetSMSNumberForConsumer() Methode in der csmUtils-Skripteinbindung.

    // Script include that contains the logic to retrieve a phone number for a consumer.
    var csmUtils = new global.CSMExampleUtils();
     
    // Example Case record used as source for sending SMS
    var caseGr = new GlideRecord('sn_customerservice_case');
    caseGr.get('3af265b3d1cb5010f877cb055160faxx'); // Case sys_id
     
    var notifySms = new global.NotifySMS();
     
    // Use the getSMSNumberForConsumer method of the csmUtils script include (CSMExampleUtils) to obtain the phone number of the consumer.
    notifySms.setRecordToNumberResolver(csmUtils, 'getSMSNumberForConsumer');
     
    // Send an SMS message to a user whose telephone number is in the specified Case GlideRecord.
    var smsText = 'This is a test message for ' + caseGr.getValue('number');
    notifySms.sendToUser('+1xxxxxxxxxx', caseGr.getValue('consumer'), smsText, caseGr); // First param is the Notify phone number

    Dieses Beispiel zeigt den Code, der für die Telefon-Resolver-Methode erforderlich ist GetSMSNumberForConsumer() .

    getSMSNumberForConsumer: function(consumerGrOrId) {
      if (!consumerGrOrId)
        return;
     
      var consumerId, consumerGr;
      if (typeof consumerGrOrId === "string")
        consumerId = consumerGrOrId;
      if (typeof consumerGrOrId === "object" && consumerGrOrId["isValidRecord"]) {
        consumerGr = consumerGrOrId;
        consumerId = consumerGr.getUniqueValue();
      }
              
      if (!consumerId)
        return;
              
      if (!consumerGr) {
        consumerGr = new GlideRecord('csm_consumer');
        consumerGr.get(consumerId);
      }
              
      if (consumerGr.isValidRecord()) {
        return consumerGr.getValue('mobile_phone');
      }
    }