GlideApplicationProperty: Bereichsbezogen, global
Die GlideApplicationProperty- API bietet Methoden zum Abrufen und Festlegen von Anwendungseigenschaftswerten für eine bestimmte Domäne.
Mithilfe von Anwendungseigenschaften können Service Provider die Anwendungsfunktionen basierend auf der Domäne anpassen. 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(Zeichenfolgename, Zeichenfolge 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 „Werte der Anwendungseigenschaft“ [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 von sys_application_property den Anwendungsbereich 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, gibt die Sitzungsdomäne zurück. Wenn die angegebene Anwendungseigenschaft nicht vorhanden ist, wird der Wert der Systemeigenschaft mit dem gleichen Namen zurückgegeben. Wenn der Benutzer keine Zugriffsrechte für die angegebene Domäne hat, löst eine Ausnahme aus und gibt keinen Wert zurück. |
In diesem Beispiel wird gezeigt, 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, Zeichenfolge domainSysId)
Speichert den angegebenen Wert in der angegebenen Anwendungseigenschaft für die angegebene Domäne oder die aktuelle Sitzungsdomäne, wenn 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 von sys_application_property den Anwendungsbereich 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: Domäne der aktuellen Sitzung |
| 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, löst eine Ausnahme aus und gibt keinen Wert zurück. |
In diesem Beispiel wird gezeigt, 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