GlideApplicationProperty : dans le champ d’application, global

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 4 minutes de lecture
  • L’API GlideApplicationProperty fournit des méthodes permettant d’obtenir et de définir les valeurs des propriétés d’application pour un domaine spécifique.

    Les propriétés d’application permettent aux fournisseurs de services de personnaliser les fonctionnalités 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, les propriétés d’application peuvent être implémentées pour définir des fonctionnalités pour des domaines spécifiques.

    Pour accéder à cette API, vous devez activer le module d’extension Prise en charge de domaine - Programme d’installation d’extensions de domaine (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 chaîne, chaîne domainSysId)

    Renvoie la valeur de la propriété d’application et du sys_id de domaine spécifiés.

    La liste des propriétés d’application disponibles figure dans les tables Propriétés de l’application [sys_application_property] et Valeurs des propriétés d’application [sys_application_property_value].

    Remarque :
    Si le domaine spécifié est un domaine enfant et qu’il n’existe aucune propriété d’application pour le domaine enfant, la méthode renvoie la propriété d’application de domaine parent, le cas échéant.
    Tableau 1. Paramètres
    Nom Type Description
    nom Chaîne Nom de la propriété de l’application à renvoyer.
    Remarque :
    Si l’application n’est pas globale, vous devez faire précéder le nom de la sys_application_property du périmètre de l’application.
    domainSysId Chaîne Facultatif. Sys_id du domaine associé à la propriété de l’application.

    Par défaut : domaine de session

    Tableau 2. Renvoie
    Type Description
    Chaîne Valeur de la propriété de l’application spécifiée pour le domaine spécifié. Si 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 propriété système du même nom.

    Si l’utilisateur n’a pas les 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));
    
    Sortie :
    *** Script: Value for ACME domain: prop-value-ACME
    *** Script: Domain: c90f91924a362312001bdefae0f35d68
    *** Script: Value for current session (Cisco) domain: prop-value-Cisco

    GlideApplicationProperty : setValue(nom de chaîne, valeur de chaîne, chaîne domainSysId)

    Stocke la valeur spécifiée dans la propriété d’application spécifiée pour le domaine spécifié, ou le domaine de session en cours s’il n’est pas spécifié.

    Voici les lignes directrices pour l’utilisation de cette méthode :
    • La propriété de l’application n’est pas créée si son nom contient l’une des chaînes suivantes :
      • glide.properties.liste noire
      • 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 et que la propriété d’application ne la référence pas.
    • Le nom de la propriété de l’application dans la table 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.
    Tableau 3. Paramètres
    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 faire précéder le nom de la sys_application_property du périmètre de l’application.
    valide Chaîne Valeur à stocker dans la propriété spécifiée de l’application.
    domainSysId Chaîne Facultatif. Sys_id du domaine associé à la propriété de l’application.

    Par défaut : domaine de session en cours

    Tableau 4. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’opération d’enregistrement a réussi.
    Valeurs valides :
    • vrai : la valeur a été enregistrée avec succès.
    • faux : une erreur s’est produite et la propriété d’application n’a pas été créée/mise à jour.

    Si l’utilisateur n’a pas les 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));
    
    Sortie :
    *** Script: Value for ACME domain: prop-value-ACME
    *** Script: Domain: c90f91924a362312001bdefae0f35d68
    *** Script: Value for current session (Cisco) domain: prop-value-Cisco