GlideApplicationProperty: Bereichsbezogen, Global
Die GlideApplicationProperty Die API bietet Methoden zum Abrufen und Festlegen von Anwendungseigenschaftswerten für eine bestimmte Domäne.
Anwendungseigenschaften ermöglichen Service Providern die Anpassung der Anwendungsfunktionalität basierend auf der Domäne. Anstatt nur eine einzelne Systemeigenschaft (Tabelle „Systemeigenschaft“ [sys_properties]) zu haben, die die Funktionalität für alle Domänen und Anwender definiert, können Anwendungseigenschaften implementiert werden, um die Funktionalität für bestimmte Domänen zu definieren.
Um auf diese API zuzugreifen, müssen Sie das Plugin „Domänensupport – Domänenerweiterungs-Installationsprogramm“ (com.glide.domain.msp_extensions.installer) aktivieren.
Weitere Informationen zu domänenspezifischen Anwendungseigenschaften finden Sie unter Domänengetrennte Anwendungseigenschaften .
GlideApplicationProperty – getValue(Zeichenfolgenname, ZeichenfolgendomainSysId)
Gibt den Wert für die angegebene Anwendungseigenschaft und die sys_ID der Domäne zurück
Die Liste der verfügbaren Anwendungseigenschaften befindet sich in den Tabellen Anwendungseigenschaften [sys_Application_property] und Anwendungseigenschaftswerte [sys_Application_property_value].
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name der zurückzugebenden Anwendungseigenschaft. Hinweis: Wenn die Anwendung nicht global ist, müssen Sie dem Namen der sys_Application_property den Umfang der Anwendung vorangestellen. |
| domainSysId | Zeichenfolge | Optional. SYS_ID der Domäne, die der Anwendungseigenschaft zugeordnet ist. Standard: Sitzungsdomäne |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Wert der angegebenen Anwendungseigenschaft für die angegebene Domäne. Wenn domainSysIdWird im Anruf nicht übergeben und gibt dann die Sitzungsdomäne zurück. Wenn die angegebene Anwendungseigenschaft nicht vorhanden ist, wird der Wert der Systemeigenschaft mit demselben Namen zurückgegeben. Wenn der Anwender keine Zugriffsrechte für die angegebene Domäne hat, löst eine Ausnahme aus, und es wird kein Wert zurückgegeben. |
Dieses Beispiel zeigt, wie Sie eine neue Anwendungseigenschaft erstellen und ihren Wert für ACME- und Cisco-Domänen überschreiben.
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(Zeichenfolgenname, Zeichenfolgenwert, ZeichenfolgendomainSysId)
Speichert den angegebenen Wert in der angegebenen Anwendungseigenschaft für die angegebene Domäne oder die aktuelle Sitzungsdomäne, falls nicht angegeben.
- Die Anwendungseigenschaft wird nicht erstellt, wenn ihr Name eine der folgenden Zeichenfolgen enthält:
- glide.properties.blacklist
- glide.properties.no_db_override
- glide.properties.safe_overrides
- glide.properties.maint_write_roles
- Die Anwendungseigenschaft wird nicht erstellt, wenn eine Systemeigenschaft mit demselben Namen vorhanden ist und die Systemeigenschaft als privat markiert ist.
- Die Anwendungseigenschaft wird nicht erstellt, wenn eine Systemeigenschaft vorhanden ist und die Anwendungseigenschaft nicht darauf verweist.
- Dem Namen der Anwendungseigenschaft in der Tabelle „sys_Application_property“ wird der Anwendungsbereich vorangestellt, wenn er nicht global ist.
- Diese Methode kann nicht aus einem anderen Bereich aufgerufen werden.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name der zu speichernden Anwendungseigenschaft. Hinweis: Wenn die Anwendung nicht global ist, müssen Sie dem Namen der sys_Application_property den Umfang der Anwendung vorangestellen. |
| Wert | Zeichenfolge | Wert, der in der angegebenen Anwendungseigenschaft gespeichert werden soll. |
| domainSysId | Zeichenfolge | Optional. SYS_ID der Domäne, die der Anwendungseigenschaft zugeordnet ist. Standard: Aktuelle Sitzungsdomäne |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob der Speichervorgang erfolgreich war. Gültige Werte:
Wenn der Anwender keine Zugriffsrechte für die angegebene Domäne hat, löst eine Ausnahme aus, und es wird kein Wert zurückgegeben. |
Dieses Beispiel zeigt, wie Sie eine neue Anwendungseigenschaft erstellen und ihren Wert für ACME- und Cisco-Domänen überschreiben.
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