NotifyUtil : global
L’API NotifyUtil fournit des méthodes utilitaires à utiliser lors de l’interaction avec les appels Notify et les messages SMS à l’aide de scripts côté serveur.
Pour utiliser cette API, vous devez activer le module d’extension Notify (com.snc.notify).
À l’aide de l’API NotifyUtil , vous pouvez :
- Obtenez tous les numéros de téléphone Notify et les informations Notify connexes à partir d’un enregistrement source spécifié.
- Obtenez une liste de numéros de téléphone Notify uniques.
- Déterminez si des téléconférences sont actives pour l’enregistrement source spécifié.
- Obtenir le numéro compatible SMS associé à l’utilisateur Notification spécifié.
- Validez un numéro de téléphone Notify 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 Notify et les informations Notify connexes d’un enregistrement source spécifié, comme un incident.
Vous pouvez utiliser ces informations pour lancer un appel ou envoyer un message 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 Notify. Pour plus d’informations, consultez Notifier
| 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 Notify pour lequel renvoyer les numéros et les 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 Notify. Par exemple, il peut s’agir du 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 les informations Notify souhaités. |
| Type | Description |
|---|---|
| Fournisseurs de conf | Liste des fournisseurs de conférences disponibles. Type de données : tableau |
| numéros | Liste d’objets, chacun décrivant un seul numéro Notify. Type de données : tableau |
| numbers.defaultFlag | Marqueur indiquant si le numéro Notify 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 |
| nombre.numéro | Numéro de Notification. Type de données : chaîne |
| numbers.shortCode | Marqueur indiquant si le numéro Notify associé est un code court. Valeurs possibles :
Type de données : booléennes |
| numbers.sysId | Sys_id du numéro Notify. Type de données : chaîne |
Cet exemple montre comment obtenir les numéros de téléphone Notify et les informations Notify 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 | String ou GlideRecord : global | Sys_id de l’enregistrement utilisateur, situé dans la table Utilisateur [sys_user], ou le GlideRecord sys_user de l’utilisateur pour lequel renvoyer le numéro de téléphone compatible SMS. |
| Type | Description |
|---|---|
| Chaîne | Numéro de téléphone de l’utilisateur compatible SMS. Renvoie null si l’utilisateur spécifié n’est pas trouvé. |
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 Notify uniques.
Si vous ne transmettez aucun paramètre à l’appel, tous les numéros Notify de la table Numéro de téléphone Notify [notify_number] sont vérifiés pour 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 renvoi 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 messages 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, passez simplement null en tant qu’espace réservé. Par exemple : return nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false) ;.
| Nom | Type | Description |
|---|---|---|
| Getdata | Booléen | Facultatif. Marqueur indiquant si les métadonnées doivent être renvoyé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. Situé dans la table Groupe [sys_user_group]. Par défaut : cochez tous les groupes. |
| numéros | Tableau | Facultatif. Liste des numéros de téléphone Notify 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érifiez tous les types de numéros de téléphone |
| utilisateurs | Tableau | Facultatif. Liste des sys_ids d’utilisateurs spécifiques à vérifier. Situé dans la table Utilisateur [sys_user]. Par défaut : cocher tous les utilisateurs |
| Nom | Description |
|---|---|
| numéros | Numéros de téléphone uniques de Notify. Type de données : tableau |
| résultat | Uniquement renvoyé si getData la valeur est 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 Notify. Type de données : chaîne |
| result.sysId | Sys_id de l’enregistrement qui contient le numéro de téléphone de Notify. Situé dans la table Numéro de téléphone de Notification [notify_number]. Type de données : chaîne |
| 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 Notify 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 Notify uniques dotés d’options 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 si les téléconférences sont actives. Par exemple, la sys_id d’un enregistrement dans la table Incident. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’enregistrement spécifié a associé des téléconférences actives. 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 Notify spécifié.
- Indique si le numéro Notify existe dans la table Numéro de téléphone Notify [notify_number].
- Indique si un groupe Notify est associé au numéro Notify.
- Indique si le numéro Notify 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 '';
}