GlideApplicationProperty: Bereichsbezogen, global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • 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].

    Hinweis:
    Wenn die angegebene Domäne eine untergeordnete Domäne ist und keine Anwendungseigenschaft für die untergeordnete Domäne vorhanden ist, gibt die Methode die Anwendungseigenschaft der übergeordneten Domäne zurück, falls verfügbar.
    Tabelle : 1. Parameter
    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

    Tabelle : 2. Rückgaben
    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));
    
    Ausgabe:
    *** Script: Value for ACME domain: prop-value-ACME
    *** Script: Domain: c90f91924a362312001bdefae0f35d68
    *** Script: Value for current session (Cisco) domain: prop-value-Cisco

    GlideApplicationProperty – 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.

    Im Folgenden finden Sie Richtlinien für die Verwendung dieser Methode:
    • 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.
    Tabelle : 3. Parameter
    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

    Tabelle : 4. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der Speichervorgang erfolgreich war.
    Gültige Werte:
    • „wahr“: Wert wurde erfolgreich gespeichert.
    • „falsch“: Ein Fehler ist aufgetreten, und die Anwendungseigenschaft wurde nicht erstellt/aktualisiert.

    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));
    
    Ausgabe:
    *** Script: Value for ACME domain: prop-value-ACME
    *** Script: Domain: c90f91924a362312001bdefae0f35d68
    *** Script: Value for current session (Cisco) domain: prop-value-Cisco