GlideApplicationProperty – Scoped, Global

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • 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].

    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 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

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

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

    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 das 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 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

    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der Speichervorgang erfolgreich war.
    Gültige Werte:
    • true: Wert wurde erfolgreich gespeichert.
    • false: Ein Fehler ist aufgetreten, und die Anwendungseigenschaft wurde nicht erstellt/aktualisiert.

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