Widget-Fehlerbehebungsanweisungen
Verwenden Sie die folgenden Tools, um unerwartetes Verhalten in Ihrem benutzerdefinierten Serviceportal-Widgets zu untersuchen und zu beheben.
- Komplexität reduzieren
- Deaktivieren Sie Widgets, die nicht mit dem Widget zusammenhängen, mit dem Sie das Problem beheben, um Teile der Seite zu isolieren, die Fehler oder unerwartetes Verhalten verursachen können. Setzen Sie das aktive Feld in einem Widget-Datensatz auf „falsch“, um das Widget auf der Seite auszublenden und die Ausführung zugehöriger Skripts zu verhindern.
- Verwenden Sie die Browser-Entwicklerkonsole
Alle unterstützten Desktop-Browser verfügen über integrierte Tools. 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, die lange Zeit in Anspruch nehmen. 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 Knowledge Base.
- Bestimmen Sie die Ursache von Leistungsproblemen
Die folgenden Tipps können helfen, die Ursache von Leistungsproblemen in Portalen zu bestimmen:
- Ermitteln 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 Platform performance.
- 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 Browserentwicklerkonsole, um zu bestimmen, welches Widget die Ursache sein könnte.
- Überprüfen Sie die Tabelle „Protokoll“ [syslog] auf Warnungen im Zusammenhang mit großen JSON-Objekten, die zu Langsamkeit 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 Leistungslücken im Serviceportal und ihre Vermeidung [KB0634588] artikel in der Now Support Knowledge Base.
- Verwenden Sie das Widget-Kontextmenü, um auf Informationen und Optionen zuzugreifen
- STRG + Rechtsklick auf ein Widget für den Zugriff auf Konfigurationsoptionen für das Widget. Es gibt auch Optionen zur Ausgabe des Bereichs und des Bereichsdatenobjekts an die Browser-Konsole. Weitere Informationen zu diesem Menü finden Sie unter Mithilfe von Portal-Widgets.
- Verwenden Sie Skriptmethoden, um die Debugging-Ausgabe zu erfassen
Es stehen verschiedene Methoden zur Verfügung, um Debugging-Informationen in Ihrem Server- und clientseitigen Code auszugeben.
Tabelle : 1. Skript-Debugging-Methoden Methode Verfügbarkeit Beschreibung console.log() Server und Client Protokolliert die Ausgabe an die Browser-Entwicklerkonsole. $sp.log() Server Ausgabe der Protokolle in der Tabelle Service Portal-Protokolleinträge [sp_log], wenn der angemeldete Benutzer die Rolle sp_adminoderAdministratorhat.gs.log() Server Protokolliert die Ausgabe in der Protokolltabelle [syslog]. Hinweis:gs.log erstellt Datensätze in der Syslog-Tabelle. Übermäßiger Gebrauch kann die Leistung beeinträchtigen.gs.Warnung() Server Erzeugt eine Warnstufen-Ausgabe in der Protokolltabelle [syslog]. gs.Error() Server Erzeugt eine Fehlerstufen-Ausgabe in der Protokolltabelle [syslog]. gs.addInfoMessage() Server Zeigt eine grüne Informationsmeldung oben im Browserfenster an. gs.addErrorNachricht() Server Zeigt eine rote Fehlermeldung oben im Browserfenster an. SpUtil.addErrorMessage() Client Zeigt eine Fehlermeldung im Browserfenster an. SpUtil.addInfoMessage() Client Zeigt eine Informationsmeldung 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 ein Skript Zeile für Zeile in der Browser-Entwicklerkonsole durchgehen können. {{data|json}} HTML Dieser Code kann zum HTML-Code einer Seite hinzugefügt werden, um das Datenobjekt auf der Portalseite im JSON-Format auszugeben. - Prüfen Sie, ob Sicherheitsbeschränkungen vorhanden sind
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 in einem Widget nicht zugegriffen werden kann, über die Plattform-UI zugänglich sind. Verwenden Sie den ACL-Debugger, um sicherzustellen, dass Ihre Benutzer den erwarteten Zugriff auf die von Ihren Widgets verwendeten Datensätze haben. Weitere Informationen zum Debugger finden Sie unter ACL-Debugging-Tools.
Servicekatalog Elemente 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 Servicekatalog Widget: Stellen Sie sicher, dass das Element nicht in ausgeblendet ist Serviceportal.
- Überprüfen Sie die zugehörigen Angular Provider
- Stellen Sie sicher, dass die erforderlichen Angular-Provider Widgets zugeordnet sind. Das Entfernen der standardmäßigen Angular Provider, die einem Basissystem-Widget zugeordnet sind, kann zu unerwartetem Verhalten führen. Beispiel: Entfernen Sie die Provider scToggleData oder scBindHtmlCompile Angular aus dem Widget „SC-Katalogelement“.
- Erstellen Sie einen Verweis auf den Widgets-Bereich in der Konsole
- Verwenden Sie den Verweis auf ein Widget, um Bereichsdaten zu bearbeiten, oder führen Sie die Widgets-Client- und -Serverskripts manuell aus. Gehen Sie folgendermaßen vor, um die Referenz zu erstellen.
- 1. Klicken Sie mit der rechten Maustaste auf das Widget, und wählen Sie Prüfen.
- 2. Klicken Sie auf der Registerkarte Elemente der Entwicklungswerkzeuge auf das Element mit dem Attribut widget=
widget. Sie finden einige Elemente über dem aktuell geprüften Element. Dieses Element zeigt das $0-Skriptwerkzeug des Widgets. - Führen Sie in der Javascript-Konsole den folgenden Code aus:
var scopeRef = angular.element($0).scope();
AngularJS $apply()im Anwendungsbereich auszuführen, um Änderungen auf der Seite anzuwenden.scopeRef.data.prop1 = "Pear"; scopeRef.$apply();Führen Sie eine im Widgets-Client-Controller definierte Funktion über Ihre Referenz mithilfe der folgenden Syntax aus.scopeRef.exampleFunction();Verwenden Sie den Befehl Aktualisieren, um das Widgets-Serverskript manuell auszuführen.
scopeRef.server.refresh();