Dashboard-URL-Parameterdelegierung

  • Freigeben Version: Australia
  • Aktualisiert 31. März 2026
  • 2 Minuten Lesedauer
  • Die Eigenschaft „Delegierte-URL-Parameter“ aktiviert UIB Seiten mit Dashboard-Komponenten, um zu steuern, wie URL-Parameteraktualisierungen behandelt werden. Dadurch wird anwenderdefinierte Navigationslogik für eingebettete Szenarien oder Arbeitsbereichsszenarien aktiviert.

    Hinweis:
    Diese Funktionalität erfordert die neueste Platform Analytics-Experience Anwendung von ServiceNow® Store.

    Standardmäßig aktualisieren Dashboard-Komponenten die Browser-URL automatisch, wenn Anwender Dashboards wechseln, Registerkarten wechseln oder den Bearbeitungsmodus umschalten. Dieses Verhalten funktioniert gut für Standard-Dashboard-Seiten, passt jedoch möglicherweise nicht für alle Implementierungsszenarien.

    Die URL-Parameter delegieren Die Eigenschaft bietet einen alternativen Ansatz, bei dem die Dashboard-Komponente Ereignisse sendet, anstatt URLs direkt zu aktualisieren. Mit diesem Delegierungsmechanismus können übergeordnete Seiten anwenderdefinierte Navigationslogik implementieren.

    Informationen zu dieser Eigenschaft im Kontext des Konfigurationsbereichs der Dashboard-Komponente finden Sie unter Eigenschaften der Dashboard-Komponente.

    Wann die URL-Parameterdelegierung verwendet werden soll

    Die URL-Parameterdelegierung ist in diesen Szenarien nützlich:

    • Die URL-Struktur der Seite enthält keine Dashboard-URL-Parameter, z. B. „Nein“ sys-ID Im URL-Pfad
    • Die Seite erfordert anwenderdefinierte Navigationslogik für Dashboard-Changes
    • Das Dashboard ist in einen Arbeitsbereich eingebettet, in dem die URL-Verwaltung von der übergeordneten Komponente verarbeitet wird
    • Mehrere Dashboard-Komponenten sind auf derselben Seite vorhanden und benötigen eine koordinierte URL-Verarbeitung

    Funktionsweise der Delegierung

    Wann URL-Parameter delegieren Ist deaktiviert (Standardverhalten):

    1. Der Anwender führt eine Aktion aus, z. B. das Dashboard wechseln, die Registerkarte ändern oder den Bearbeitungsmodus umschalten
    2. Die Dashboard-Komponente sendet einen internen CONTENT_UPDATED Aktion
    3. UIB Framework verarbeitet die Aktion und aktualisiert URL-Parameter automatisch

    Wann URL-Parameter delegieren Ist aktiviert:

    1. Anwender führt eine Aktion aus
    2. Die Dashboard-Komponente unterdrückt CONTENT_UPDATED Versand
    3. Dashboardkomponenten werden gesendet DASHBOARD#URL_PARAMS_UPDATE_REQUESTED Mit strukturierten Parameterdaten
    4. Client-Skript auf der Seite empfängt das Ereignis und implementiert anwenderdefinierte Navigationslogik

    Struktur der Ereignisnutzlast

    Die DASHBOARD#URL_PARAMS_UPDATE_REQUESTED Ereignis enthält urlParamsObjekt mit strukturierten Parameterinformationen. Jeder Parameter enthält den Wert, die Beschreibung und zusätzliche Metadaten wie Dashboard-Namen und neue Registerkartenindikatoren.

    Dieser strukturierte Ansatz bietet Client-Skripts mit ausreichend Kontext, um fundierte Navigationsentscheidungen zu treffen, einschließlich der Behandlung von Sonderfällen wie dem Öffnen von Dashboards in neuen Browserregisterkarten.

    Weitere Informationen zu diesem Ereignis finden Sie unter Ereignisse der Dashboard-Komponente.

    Konfigurieren Sie die Parameterdelegierung für Dashboard-URL

    Aktivieren Sie die URL-Parameterdelegierung für Dashboard-Komponenten, um anwenderdefinierte Navigationslogik in zu implementieren UIB Seiten.

    Vorbereitungen

    Erforderliche Rolle: ui_Builder_admin

    Warum und wann dieser Vorgang ausgeführt wird

    Konfigurieren Sie die URL-Parameterdelegierung, wenn Sie anwenderdefinierte Steuerung darüber benötigen, wie die Dashboard-Navigation Browser-URLs aktualisiert. Dies ist nützlich für eingebettete Dashboards, Arbeitsbereichsszenarien oder Seiten mit nicht standardmäßigen URL-Strukturen.

    Prozedur

    1. Navigieren Sie zu UIB Seite, die die Dashboard-Komponente enthält.
    2. Wählen Sie die Dashboard-Komponente im Design-Canvas aus.
    3. Öffnen Sie Konfigurieren Registerkarte im Komponenteneigenschaften-Bereich.
    4. Wählen Sie aus URL-Parameter delegieren Kontrollkästchen.
      Wenn diese Option aktiviert ist, wird die Dashboard-Komponente gesendet DASHBOARD#URL_PARAMS_UPDATE_REQUESTED Ereignisse statt URLs direkt zu aktualisieren.
    5. Wechseln Sie zu Ereignisse Registerkarte.
    6. Wählen Sie Aus Ereigniszuordnung hinzufügen .
    7. Wählen Sie aus Aktualisierung der URL-Parameter angefordert Ereignis aus der Liste.
    8. Fügen Sie einen Ereignis-Handler hinzu, der ein Client-Skript ausführt.
      Das Client-Skript empfängt die URL-Parameterdaten und implementiert Ihre anwenderdefinierte Navigationslogik.
    9. Erstellen Sie ein Clientskript, um die URL-Parameteraktualisierungen zu verarbeiten.
      Das Skript erhält einen strukturierten urlParamsNutzlast mit Parameterwerten, Beschreibungen und Metadaten wie Dashboard-Namen und Indikatoren für neue Registerkarten.
      Die Dashboard-Komponente delegiert jetzt die Verarbeitung von URL-Parametern an Ihr anwenderdefiniertes Client-Skript, anstatt die Browser-URL direkt zu aktualisieren.

    Ergebnisse

    Wenn Anwender mit dem Dashboard interagieren (Dashboards wechseln, Registerkarten ändern, Bearbeitungsmodus umschalten), sendet die Komponente Ereignisse, die Ihr Client-Skript mit anwenderdefinierter Navigationslogik verarbeiten kann.

    Client-Skript für Standarddelegierung

    Dieses Beispielskript repliziert das standardmäßige URL-Update-Verhalten:

    function handler({api, event}) {
        const {urlParams} = event.payload;
        
        for (const [key, paramInfo] of Object.entries(urlParams)) {
            if (key === 'sysId' && paramInfo.isNewTab === true) {
                // Handle new tab navigation
                api.emit('NAV_ITEM_SELECTED', {
                    route: 'dashboards',
                    title: paramInfo.dashboardName || paramInfo.value,
                    params: {sysId: paramInfo.value},
                    navigationOptions: {
                        navigateExternal: true,
                        target: '_blank'
                    }
                });
                return;
            }
            
            // Handle normal navigation
            api.emit('CONTENT_UPDATED', {
                route: 'dashboards',
                params: {[key]: paramInfo.value}
            });
        }
    }