NotifySMS – Global
Die NotifySMS-Skripteinbindung stellt Methoden bereit, mit denen Sie SMS-Nachrichten (Short Message Service) von Notify-Telefonnummern an Geräte senden können, indem Sie entweder deren Telefonnummern oder einen GlideRecord mit einem Feld mit Telefonnummerninformationen verwenden.
Zur Verwendung dieser Skripteinbindung müssen Sie das Notify-Plugin (com.snc.notify) aktivieren.
NotifySMS: NotifySMS()
Erstellt eine Instanz eines NotifySMS-Objekts.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
In diesem Beispiel wird gezeigt, 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(String fromNumber, Array toNumber, String message, 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.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, von der die SMS gesendet wird. |
| toNumber | Array | Liste der Telefonnummern, die die SMS-Nachricht empfangen sollen. |
| message | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord | Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der das Generieren der SMS-Nachricht verursacht hat, mit der SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| Typ | Beschreibung |
|---|---|
| ScriptableFlowRunnerResult | ScriptableFlowRunnerResult : Bereichsbezogen Objekt. |
Das folgende Codebeispiel zeigt, wie Sie mit dieser Methode eine Massen-SMS-Nachricht senden 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(String fromNumber, Zeichenfolge toNumber, Zeichenfolgennachricht, Objekt 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.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, von der die SMS gesendet wird. |
| message | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord : Global | Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der das Generieren der SMS-Nachricht verursacht hat, mit der SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| toNumber | Zeichenfolge | Telefonnummer des Geräts, auf dem die SMS-Nachricht empfangen werden soll. |
| 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(String fromNumber, Array toNumber, Zeichenfolgennachricht, Objekt 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 zuordnen, der die Generierung der SMS-Nachricht mit der SMS-Nachricht verursacht hat.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, von der die SMS gesendet wird. |
| message | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord : Global | Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der das Generieren der SMS-Nachricht verursacht hat, mit der SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| toNumber | Array | Liste der Telefonnummern, die die SMS-Nachricht empfangen sollen. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, 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(String fromNumber, Object toGr, Zeichenfolge, Objekt sourceRecord)
Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Telefonnummer an den in einem angegebenen GlideRecord angegebenen Anwender.
Diese Methode extrahiert die Telefonnummer aus dem angegebenen GlideRecord. Darüber hinaus können Sie optional den Incident-Datensatz zuordnen, der die Generierung der SMS-Nachricht mit der SMS-Nachricht verursacht hat.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, von der die SMS gesendet wird. |
| message | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord : Global | Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der das Generieren der SMS-Nachricht verursacht hat, mit der SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| toGr | GlideRecord : Global | GlideRecord eines Datensatztyps, der ein Feld enthält, das in die Telefonnummer eines Benutzers auflöst. Der Datensatztyp muss mit dem Datensatztyp korrelieren, der von dem derzeit implementierten Telefonnummern-Resolver verwendet wird. Ein Telefonnummern-Resolver ist einfach eine Methode, die die Benutzertelefonnummer aus einem bestimmten GlideRecord-Typ abruft, z. B. aus einem Benutzerdatensatz oder einem Falldatensatz. Bei Verwendung des Standard-Resolvers entsprechen die Datensätze der Tabelle „Benutzer“ [sys_user]. Um den Typ des Datensatzes zu ändern, den der Resolver zum Abrufen der Telefonnummer verwendet, verwenden Sie die Methode NotifySMS – setRecordToNumberResolver(Object scriptIncludeInstance, String MethodName). |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Sie eine SMS-Nachricht an einen im zugehörigen Incident-Datensatz identifizierten Benutzer senden 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(String fromNumber, Object toGr, String message, Object sourceRecord)
Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Notify-Telefonnummer an Anwender in einem angegebenen GlideRecord.
Diese Methode extrahiert die Zieltelefonnummern aus dem übergebenen GlideRecord. Darüber hinaus können Sie optional den Incident-Datensatz zuordnen, der die Generierung der SMS-Nachricht mit der SMS-Nachricht verursacht hat.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, von der die SMS gesendet wird. |
| message | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord : Global | Optional. Incident-GlideRecord, der im Feld Quelle des zugehörigen SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der das Generieren der SMS-Nachricht verursacht hat, mit der SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| toGr | GlideRecord : Global | GlideRecord eines Datensatztyps, der ein Feld enthält, das in die Telefonnummer eines Benutzers auflöst. Der Datensatztyp muss mit dem Datensatztyp korrelieren, der von dem derzeit implementierten Telefonnummern-Resolver verwendet wird. Ein Telefonnummern-Resolver ist einfach eine Methode, die die Benutzertelefonnummer aus einem bestimmten GlideRecord-Typ abruft, z. B. aus einem Benutzerdatensatz oder einem Falldatensatz. Bei Verwendung des Standard-Resolvers entsprechen die Datensätze der Tabelle „Benutzer“ [sys_user]. Um den Typ des Datensatzes zu ändern, den der Resolver zum Abrufen der Telefonnummer verwendet, verwenden Sie die Methode NotifySMS – setRecordToNumberResolver(Object scriptIncludeInstance, String MethodName). |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird gezeigt, wie eine SMS-Nachricht an Benutzer innerhalb eines angegebenen Incident-Datensatzes gesendet 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);
}
}
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 wird, der in den Methoden NotifySMS.sendToUser() und NotifySMS.sendToUsers() übergeben wird.
Standardmäßig wird die NotifyUtil.getSMSNumberForUser()- Methode verwendet, um die Telefonnummer von einem auf dem Benutzer [sys_user] basierenden GlideRecord abzurufen. Verwenden Sie die Methode setRecordToNumberResolver(), wenn Sie eine anwenderdefinierte Methode erstellen müssen, um diese Informationen aus einem anderen Datensatztyp zu erhalten, z. B. aus einem Falldatensatz.
| Name | Typ | Beschreibung |
|---|---|---|
| methodName | Zeichenfolge | Name der Methode zum Abrufen der Zieltelefonnummer in einem GlideRecord |
| scriptIncludeInstance | Objekt | Instanz der Skripteinbindung, die die angegebene Nummern-Resolver-Methode enthält. |
| Typ | Beschreibung |
|---|---|
| Keine |
Dieses Beispiel zeigt, wie Sie den Telefonnummern-Resolver auf die Methode getSMSNumberForConsumer() innerhalb der Skripteinbindung csmUtils festlegen.
// 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 getSMSNumberForConsumer()benötigt wird.
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');
}
}