Guide de dépannage des widgets
Utilisez les outils suivants pour examiner et résoudre les comportements inattendus dans vos widgets personnalisés Portail de services .
- Réduire la complexité
- Désactivez les widgets non associés au widget que vous dépannez afin d’isoler les parties de la page susceptibles d’être à l’origine d’erreurs ou d’un comportement inattendu. Définissez le champ actif sur faux sur un enregistrement de widget pour masquer le widget sur la page et empêcher l’exécution des scripts associés.
- Utiliser la console développeur du navigateur
Tous les navigateurs de bureau pris en charge disposent d’outils de développement intégrés. Accédez aux outils de développement de votre navigateur pour afficher les messages de console et les erreurs générés par JavaScript côté client. La plupart des outils de journalisation détaillés ci-dessous génèrent des informations dans cette console.
Si vous rencontrez des problèmes de performances, vérifiez la console JavaScript pour voir s’il y a des erreurs, un grand nombre de requêtes HTTP ou des requêtes HTTP qui prennent beaucoup de temps à résoudre. Vous pouvez utiliser la console pour identifier les widgets qui se chargent lentement. Pour plus d’informations, consultez l’article Comment identifier un widget lent sur une page [KB0744521] dans la base de connaissances Now Support.
- Déterminer la cause des problèmes de performance
Les conseils suivants peuvent vous aider à déterminer la cause des problèmes de performances dans les portails :
- Déterminez si le problème est lié à l’ensemble du portail ou de la plateforme en comparant les fonctionnalités des deux interfaces. Pour plus d’informations sur les problèmes de performances de la plateforme, consultez Performances de la plateforme.
- Déterminez si le problème affecte l’ensemble du portail ou des pages spécifiques. Si toutes les pages du portail sont lentes, vérifiez si des éléments de menu scriptés dans le menu d’en-tête ou des thèmes avec des fichiers de police ou d’image volumineux peuvent en être la cause. Si une page spécifique est lente, utilisez la console développeur du navigateur pour déterminer quel widget pourrait en être la cause.
- Consultez la table Journal [syslog] pour afficher les avertissements liés aux objets JSON volumineux entraînant une lenteur. Si ces avertissements s’affichent avec l’action qui entraîne une lenteur, cela indique qu’un widget utilise trop de données.
Pour plus d’informations, consultez l’article Six pièges courants des performances dans Service Portal et comment les éviter [KB0634588] dans la base de connaissances Now Support.
- Utiliser le menu contextuel du widget pour accéder aux informations et aux options
- CTRL+clic droit sur un widget pour accéder aux options de configuration du widget. Il existe également des options permettant de générer le champ d’application et l’objet de données du champ d’application dans la console du navigateur. Pour plus de détails sur ce menu, reportez-vous à la section Utiliser les widgets du portail.
- Utiliser des méthodes de script pour capturer la sortie du débogage
Plusieurs méthodes sont disponibles pour générer des informations de débogage dans votre code côté serveur et client.
Tableau 1. Méthodes de débogage scriptées Méthode Disponibilité Description console.log() Serveur et client Consigne la sortie dans la console développeur du navigateur. $sp.log() Serveur Génère des journaux dans la table Entrées de journal du Portail de services [sp_log], lorsque l’utilisateur connecté dispose du rôle sp_adminouadministrateur.gs.log() Serveur Sortie des journaux vers la table Journal [syslog]. Remarque :gs.log crée des enregistrements sur la table syslog. Une utilisation excessive peut nuire aux performances.gs.warn() Serveur Génère une sortie de niveau d’avertissement dans la table Journal [syslog]. gs.error() Serveur Génère une sortie de niveau d’erreur dans la table Journal [syslog]. gs.addInfoMessage() Serveur Affiche un message d’information vert en haut de la fenêtre du navigateur. gs.addErrorMessage() Serveur Affiche un message d’erreur rouge en haut de la fenêtre du navigateur. spUtil.addErrorMessage() Client Affiche un message d’erreur dans la fenêtre du navigateur. spUtil.addInfoMessage() Client Affiche un message d’information dans la fenêtre du navigateur. spUtil.addTrivialMessage() Client Affiche un message qui disparaît automatiquement au bout d’un court laps de temps. Débogueur Client Définit un point d’arrêt dans les navigateurs Chrome et Firefox, vous permettant de parcourir un script ligne par ligne dans la console développeur du navigateur. {{données|json}} HTML Ce code peut être ajouté au code HTML d’une page pour générer l’objet de données sur la page du portail au format JSON. - Vérifier les restrictions de sécurité
Souvent, les problèmes d’affichage des widgets sont causés par les règles d’accès ou les critères d’utilisateur plutôt que par le script du widget. Vérifiez les critères d’utilisateur pour les enregistrements et vérifiez que tous les enregistrements qui ne sont pas accessibles dans un widget sont accessibles à l’aide de l’interface utilisateur de la plateforme. Utilisez le débogueur d’ACL pour vous assurer que les utilisateurs ont l’accès attendu aux enregistrements utilisés par vos widgets. Pour plus de détails sur le débogueur, consultez Outils de débogage d’ACL.
Catalogue de services Il est également possible de limiter les éléments pour qu’ils n’apparaissent pas dans Portail de services. Si vous obtenez un message d’erreur Vous n’êtes pas autorisé ou L’enregistrement n’est pas valide pour un Catalogue de services widget, vérifiez que l’élément n’est pas masqué de Portail de services.
- Vérifier les fournisseurs d’angle associés
- Vérifiez que les fournisseurs d’angle nécessaires sont associés aux widgets. La suppression des fournisseurs Angular par défaut associés à un widget de système de base peut provoquer un comportement inattendu. Par exemple, la suppression des fournisseurs angulaires scToggleData ou scBindHtmlCompile du widget Élément de catalogue SC.
- Créer une référence au périmètre des widgets dans la console
- Utilisez la référence à un widget pour manipuler les données de champ d’application ou exécuter manuellement les scripts client et serveur des widgets. Pour créer la référence, procédez comme suit.
- 1. Cliquez avec le bouton droit de la souris sur le widget et choisissez Inspecter.
- 2. Dans l’onglet Éléments des outils de développement, cliquez pour mettre en surbrillance l’élément avec l’attribut widget=
widget. Vous pouvez le trouver quelques éléments au-dessus de l’élément actuellement inspecté. Cet élément pointe l’outil de script $0 vers le widget. - Dans la console Javascript, exécutez le code suivant :
var scopeRef = angular.element($0).scope();
d’exécuter AngularJS $apply()sur le périmètre pour appliquer des modifications à la page.scopeRef.data.prop1 = "Pear"; scopeRef.$apply();Exécutez n’importe quelle fonction définie dans le contrôleur client widgets à partir de votre référence à l’aide de la syntaxe ci-dessous.scopeRef.exampleFunction();Utilisez la commande refresh pour exécuter manuellement le script de serveur de widgets.
scopeRef.server.refresh();