NotifyUtil : global
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.
| 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
| Nom | Type | Description |
|---|---|---|
| filterSMSCapableNums | Booléen | Facultatif. Marqueur indiquant si seuls les numéros compatibles avec les SMS doivent être renvoyés. Valeurs valides :
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. |
| 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 |
| nombres.défautMarqueur | Marqueur indiquant si le numéro de Notification associé est le numéro par défaut. Valeurs possibles :
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 :
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é.
| 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. |
| 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) ;.
| 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 :
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) :
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] |
| 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 |
| 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 :
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é.
| 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. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si des téléconférences actives sont associées à l’enregistrement spécifié. Valeurs possibles :
|
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é.
- Indique si le numéro de Notification existe dans la table Numéro de téléphone de Notification [notify_number].
- Indique si un groupe de notification est associé au numéro de Notification.
- Indique si le numéro de Notification est actif.
| Nom | Type | Description |
|---|---|---|
| Numéro | Chaîne | Numéro de Notification à valider. |
| 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.
| Nom | Type | Description |
|---|---|---|
| Numéro | Chaîne | Numéro de téléphone à valider. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si le numéro spécifié est un numéro de téléphone valide. Valeurs possibles :
|
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 '';
}