---
sourceDocument: Xanadu API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ko-KR

ft:publication_title :

    - Xanadu API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NotifyUtil - 전역

# NotifyUtil - 전역 {#ariaid-title1}

* 릴리스 버전: Xanadu
* 
* 업데이트 날짜 2024년 08월 01일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 16분

NotifyUtil 스크립트 포함은 서버 측 스크립트를 사용하여 알림 통화 및 SMS 메시지와 상호 작용할 때 사용할 유틸리티 메서드를 제공합니다.
이 스크립트 포함을 사용하려면 알림(com.snc.notify) 플러그인을 활성화해야 합니다.

NotifyUtil 스크립트 포함을 사용하여 다음을 수행할 수 있습니다.  
* 지정된 소스 기록에서 모든 Notify 전화 번호 및 관련 Notify 정보를 얻습니다.
* 고유한 알림 전화 번호 목록을 가져옵니다.
* 지정된 소스 기록에 대해 활성 컨퍼런스 회의가 있는지 확인합니다.
* 지정된 알림 사용자와 연결된 SMS 지원 번호를 얻습니다.
* 지정된 알림 전화 번호를 확인합니다.
{#NotifyUtilAPI__ul_qvb_kqy_4hb}

## NotifyUtil - NotifyUtil() {#ariaid-title2}

NotifyUtil 클래스 개체를 인스턴스화합니다.
{#NU-NotifyUtil__table_e31_kmm_kmb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 없음 |   |   |
[표 1. 매개변수]

{#NU-NotifyUtil__table_e31_kmm_kmb}  
이 예제에서는 NotifyUtil 개체를 인스턴스화합니다.

    var notifyUtil = new NotifyUtil(); 
    notifyUtil.getTelephonyProviers();

## NotifyUtil - getListOfNotifyNumbersAndProviders(문자열 sourceTable, 문자열 sourceSysId, 문자열 notifyGroupSelectorSysId, 부울 filterSMSCapableNums) {#ariaid-title3}

인시던트와 같은 지정된 소스 기록에서 모든 알림 전화 번호 및 관련 알림 정보를 반환합니다.
이 정보를 사용하여 특정 소스 레코드에서 전화를 걸거나 SMS 메시지를 보낼 수 있습니다. 반환되는 정보는 알림 제공자 선택기 프레임워크의 구성을 기반으로 합니다. 자세한 내용은 [알림을](https://www.servicenow.com/docs/access?context=notify-landing-page&version=xanadu&pubname=xanadu-servicenow-platform&ft:locale=en-US) 참조하십시오
{#NU-getListNotifyNumsProvids_S_S_S_B__table_pmg_pyt_kmb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| filterSMSCapableNums | 부울 | 옵션입니다. SMS를 사용할 수 있는 숫자만 반환해야 하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: SMS가 가능한 전화 번호와 정보만 반환합니다. * 아니오: 모든 알림 전화 번호 및 정보를 반환합니다. 기본값: false |
| notifyGroupSelectorSysId 님 | 문자열 | 옵션입니다. 알림 번호와 정보를 반환할 알림 그룹의 Sys_id입니다. 기본값: 모든 그룹 |
| sourceSysId | 문자열 | 알림 번호와 정보를 반환할 소스 기록의 Sys_id입니다. 예를 들어 인시던트 \[incident\] 테이블의 기록 sys_id일 수 있습니다. |
| sourceTable | 문자열 | 원하는 알림 번호 및 정보가 포함된 소스 기록이 포함된 테이블의 이름입니다. |
[표 2. 매개변수]

{#NU-getListNotifyNumsProvids_S_S_S_B__table_pmg_pyt_kmb} {#NU-getListNotifyNumsProvids_S_S_S_B__table_qmg_pyt_kmb__entry__2}

| 유형 | 설명 |
|-|-|
| conf제공자 | 사용 가능한 회의 제공자 목록입니다. 데이터 유형: 배열 |
| 번호 | 각각 단일 알림 번호를 설명하는 객체 목록입니다. 데이터 유형: 배열 "numbers": [{ "defaultFlag": Boolean, "name": "String", "number": "String", "shortCode": Boolean, "sysId": "String }] |
| numbers.default플래그 | 연결된 알림 번호가 기본 번호인지 여부를 나타내는 플래그입니다. 가능한 값: * true: 기본 숫자 * false: 기본 숫자가 아님 데이터 유형: 부울 |
| numbers.name | 번호의 이름 또는 레이블입니다. 데이터 유형: 문자열 |
| 숫자.번호 | 알림 번호입니다. 데이터 유형: 문자열 |
| numbers.shortCode | 연결된 알림 번호가 약식 코드인지 여부를 나타내는 플래그입니다. 가능한 값: * true: 짧은 코드 * false: 짧은 코드가 아님 데이터 유형: 부울 |
| numbers.sysId | 알림 번호의 Sys_id입니다. 데이터 유형: 문자열 |
[표 3. 반환]

{#NU-getListNotifyNumsProvids_S_S_S_B__table_qmg_pyt_kmb}  
이 예시에서는 지정된 소스 기록에서 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) {#ariaid-title4}

지정된 알림 사용자와 연결된 SMS 지원 번호를 반환합니다.
{#NU-getSMSNumberForUser_S__table_dkn_1wt_kmb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| userGROrId | String 또는 [GlideRecord - 전역](https://servicenow-prod.fluidtopics.net/lNwRzrLB1v3XhTKBDuWLmA#c_GlideRecordAPI "GlideRecord API는 데이터베이스 작업에 사용됩니다.") | 사용자 \[sys_user\] 테이블에 있는 사용자 기록의 Sys_id 또는 SMS 지원 전화번호를 반환할 사용자의 sys_user GlideRecord입니다. |
[표 4. 매개변수]

{#NU-getSMSNumberForUser_S__table_dkn_1wt_kmb} {#NU-getSMSNumberForUser_S__table_ekn_1wt_kmb__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | 사용자 SMS 지원 전화 번호입니다. 지정된 사용자를 찾을 수 없으면 null을 반환합니다. |
[표 5. 반환]

{#NU-getSMSNumberForUser_S__table_ekn_1wt_kmb}  
이 예는 연결된 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) {#ariaid-title5}

고유한 알림 전화 번호 목록을 반환합니다.
통화에서 매개변수를 전달하지 않으면 알림 전화 번호\[notify_number\] 테이블 내의 모든 알림 번호가 중복되는지 확인되며, 사용 가능한 각 전화 번호는 반환된 목록에 한 번만 나타납니다. 확인할 사용자 또는 그룹 목록을 지정하거나 번호 또는 번호 유형(SMS 또는 음성) 집합을 지정하여 반환 결과를 구체화할 수 있습니다. 각 번호와 연결된 메타데이터가 고유 번호와 함께 반환되도록 요청할 수도 있습니다. 매개 변수를 사용하지 않으려면 `null` 을 자리 표시자로 전달하기만 하면 됩니다. 예: `return nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false);`.
{#NU-getUniqPhNumUsersGrps_S_S_S_S_S__table_kxw_hs5_kmb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| getData | 부울 | 옵션입니다. 고유 전화 번호 목록과 함께 메타데이터를 반환할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 메타데이터를 반환합니다. * false: 메타데이터를 반환하지 않습니다. {#NU-getUniqPhNumUsersGrps_S_S_S_S_S__ul_cjn_1jy_slb} 기본값: false |
| 그룹 | 배열 | 옵션입니다. 확인할 sys_id 그룹의 목록입니다. 그룹 \[sys_user_group\] 테이블에 있습니다. 기본값: 모든 그룹을 선택합니다. |
| 번호 | 배열 | 옵션입니다. 확인할 특정 알림 전화 번호 목록입니다. 기본값: 모든 전화번호를 확인합니다. |
| 유형 | 문자열 | 옵션입니다. 확인할 전화 번호의 유형입니다. 유효한 값(대/소문자 구분): * voice * sms {#NU-getUniqPhNumUsersGrps_S_S_S_S_S__ul_epz_3t1_lmb} 기본값: 모든 전화 번호 유형 선택 |
| 사용자 | 배열 | 옵션입니다. 확인할 특정 사용자의 sys_ids 목록입니다. 사용자 \[sys_user\] 테이블에 있습니다. 기본값: 모든 사용자 선택 |
[표 6. 매개변수]

{#NU-getUniqPhNumUsersGrps_S_S_S_S_S__table_kxw_hs5_kmb} {#NU-getUniqPhNumUsersGrps_S_S_S_S_S__table_lxw_hs5_kmb__entry__2}

| 이름 | 설명 |
|-|-|
| 번호 | 고유한 알림 전화 번호입니다. 데이터 유형: 배열 |
| 결과 | true로 설정된 경우에만 getData 반환됩니다. 각 고유 번호와 연결된 메타데이터입니다. 데이터 유형: 객체 "result": { "number": "String", "sysId": "String", "type": "String", "valid": Boolean } |
| 결과.번호 | 고유한 알림 전화번호입니다. 데이터 유형: 문자열 |
| result.sysId | 알림 전화 번호가 포함된 기록의 Sys_id입니다. 알림 전화 번호 \[notify_number\] 테이블에 있습니다. 데이터 유형: 문자열 |
| 결과.유형 | 항상 사용자의 경우 "u"를 포함합니다. 데이터 유형: 문자열 |
| 결과.유효 | 알림 전화 번호가 유효한 E.164 형식인지 여부를 나타내는 플래그입니다. 가능한 값: * true: 유효한 E.164 형식입니다. * false: E.164 형식이 아닙니다. {#NU-getUniqPhNumUsersGrps_S_S_S_S_S__ul_in5_lcy_vmb} 데이터 유형: 부울 |
[표 7. 반환]

{#NU-getUniqPhNumUsersGrps_S_S_S_S_S__table_lxw_hs5_kmb}  
이 예에서는 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) {#ariaid-title6}

지정된 소스 기록에 대해 활성 컨퍼런스 회의가 있는지 여부를 확인합니다.
{#NU-hasActiveConferenceCalls_S__table_wwv_ktm_kmb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 소스 RecSysId | 문자열 | 활성 컨퍼런스 회의를 확인할 기록의 Sys_id입니다. 인시던트 테이블의 기록 sys_id를 예로 들 수 있습니다. |
[표 8. 매개변수]

{#NU-hasActiveConferenceCalls_S__table_wwv_ktm_kmb} {#NU-hasActiveConferenceCalls_S__table_xwv_ktm_kmb__entry__2}

| 유형 | 설명 |
|-|-|
| 부울 | 지정된 기록에 활성 컨퍼런스 회의가 연결되어 있는지 여부를 나타내는 플래그입니다. 가능한 값: * true: 지정된 기록에 대해 활성 컨퍼런스 회의를 사용할 수 있습니다. * false: 활성 컨퍼런스 회의가 없습니다. {#NU-hasActiveConferenceCalls_S__ul_ucd_zwm_kmb} |
[표 9. 반환]

{#NU-hasActiveConferenceCalls_S__table_xwv_ktm_kmb}  
이 예시에서는 인시던트 기록과 연결된 활성 컨퍼런스 회의가 있는 경우 정보 메시지를 표시합니다.

    (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(문자열 번호) {#ariaid-title7}

지정된 알림 전화 번호를 확인합니다.
이 메서드는 세 가지 유형의 유효성 검사를 수행합니다.

1. 알림 번호가 알림 전화 번호 \[notify_number\] 테이블에 있는지 여부입니다.
2. 알림 번호에 연결된 알림 그룹이 있는지 여부입니다.
3. 알림 번호가 활성 상태인지 여부입니다.
{#NU-validateOutNotifyPhoneNum_S__ol_ej5_w4t_kmb} 이러한 유효성 검사 중 하나라도 실패하면 메서드에서 예외가 throw됩니다.
{#NU-validateOutNotifyPhoneNum_S__table_nkw_m4t_kmb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 번호 | 문자열 | 확인할 알림 번호입니다. |
[표 10. 매개변수]

{#NU-validateOutNotifyPhoneNum_S__table_nkw_m4t_kmb} {#NU-validateOutNotifyPhoneNum_S__table_okw_m4t_kmb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 11. 반환]

{#NU-validateOutNotifyPhoneNum_S__table_okw_m4t_kmb}  
이 예에서는 알림 번호의 유효성을 검사하는 방법을 보여줍니다.

    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(문자열 번호) {#ariaid-title8}

지정된 번호가 유효한 E.164 전화 번호인지 확인합니다.
{#NU-validatePhoneNumber_S__table_nyd_b5t_kmb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 번호 | 문자열 | 유효성을 검사할 전화 번호입니다. |
[표 12. 매개변수]

{#NU-validatePhoneNumber_S__table_nyd_b5t_kmb} {#NU-validatePhoneNumber_S__table_oyd_b5t_kmb__entry__2}

| 유형 | 설명 |
|-|-|
| 부울 | 지정된 번호가 유효한 전화 번호인지 여부를 나타내는 플래그입니다. 가능한 값: * true: 유효한 E.164 전화 번호입니다. * false: 잘못된 전화 번호입니다. |
[표 13. 반환]

{#NU-validatePhoneNumber_S__table_oyd_b5t_kmb}  
이 예제에서는 전화 번호의 유효성을 검사하는 방법을 보여 줍니다.

    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 '';
    } 


