GlideApplicationProperty - スコープ付き、グローバル
GlideApplicationProperty API は、特定のドメインのアプリケーションプロパティ値を取得および設定するためのメソッドを提供します。
アプリケーションプロパティを使用すると、サービスプロバイダーはドメインに基づいてアプリケーション機能をカスタマイズできます。すべてのドメインとユーザーの機能を定義する単一のシステムプロパティ (システムプロパティ [sys_properties] テーブル) のみを持つ代わりに、特定のドメインの機能を定義するアプリケーションプロパティを実装できます。
この API にアクセスするには、Domain Support - Domain Extensions Installer [com.glide.domain.msp_extensions.installer] プラグインをアクティブ化する必要があります。
ドメイン固有のアプリケーションプロパティの詳細については、「 ドメインセパレーションアプリケーションのプロパティ」を参照してください。
GlideApplicationProperty - getValue(文字列 name, 文字列 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(文字列 name, 文字列 value, 文字列 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