GlideApplicationProperty – Scoped, Global
Die GlideApplicationProperty- API bietet die Möglichkeit, Anwendungseigenschaftswerte für eine bestimmte Domäne abzurufen und festzulegen.
Anwendungseigenschaften ermöglichen es Service Providern, die Anwendungsfunktionalität basierend auf der Domäne anzupassen. Anstatt nur eine einzige Systemeigenschaft (Tabelle „Systemeigenschaft“ [sys_properties]) zu haben, die die Funktionalität für alle Domänen und Benutzer 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 „Domain Support – Domain Extensions Installer“ (com.glide.domain.msp_extensions.installer) aktivieren.
Weitere Informationen zu domänenspezifischen Anwendungseigenschaften finden Sie unter Eigenschaften von domänengetrennten Anwendungen.
GlideApplicationProperty – getValue(String name, String domainSysId)
Gibt den Wert für die angegebene Anwendungseigenschaft und Domänen-sys_id 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 Bereich der Anwendung voranstellen. |
| 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 domainSysId im Aufruf nicht übergeben wird, wird die Sitzungsdomäne zurückgegeben. Wenn die angegebene Anwendungseigenschaft nicht vorhanden ist, wird der gleichnamige Systemeigenschaftswert zurückgegeben. Wenn der Benutzer keine Zugriffsrechte für die angegebene Domäne hat, wird eine Ausnahme ausgelöst, und es wird kein Wert zurückgegeben. |
Dieses Beispiel zeigt, wie eine neue Anwendungseigenschaft erstellt und ihr Wert für ACME- und Cisco-Domänen überschrieben wird.
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(String name, String value, String domainSysId)
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 das 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 Bereich der Anwendung voranstellen. |
| 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 Benutzer keine Zugriffsrechte für die angegebene Domäne hat, wird eine Ausnahme ausgelöst, und es wird kein Wert zurückgegeben. |
Dieses Beispiel zeigt, wie eine neue Anwendungseigenschaft erstellt und ihr Wert für ACME- und Cisco-Domänen überschrieben wird.
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