GlideApplicationProperty : inclus, global
L’API GlideApplicationProperty fournit des méthodes permettant d’obtenir et de définir des valeurs de propriété d’application pour un domaine spécifique.
Les propriétés de l’application permettent aux fournisseurs de services de personnaliser la fonctionnalité de l’application en fonction du domaine. Au lieu de n’avoir qu’une seule propriété système (table Propriétés système [sys_properties]) qui définit les fonctionnalités pour tous les domaines et utilisateurs, il est possible d’implémenter des propriétés d’application pour définir les fonctionnalités de domaines spécifiques.
Pour accéder à cette API, vous devez activer le module d’extension Domain Support - Domain Extensions Installer (com.glide.domain.msp_extensions.installer).
Pour plus d’informations sur les propriétés d’application spécifiques à un domaine, consultez Propriétés d’application séparées par domaine.
GlideApplicationProperty : getValue(nom de la chaîne, chaîne domainSysId)
Renvoie la valeur de la propriété de l’application et de l’sys_id de domaine spécifiés.
La liste des propriétés d’application disponibles se trouve dans les tables Propriétés de l’application [sys_application_property] et Valeurs des propriétés de l’application [sys_application_property_value].
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de la propriété d’application à retourner. Remarque : Si l’application n’est pas globale, vous devez ajouter le périmètre de l’application au nom de l’sys_application_property en préfixe celui de l’application. |
| domainSysId | Chaîne | Facultatif. Sys_id du domaine associé à la propriété d’application. Par défaut : domaine de la session |
| Type | Description |
|---|---|
| Chaîne | Valeur de la propriété de l’application spécifiée pour le domaine spécifié. S’il domainSysId n’est pas transmis dans l’appel, renvoie le domaine de session. Si la propriété d’application spécifiée n’existe pas, renvoie la valeur de la propriété système du même nom. Si l’utilisateur ne dispose pas des droits d’accès au domaine spécifié, lève une exception et aucune valeur n’est renvoyée. |
Cet exemple montre comment créer une propriété d’application et remplacer sa valeur pour les domaines ACME et 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(nom de la chaîne, valeur de la chaîne, domainSysId de la chaîne)
Stocke la valeur spécifiée dans la propriété d’application spécifiée pour le domaine spécifié, ou dans le domaine de session en cours s’il n’est pas spécifié.
- La propriété d’application n’est pas créée si son nom contient l’une des chaînes suivantes :
- glide.properties.blacklist
- glide.properties.no_db_override
- glide.properties.safe_overrides
- glide.properties.maint_write_roles
- La propriété d’application n’est pas créée s’il existe une propriété système portant le même nom et que la propriété système est marquée comme privée.
- La propriété d’application n’est pas créée s’il existe une propriété système existante et que la propriété d’application ne la référence pas.
- Le nom de la propriété d’application dans la table de sys_application_property est précédé du périmètre de l’application s’il n’est pas global.
- Cette méthode ne peut pas être appelée à partir d’un périmètre différent.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de la propriété de l’application à enregistrer. Remarque : Si l’application n’est pas globale, vous devez ajouter le périmètre de l’application au nom de l’sys_application_property en préfixe celui de l’application. |
| valide | Chaîne | Valeur à stocker dans la propriété d’application spécifiée. |
| domainSysId | Chaîne | Facultatif. Sys_id du domaine associé à la propriété d’application. Par défaut : domaine de la session en cours |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’opération de sauvegarde a réussi. Valeurs valides :
Si l’utilisateur ne dispose pas des droits d’accès au domaine spécifié, lève une exception et aucune valeur n’est renvoyée. |
Cet exemple montre comment créer une propriété d’application et remplacer sa valeur pour les domaines ACME et 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