GlideApplicationProperty - スコープ指定、グローバル

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:9分
  • 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. パラメーター
    名前 タイプ 説明
    name 文字列 返すアプリケーションプロパティの名前。
    注:
    アプリケーションがグローバルでない場合は、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. パラメーター
    名前 タイプ 説明
    name 文字列 保存するアプリケーションプロパティの名前。
    注:
    アプリケーションがグローバルでない場合は、sys_application_propertyの名前の前にアプリケーションのスコープを付ける必要があります。
    value 文字列 指定されたアプリケーションプロパティに格納する値。
    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