NotifyUtil - 전역
NotifyUtil 스크립트 포함은 서버 측 스크립트를 사용하여 알림 통화 및 SMS 메시지와 상호 작용할 때 사용할 유틸리티 메서드를 제공합니다.
이 스크립트 포함을 사용하려면 알림(com.snc.notify) 플러그인을 활성화해야 합니다.
NotifyUtil 스크립트 포함을 사용하여 다음을 수행할 수 있습니다.
- 지정된 소스 기록에서 모든 Notify 전화 번호 및 관련 Notify 정보를 얻습니다.
- 고유한 알림 전화 번호 목록을 가져옵니다.
- 지정된 소스 기록에 대해 활성 컨퍼런스 회의가 있는지 확인합니다.
- 지정된 알림 사용자와 연결된 SMS 지원 번호를 얻습니다.
- 지정된 알림 전화 번호를 확인합니다.
NotifyUtil - NotifyUtil()
NotifyUtil 클래스 개체를 인스턴스화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
이 예제에서는 NotifyUtil 개체를 인스턴스화합니다.
var notifyUtil = new NotifyUtil();
notifyUtil.getTelephonyProviers();
NotifyUtil - getListOfNotifyNumbersAndProviders(문자열 sourceTable, 문자열 sourceSysId, 문자열 notifyGroupSelectorSysId, 부울 filterSMSCapableNums)
인시던트와 같은 지정된 소스 기록에서 모든 알림 전화 번호 및 관련 알림 정보를 반환합니다.
이 정보를 사용하여 특정 소스 레코드에서 전화를 걸거나 SMS 메시지를 보낼 수 있습니다. 반환되는 정보는 알림 제공자 선택기 프레임워크의 구성을 기반으로 합니다. 자세한 내용은 알림을 참조하십시오
| 이름 | 유형 | 설명 |
|---|---|---|
| filterSMSCapableNums | 부울 | 옵션입니다. SMS를 사용할 수 있는 숫자만 반환해야 하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| notifyGroupSelectorSysId 님 | 문자열 | 옵션입니다. 알림 번호와 정보를 반환할 알림 그룹의 Sys_id입니다. 기본값: 모든 그룹 |
| sourceSysId | 문자열 | 알림 번호와 정보를 반환할 소스 기록의 Sys_id입니다. 예를 들어 인시던트 [incident] 테이블의 기록 sys_id일 수 있습니다. |
| sourceTable | 문자열 | 원하는 알림 번호 및 정보가 포함된 소스 기록이 포함된 테이블의 이름입니다. |
| 유형 | 설명 |
|---|---|
| conf제공자 | 사용 가능한 회의 제공자 목록입니다. 데이터 유형: 배열 |
| 번호 | 각각 단일 알림 번호를 설명하는 객체 목록입니다. 데이터 유형: 배열 |
| numbers.default플래그 | 연결된 알림 번호가 기본 번호인지 여부를 나타내는 플래그입니다. 가능한 값:
데이터 유형: 부울 |
| numbers.name | 번호의 이름 또는 레이블입니다. 데이터 유형: 문자열 |
| 숫자.번호 | 알림 번호입니다. 데이터 유형: 문자열 |
| numbers.shortCode | 연결된 알림 번호가 약식 코드인지 여부를 나타내는 플래그입니다. 가능한 값:
데이터 유형: 부울 |
| numbers.sysId | 알림 번호의 Sys_id입니다. 데이터 유형: 문자열 |
이 예시에서는 지정된 소스 기록에서 Notify 전화 번호 및 관련 Notify 정보를 얻는 방법을 보여줍니다.
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(문자열 userGrOrId)
지정된 알림 사용자와 연결된 SMS 지원 번호를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| userGROrId | String 또는 GlideRecord - 전역 | 사용자 [sys_user] 테이블에 있는 사용자 기록의 Sys_id 또는 SMS 지원 전화번호를 반환할 사용자의 sys_user GlideRecord입니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 사용자 SMS 지원 전화 번호입니다. 지정된 사용자를 찾을 수 없으면 null을 반환합니다. |
이 예는 연결된 GlideRecord를 사용하여 SMS 지원 전화번호를 얻는 방법을 보여줍니다.
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(배열 번호, 배열 사용자, 배열 그룹, 문자열 유형, 부울 getData)
고유한 알림 전화 번호 목록을 반환합니다.
통화에서 매개변수를 전달하지 않으면 알림 전화 번호[notify_number] 테이블 내의 모든 알림 번호가 중복되는지 확인되며, 사용 가능한 각 전화 번호는 반환된 목록에 한 번만 나타납니다. 확인할 사용자 또는 그룹 목록을 지정하거나 번호 또는 번호 유형(SMS 또는 음성) 집합을 지정하여 반환 결과를 구체화할 수 있습니다. 각 번호와 연결된 메타데이터가 고유 번호와 함께 반환되도록 요청할 수도 있습니다. 매개 변수를 사용하지 않으려면 null 을 자리 표시자로 전달하기만 하면 됩니다. 예: return nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false);.
| 이름 | 유형 | 설명 |
|---|---|---|
| getData | 부울 | 옵션입니다. 고유 전화 번호 목록과 함께 메타데이터를 반환할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| 그룹 | 배열 | 옵션입니다. 확인할 sys_id 그룹의 목록입니다. 그룹 [sys_user_group] 테이블에 있습니다. 기본값: 모든 그룹을 선택합니다. |
| 번호 | 배열 | 옵션입니다. 확인할 특정 알림 전화 번호 목록입니다. 기본값: 모든 전화번호를 확인합니다. |
| 유형 | 문자열 | 옵션입니다. 확인할 전화 번호의 유형입니다. 유효한 값(대/소문자 구분):
기본값: 모든 전화 번호 유형 선택 |
| 사용자 | 배열 | 옵션입니다. 확인할 특정 사용자의 sys_ids 목록입니다. 사용자 [sys_user] 테이블에 있습니다. 기본값: 모든 사용자 선택 |
| 이름 | 설명 |
|---|---|
| 번호 | 고유한 알림 전화 번호입니다. 데이터 유형: 배열 |
| 결과 | true로 설정된 경우에만 getData 반환됩니다. 각 고유 번호와 연결된 메타데이터입니다. 데이터 유형: 객체 |
| 결과.번호 | 고유한 알림 전화번호입니다. 데이터 유형: 문자열 |
| result.sysId | 알림 전화 번호가 포함된 기록의 Sys_id입니다. 알림 전화 번호 [notify_number] 테이블에 있습니다. 데이터 유형: 문자열 |
| 결과.유형 | 항상 사용자의 경우 "u"를 포함합니다. 데이터 유형: 문자열 |
| 결과.유효 | 알림 전화 번호가 유효한 E.164 형식인지 여부를 나타내는 플래그입니다. 가능한 값:
데이터 유형: 부울 |
이 예에서는 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(문자열 sourceRecSysId)
지정된 소스 기록에 대해 활성 컨퍼런스 회의가 있는지 여부를 확인합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 소스 RecSysId | 문자열 | 활성 컨퍼런스 회의를 확인할 기록의 Sys_id입니다. 인시던트 테이블의 기록 sys_id를 예로 들 수 있습니다. |
| 유형 | 설명 |
|---|---|
| 부울 | 지정된 기록에 활성 컨퍼런스 회의가 연결되어 있는지 여부를 나타내는 플래그입니다. 가능한 값:
|
이 예시에서는 인시던트 기록과 연결된 활성 컨퍼런스 회의가 있는 경우 정보 메시지를 표시합니다.
(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(문자열 번호)
지정된 알림 전화 번호를 확인합니다.
- 알림 번호가 알림 전화 번호 [notify_number] 테이블에 있는지 여부입니다.
- 알림 번호에 연결된 알림 그룹이 있는지 여부입니다.
- 알림 번호가 활성 상태인지 여부입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 번호 | 문자열 | 확인할 알림 번호입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
이 예에서는 알림 번호의 유효성을 검사하는 방법을 보여줍니다.
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(문자열 번호)
지정된 번호가 유효한 E.164 전화 번호인지 확인합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 번호 | 문자열 | 유효성을 검사할 전화 번호입니다. |
| 유형 | 설명 |
|---|---|
| 부울 | 지정된 번호가 유효한 전화 번호인지 여부를 나타내는 플래그입니다. 가능한 값:
|
이 예제에서는 전화 번호의 유효성을 검사하는 방법을 보여 줍니다.
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 '';
}