Widget-Problembehandlungsleitfaden

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 4 Minuten Lesedauer
  • Verwenden Sie die folgenden Tools, um unerwartetes Verhalten in Ihren anwenderdefinierten Elementen zu untersuchen und zu beheben ServiceportalWidgets.

    Reduzieren Sie die Komplexität
    Deaktivieren Sie Widgets, die sich nicht auf das Widget beziehen, das Sie beheben, um Teile der Seite zu isolieren, die zu Fehlern oder unerwartetem Verhalten führen können. Legen Sie das aktive Feld in einem Widget-Datensatz auf „falsch“ fest, um das Widget auf der Seite auszublenden und die Ausführung zugeordneter Skripts zu verhindern.
    Verwenden Sie die Browser-Entwicklerkonsole

    Alle unterstützten Desktop-Browser verfügen über integrierte Entwicklertools. Greifen Sie auf die Entwicklertools Ihres Browsers zu, um Konsolennachrichten und Fehler anzuzeigen, die von clientseitigem JavaScript ausgelöst werden. Viele der unten aufgeführten Protokollierungstools geben Informationen an diese Konsole aus.

    Wenn Leistungsprobleme auftreten, überprüfen Sie die JavaScript-Konsole, um festzustellen, ob Fehler, eine große Anzahl von HTTP-Anforderungen oder HTTP-Anforderungen vorliegen, deren Lösung lange dauert. Sie können die Konsole verwenden, um Widgets zu identifizieren, die langsam geladen werden. Weitere Informationen finden Sie unter So identifizieren Sie ein langsames Widget auf einer Seite [KB0744521] artikel in der Now Support-Wissensdatenbank.

    Bestimmen Sie die Ursache von Leistungsproblemen

    Die folgenden Tipps können helfen, die Ursache von Leistungsproblemen in Portalen zu bestimmen:

    • Bestimmen Sie, ob das Problem mit dem Portal oder plattformweit zusammenhängt, indem Sie die Funktionalität in beiden Schnittstellen vergleichen. Weitere Informationen zu Problemen mit der Plattformleistung finden Sie unter Plattformleistung .
    • Bestimmen Sie, ob das Problem das gesamte Portal oder bestimmte Seiten betrifft. Wenn alle Seiten im Portal langsam sind, überprüfen Sie, ob geskriptete Menüelemente im Header-Menü oder Designs mit großen Schriftarten oder Bilddateien die Ursache sein könnten. Wenn eine bestimmte Seite langsam ist, verwenden Sie die Entwicklerkonsole des Browsers, um zu bestimmen, welches Widget die Ursache sein könnte.
    • Überprüfen Sie die Protokolltabelle [syslog] auf Warnungen im Zusammenhang mit großen JSON-Objekten, die zu langsam führen. Wenn diese Warnungen mit der Aktion angezeigt werden, die zu Langsamkeit führt, bedeutet dies, dass ein Widget zu viele Daten verwendet.

    Weitere Informationen finden Sie unter Sechs häufige Leistungsfallen im Serviceportal und wie sie vermieden werden können [KB0634588] artikel in der Now Support-Wissensdatenbank.

    Verwenden Sie das Widget-Kontextmenü, um auf Informationen und Optionen zuzugreifen
    STRG+Rechtsklick Ein Widget für den Zugriff auf Konfigurationsoptionen für das Widget. Es gibt auch Optionen zum Ausgeben des Bereichs- und Bereichsdatenobjekts in die Browserkonsole. Weitere Informationen zu diesem Menü finden Sie unter Portal-Widgets werden verwendet.
    Verwenden Sie Skriptmethoden, um die Debugging-Ausgabe zu erfassen

    Es sind mehrere Methoden verfügbar, um Debugging-Informationen in Ihrem Server- und clientseitigen Code auszugeben.

    Tabelle : 1. Geskriptete Debugging-Methoden
    Methode Verfügbarkeit Beschreibung
    console.log() Server und Client Protokolliert die Ausgabe in der Browser-Entwicklerkonsole.
    $sp.log() Server Protokolliert die Ausgabe in den Serviceportal-Protokolleinträgen [ sp_log ] Tabelle, wenn der angemeldete Anwender über verfügt sp_admin Oder Administrator Rolle.
    gs.log() Server Protokolliert die Ausgabe in der Protokolltabelle [syslog].
    Hinweis:
    gs.log erstellt Datensätze in der Syslog-Tabelle. Übermäßige Nutzung kann sich nachteilig auf die Leistung auswirken.
    gs.Warnung() Server Erstellt eine Ausgabe der Warnungsebene in der Tabelle „Protokoll“ [syslog].
    gs.Fehler() Server Erstellt eine Ausgabe auf Fehlerebene in der Protokolltabelle [syslog].
    gs.addInfoMessage() Server Zeigt oben im Browserfenster eine grüne Informationsmeldung an.
    gs.addErrorMessage() Server Zeigt oben im Browserfenster eine rote Fehlermeldung an.
    SpUtil.addErrorMessage() Client Zeigt eine Fehlermeldung im Browserfenster an.
    SpUtil.addInfoMessage() Client Zeigt eine Infonachricht im Browserfenster an.
    SpUtil.addTrivialMessage() Client Zeigt eine Nachricht an, die nach kurzer Zeit automatisch ausgeblendet wird.
    debugger Client Legt einen Haltepunkt in Chrome- und Firefox-Browsern fest, sodass Sie in der Browserentwicklerkonsole zeilenweise durch ein Skript gehen können.
    {{Data|JSON}} HTML Dieser Code kann dem HTML-Code einer Seite hinzugefügt werden, um das Datenobjekt im JSON-Format für die Portalseite auszugeben.
    Überprüfen Sie auf Sicherheitsbeschränkungen

    Häufig werden Probleme mit der Widget-Anzeige durch Zugriffsregeln oder Anwenderkriterien und nicht durch das Widget-Skript verursacht. Überprüfen Sie die Anwenderkriterien für Datensätze, und stellen Sie sicher, dass alle Datensätze, auf die innerhalb eines Widgets nicht zugegriffen werden kann, über die Plattform-UI zugänglich sind. Verwenden Sie den ACL-Debugger, um sicherzustellen, dass Ihre Anwender den erwarteten Zugriff auf Datensätze haben, die von Ihren Widgets verwendet werden. Weitere Informationen zum Debugger finden Sie unter ACL-Debugging-Tools .

    ServicekatalogElemente können auch so eingeschränkt werden, dass sie nicht in angezeigt werden Serviceportal. Wenn Sie einen erhalten Sie sind entweder nicht autorisiert, oder der Datensatz ist ungültig Fehlermeldung für ServicekatalogWidget: Stellen Sie sicher, dass das Element nicht in ausgeblendet ist Serviceportal.

    Überprüfen Sie die zugehörigen Winkelanbieter
    Stellen Sie sicher, dass die erforderlichen Winkelanbieter Widgets zugeordnet sind. Das Entfernen der standardmäßigen Winkelanbieter, die einem Basissystem-Widget zugeordnet sind, kann zu unerwartetem Verhalten führen. Beispiel: Entfernen Sie die Winkelanbieter scToggleData oder scBindHtmlCompile aus dem Widget „SC-Katalogelement“.
    Erstellen Sie einen Verweis auf den Widget-Bereich in der Konsole
    Verwenden Sie den Verweis auf ein Widget, um Umfangsdaten zu bearbeiten, oder führen Sie die Client- und Serverskripts für Widgets manuell aus. Führen Sie die folgenden Schritte aus, um die Referenz zu erstellen.
    • 1. Klicken Sie mit der rechten Maustaste auf das Widget, und wählen Sie aus Überprüfen .
    • 2. Klicken Sie auf der Registerkarte „Entwicklungstools-Elemente“ auf , um das Element mit Attribut-Widget= hervorzuheben Widget . Sie finden einige Elemente über dem derzeit untersuchten Element. Dieses Element verweist auf das Skripting-Tool $0 auf das Widget.
    • Führen Sie in der JavaScript-Konsole den folgenden Code aus:
      var scopeRef = angular.element($0).scope();
    Verwenden Sie den Verweis auf Ihr Widget, um Daten in der Konsole zu ändern. Siehe folgendes Beispiel. Denken Sie daran, auszuführen AngularJS $apply() Im Umfang, in dem Änderungen auf die Seite angewendet werden sollen.
    scopeRef.data.prop1 = "Pear";
    scopeRef.$apply();
    Führen Sie eine beliebige im Widget-Client-Controller definierte Funktion aus Ihrer Referenz mithilfe der folgenden Syntax aus.
    scopeRef.exampleFunction();

    Verwenden Sie den Aktualisierungsbefehl, um das Widget-Serverskript manuell auszuführen.

    scopeRef.server.refresh();