NotifySMS - グローバル
NotifySMS スクリプトインクルードは、電話番号または電話番号情報を含むフィールドを持つ GlideRecord のいずれかを使用して、通知電話番号からデバイスにショートメッセージサービス (SMS) メッセージを送信できるようにするメソッドを提供します。
このスクリプトインクルードを使用するには、通知 (com.snc.notify) プラグインを有効にする必要があります。
NotifySMS - NotifySMS()
NotifySMS オブジェクトのインスタンスを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
この例では、NotifySMS オブジェクトをインスタンス化する方法を示します。
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)
指定された通知電話番号から電話番号のリストにショートメッセージサービス (SMS) メッセージを送信する非同期フローアクションをトリガーします。
| 名前 | タイプ | 説明 |
|---|---|---|
| fromNumber | 文字列 | SMS メッセージを送信する電話番号を通知します。 |
| toNumber | アレイ | SMS メッセージを受信する電話番号のリスト。 |
| メッセージ | 文字列 | 送信するメッセージ。 |
| sourceRecord | GlideRecord | オプション。Notify メッセージ [notify_message] テーブル内の関連付けられた SMS メッセージレコードの [Source] フィールドに保存するインシデントの GlideRecord。これにより、SMS メッセージが生成される原因となったインシデントレコードがその SMS メッセージにリンクされます。 デフォルト:なし。このパラメーターが渡されない場合、この情報は追跡されません。 |
| タイプ | 説明 |
|---|---|
| ScriptableFlowRunnerResult | ScriptableFlowRunnerResult - スコープ指定 オブジェクト。 |
次のコード例は、このメソッドを使用して一括 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.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(文字列 fromNumber, 文字列 toNumber, 文字列 message, オブジェクト sourceRecord)
指定された Notify 電話番号から指定された電話番号に、ショートメッセージサービス (SMS) のメッセージを送信します。
さらに、必要に応じて、SMS メッセージが生成される原因となったインシデントレコードを SMS メッセージに関連付けることもできます。
| 名前 | タイプ | 説明 |
|---|---|---|
| fromNumber | 文字列 | SMS メッセージを送信する電話番号を通知します。 |
| message | 文字列 | 送信するメッセージ。 |
| sourceRecord | GlideRecord - グローバル | オプション。Notify メッセージ [notify_message] テーブル内の関連付けられた SMS メッセージレコードの [Source] フィールドに保存するインシデントの GlideRecord。これにより、SMS メッセージが生成される原因となったインシデントレコードがその SMS メッセージにリンクされます。 デフォルト:なし。このパラメーターが渡されない場合、この情報は追跡されません。 |
| toNumber | 文字列 | SMS メッセージを受信するデバイスの電話番号。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、指定された電話番号に SMS メッセージを送信し、関連するインシデントレコードにメッセージ情報をスタンプする方法を示しています。
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(文字列 fromNumber, アレイ toNumber, 文字列 message, オブジェクト sourceRecord)
指定された Notify 電話番号から電話番号のリストに、ショートメッセージサービス (SMS) のメッセージを送信します。
さらに、必要に応じて、SMS メッセージが生成される原因となったインシデントレコードを SMS メッセージに関連付けることもできます。
| 名前 | タイプ | 説明 |
|---|---|---|
| fromNumber | 文字列 | SMS メッセージを送信する電話番号を通知します。 |
| message | 文字列 | 送信するメッセージ。 |
| sourceRecord | GlideRecord - グローバル | オプション。Notify メッセージ [notify_message] テーブル内の関連付けられた SMS メッセージレコードの [Source] フィールドに保存するインシデントの GlideRecord。これにより、SMS メッセージが生成される原因となったインシデントレコードがその SMS メッセージにリンクされます。 デフォルト:なし。このパラメーターが渡されない場合、この情報は追跡されません。 |
| toNumber | アレイ | SMS メッセージを受信する電話番号のリスト。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、複数の電話番号に 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.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(文字列 fromNumber, オブジェクト toGr, 文字列 message, オブジェクト sourceRecord)
指定された電話番号から、指定された GlideRecord で識別されたユーザーに、ショートメッセージサービス (SMS) のメッセージを送信します。
このメソッドは、指定された GlideRecord から電話番号を抽出します。さらに、必要に応じて、SMS メッセージが生成される原因となったインシデントレコードを SMS メッセージに関連付けることもできます。
| 名前 | タイプ | 説明 |
|---|---|---|
| fromNumber | 文字列 | SMS メッセージを送信する電話番号を通知します。 |
| message | 文字列 | 送信するメッセージ。 |
| sourceRecord | GlideRecord - グローバル | オプション。Notify メッセージ [notify_message] テーブル内の関連付けられた SMS メッセージレコードの [Source] フィールドに保存するインシデントの GlideRecord。これにより、SMS メッセージが生成される原因となったインシデントレコードがその SMS メッセージにリンクされます。 デフォルト:なし。このパラメーターが渡されない場合、この情報は追跡されません。 |
| toGr | GlideRecord - グローバル | ユーザーの電話番号に解決されるフィールドを含むレコードタイプの GlideRecord。このレコードタイプは、現在実装されている電話番号リゾルバーで使用されているレコードタイプと関連付ける必要があります。電話番号リゾルバーは、ユーザーレコードやケースレコードなどの特定のタイプの GlideRecord からユーザーの電話番号を取得するメソッドにすぎません。デフォルトのリゾルバーを使用する場合、レコードはユーザー [sys_user] テーブルに対応します。 リゾルバーが電話番号を取得するために使用するレコードのタイプを変更するには、NotifySMS - setRecordToNumberResolver(オブジェクト scriptIncludeInstance, 文字列 methodName) メソッドを使用します。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、関連するインシデントレコード内で識別されたユーザーに SMS メッセージを送信し、関連するインシデントレコードにメッセージ情報をスタンプする方法を示しています。
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(文字列 fromNumber, オブジェクト toGr, 文字列 message, オブジェクト sourceRecord)
指定された Notify 電話番号から、指定された GlideRecord で見つかったユーザーに、ショートメッセージサービス (SMS) のメッセージを送信します。
このメソッドは、渡された GlideRecord から発信先の電話番号を抽出します。さらに、必要に応じて、SMS メッセージが生成される原因となったインシデントレコードを SMS メッセージに関連付けることもできます。
| 名前 | タイプ | 説明 |
|---|---|---|
| fromNumber | 文字列 | SMS メッセージを送信する電話番号を通知します。 |
| message | 文字列 | 送信するメッセージ。 |
| sourceRecord | GlideRecord - グローバル | オプション。Notify メッセージ [notify_message] テーブル内の関連付けられた SMS メッセージレコードの [Source] フィールドに保存するインシデントの GlideRecord。これにより、SMS メッセージが生成される原因となったインシデントレコードがその SMS メッセージにリンクされます。 デフォルト:なし。このパラメーターが渡されない場合、この情報は追跡されません。 |
| toGr | GlideRecord - グローバル | ユーザーの電話番号に解決されるフィールドを含むレコードタイプの GlideRecord。このレコードタイプは、現在実装されている電話番号リゾルバーで使用されているレコードタイプと関連付ける必要があります。電話番号リゾルバーは、ユーザーレコードやケースレコードなどの特定のタイプの GlideRecord からユーザーの電話番号を取得するメソッドにすぎません。デフォルトのリゾルバーを使用する場合、レコードはユーザー [sys_user] テーブルに対応します。 リゾルバーが電話番号を取得するために使用するレコードのタイプを変更するには、NotifySMS - setRecordToNumberResolver(オブジェクト scriptIncludeInstance, 文字列 methodName) メソッドを使用します。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、指定されたインシデントレコード内のユーザーに SMS メッセージを送信する方法を示します。
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(オブジェクト scriptIncludeInstance, 文字列 methodName)
NotifySMS.sendToUser() および NotifySMS.sendToUsers() メソッドで渡される GlideRecord 内のターゲット電話番号を取得するために使用する、スクリプトインクルード内のメソッドを設定します。
デフォルトでは、NotifyUtil.getSMSNumberForUser() メソッドを使用して、ユーザー [sys_user] ベースの GlideRecord から電話番号を取得します。ケースレコードなどの別のレコードタイプからこの情報を取得するためのカスタムメソッドを作成する必要がある場合は、setRecordToNumberResolver() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| methodName | 文字列 | GlideRecord 内のターゲット電話番号を取得するために使用するメソッドの名前。 |
| scriptIncludeInstance | オブジェクト | 指定された番号のリゾルバーメソッドを含むスクリプトインクルードのインスタンス。 |
| タイプ | 説明 |
|---|---|
| なし |
この例は、csmUtils スクリプトインクルード内の getSMSNumberForConsumer() メソッドに電話番号リゾルバーを設定する方法を示しています。
// 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
この例は、電話リゾルバーメソッド 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');
}
}