GlideApplicationProperty - スコープ指定、グローバル
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] テーブルにあります。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | 返すアプリケーションプロパティの名前。 注: アプリケーションがグローバルでない場合は、sys_application_propertyの名前の前にアプリケーションのスコープを付ける必要があります。 |
| domainSysId | 文字列 | オプション。アプリケーションプロパティに関連付けられているドメインのSys_id。 デフォルト:セッションドメイン |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定されたドメインの指定されたアプリケーションプロパティの値。コールで 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-CiscoGlideApplicationProperty - setValue(文字列名, 文字列値, 文字列 domainSysId)
指定されたドメインの指定されたアプリケーションプロパティに、または指定されていない場合は現在のセッションドメインに、指定された値を格納します。
- 名前に次のいずれかの文字列が含まれている場合、アプリケーションプロパティは作成されません。
- glide.properties.blacklist
- glide.properties.no_db_override
- glide.properties.safe_overrides
- glide.properties.maint_write_roles
- 同じ名前のシステムプロパティが既に存在し、システムプロパティがプライベートとしてマークされている場合、アプリケーションプロパティは作成されません。
- 既存のシステムプロパティがあり、アプリケーションプロパティがそれを参照していない場合、アプリケーションプロパティは作成されません。
- sys_application_propertyテーブル内のアプリケーションプロパティの名前は、グローバルでない場合は、アプリケーションのスコープがプリフィックスとして付きます。
- このメソッドを別のスコープから呼び出すことはできません。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | 保存するアプリケーションプロパティの名前。 注: アプリケーションがグローバルでない場合は、sys_application_propertyの名前の前にアプリケーションのスコープを付ける必要があります。 |
| value | 文字列 | 指定されたアプリケーションプロパティに格納する値。 |
| domainSysId | 文字列 | オプション。アプリケーションプロパティに関連付けられているドメインのSys_id。 デフォルト:現在のセッションドメイン |
| タイプ | 説明 |
|---|---|
| ブーリアン | 保存操作が成功したかどうかを示すフラグ。 有効な値:
ユーザーが指定されたドメインへのアクセス権を持っていない場合は、例外をスローし、値は返されません。 |
この例では、新しいアプリケーションプロパティを作成し、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