GlideApplicationProperty - 범위, 전역

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 8분
  • GlideApplicationProperty API는 특정 도메인에 대한 애플리케이션 속성 값을 가져오고 설정하는 메서드를 제공합니다.

    애플리케이션 속성을 사용하면 서비스 제공자가 도메인을 기반으로 애플리케이션 기능을 사용자 지정할 수 있습니다. 모든 도메인과 사용자의 기능을 정의하는 단일 시스템 속성(시스템 속성 [sys_properties] 테이블)만 갖는 대신, 애플리케이션 속성을 구현하여 특정 도메인에 대한 기능을 정의할 수 있습니다.

    이 API에 접근하려면 Domain Support - Domain Extensions Installer(com.glide.domain.msp_extensions.installer) 플러그인을 활성화해야 합니다.

    도메인별 애플리케이션 속성에 대한 자세한 내용은 도메인 분리 애플리케이션 속성을 참조하십시오.

    GlideApplicationProperty - getValue(문자열 이름, 문자열 domainSysId)

    지정된 애플리케이션 속성 및 도메인 sys_id에 대한 값을 반환합니다.

    사용 가능한 애플리케이션 속성 목록은 애플리케이션 속성 [sys_application_property] 및 애플리케이션 속성 값 [sys_application_property_value] 테이블에 있습니다.

    주:
    지정된 도메인이 하위 도메인이고 하위 도메인에 대한 애플리케이션 속성이 없는 경우 메서드는 사용 가능한 경우 상위 도메인 애플리케이션 속성을 반환합니다.
    표 1. 매개변수
    이름 유형 설명
    이름 문자열 반환할 애플리케이션 속성의 이름입니다.
    주:
    애플리케이션이 전역이 아닌 경우 sys_application_property 이름의 앞에 애플리케이션의 범위를 붙여야 합니다.
    domainSysId 문자열 옵션입니다. 애플리케이션 속성과 연결된 도메인의 Sys_id입니다.

    기본값: 세션 도메인

    표 2. 반환
    유형 설명
    문자열 지정된 도메인에 대해 지정된 애플리케이션 속성의 값입니다. domainSysId 호출에 전달되지 않은 경우 세션 도메인을 반환합니다.

    지정된 애플리케이션 속성이 없으면 동일한 이름의 시스템 속성 값을 반환합니다.

    사용자에게 지정된 도메인에 대한 액세스 권한이 없는 경우 예외가 발생하고 값이 반환되지 않습니다.

    이 예시에서는 새 애플리케이션 속성을 생성하고 ACME 및 Cisco 도메인에 대한 값을 재정의하는 방법을 보여줍니다.

    var MY_APP_PROP_NAME = 'my-app-prop';
    var ACME_DOMAIN_ID = 'c90d4b084a362312013398f051272c0d';
    var CISCO_DOMAIN_ID = 'c90f91924a362312001bdefae0f35d68';
    
    // create a new app_config entry:
    var now_GR = new GlideRecord('sys_application_property');
    now_GR.name = MY_APP_PROP_NAME; 
    now_GR.default_value = 'my-app-prop-default_value'; 
    now_GR.insert();
    
    // Override the value for ACME domain, catch exception if user can't access the specified domain
    try {
      GlideApplicationProperty.setValue(MY_APP_PROP_NAME, 'prop-value-ACME', ACME_DOMAIN_ID);
      gs.info('Value for ACME domain: ' + GlideApplicationProperty.getValue(MY_APP_PROP_NAME, ACME_DOMAIN_ID));
    } catch (ex) {
      gs.info('Exception: ' + ex);
    }
    
    // Override the value for Cisco domain -- assuming that the current session domain is Cisco. Notice that we don't pass domain-id explicitly
    session.setDomainID(CISCO_DOMAIN_ID); // NOTE: this API is not available from non-global scope (use domain-picker to switch to Cisco)
    gs.info('Domain: ' + session.getCurrentDomainID());
    GlideApplicationProperty.setValue(MY_APP_PROP_NAME, 'prop-value-Cisco');
    gs.info('Value for current session (Cisco) domain: ' + GlideApplicationProperty.getValue(MY_APP_PROP_NAME));
    
    출력:
    *** Script: Value for ACME domain: prop-value-ACME
    *** Script: Domain: c90f91924a362312001bdefae0f35d68
    *** Script: Value for current session (Cisco) domain: prop-value-Cisco

    GlideApplicationProperty - setValue(문자열 이름, 문자열 값, 문자열 domainSysId)

    지정된 값을 지정된 도메인의 지정된 애플리케이션 속성에 저장하거나 지정되지 않은 경우 현재 세션 도메인에 저장합니다.

    이 방법을 사용하기 위한 지침은 다음과 같습니다.
    • 이름에 다음 문자열 중 하나가 포함되어 있으면 애플리케이션 속성이 만들어지지 않습니다.
      • glide.properties.blacklist
      • glide.properties.no_db_override
      • glide.properties.safe_overrides
      • glide.properties.maint_write_roles
    • 이름이 같은 기존 시스템 속성이 있고 시스템 속성이 비공개로 표시된 경우 애플리케이션 속성이 생성되지 않습니다.
    • 기존 시스템 속성이 있고 애플리케이션 속성이 이를 참조하지 않으면 애플리케이션 속성이 생성되지 않습니다.
    • sys_application_property 테이블의 애플리케이션 속성 이름은 전역이 아닌 경우 애플리케이션의 범위가 프리픽스로 붙습니다.
    • 이 메서드는 다른 범위에서 호출할 수 없습니다.
    표 3. 매개변수
    이름 유형 설명
    이름 문자열 저장할 애플리케이션 속성의 이름입니다.
    주:
    애플리케이션이 전역이 아닌 경우 sys_application_property 이름의 앞에 애플리케이션의 범위를 붙여야 합니다.
    문자열 지정된 애플리케이션 속성에 저장할 값입니다.
    domainSysId 문자열 옵션입니다. 애플리케이션 속성과 연결된 도메인의 Sys_id입니다.

    기본값: 현재 세션 도메인

    표 4. 반환
    유형 설명
    부울 저장 작업이 성공했는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 값이 성공적으로 저장되었습니다.
    • false: 오류가 발생했으며 애플리케이션 속성이 생성/업데이트되지 않았습니다.

    사용자에게 지정된 도메인에 대한 액세스 권한이 없는 경우 예외가 발생하고 값이 반환되지 않습니다.

    이 예시에서는 새 애플리케이션 속성을 생성하고 ACME 및 Cisco 도메인에 대한 값을 재정의하는 방법을 보여줍니다.

    var MY_APP_PROP_NAME = 'my-app-prop';
    var ACME_DOMAIN_ID = 'c90d4b084a362312013398f051272c0d';
    var CISCO_DOMAIN_ID = 'c90f91924a362312001bdefae0f35d68';
    
    // create a new app_config entry:
    var now_GR = new GlideRecord('sys_application_property');
    now_GR.name = MY_APP_PROP_NAME; 
    now_GR.default_value = 'my-app-prop-default_value'; 
    now_GR.insert();
    
    // Override the value for ACME domain, catch exception if user can't access the specified domain
    try {
      GlideApplicationProperty.setValue(MY_APP_PROP_NAME, 'prop-value-ACME', ACME_DOMAIN_ID);
      gs.info('Value for ACME domain: ' + GlideApplicationProperty.getValue(MY_APP_PROP_NAME, ACME_DOMAIN_ID));
    } catch (ex) {
      gs.info('Exception: ' + ex);
    }
    
    // Override the value for Cisco domain -- assuming that the current session domain is Cisco. Notice that we don't pass domain-id explicitly
    session.setDomainID(CISCO_DOMAIN_ID); // NOTE: this API is not available from non-global scope (use domain-picker to switch to Cisco)
    gs.info('Domain: ' + session.getCurrentDomainID());
    GlideApplicationProperty.setValue(MY_APP_PROP_NAME, 'prop-value-Cisco');
    gs.info('Value for current session (Cisco) domain: ' + GlideApplicationProperty.getValue(MY_APP_PROP_NAME));
    
    출력:
    *** Script: Value for ACME domain: prop-value-ACME
    *** Script: Domain: c90f91924a362312001bdefae0f35d68
    *** Script: Value for current session (Cisco) domain: prop-value-Cisco