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 sans rapport avec le widget que vous dépannez pour isoler les parties de la page susceptibles d’être à l’origine d’erreurs ou de comportements inattendus. Définissez le champ Actif sur faux dans un enregistrement de widget pour masquer le widget sur la page et empêcher l’exécution des scripts associés.
- Utiliser la console de développement 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 la console et les erreurs levées par JavaScript côté client. La plupart des outils de journalisation détaillés ci-dessous affichent des informations sur 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 dont la résolution prend beaucoup de temps. 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 performances
Les conseils suivants peuvent aider à déterminer la cause des problèmes de performances dans les portails :
- Déterminez si le problème est lié au portail ou à l’ensemble de la plateforme en comparant les fonctionnalités des deux interfaces. Pour plus d’informations sur les problèmes de performances de la plate-forme, reportez-vous à la section Platform performance.
- 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 image ou de police volumineux peuvent en être la cause. Si une page spécifique est lente, utilisez la console de développement du navigateur pour déterminer quel widget pourrait en être la cause.
- Consultez la table Journal [syslog] pour connaître les avertissements liés aux objets JSON volumineux causant des lenteurs. Si ces avertissements s’affichent avec l’action qui provoque la lenteur, cela indique qu’un widget utilise trop de données.
Pour plus d’informations, consultez l’article Les six pièges de performance courants 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 à ses options de configuration. 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 en savoir plus sur ce menu, reportez-vous à la section Utilisation des widgets du portail.
- Utiliser des méthodes de script pour capturer la sortie de débogage
Plusieurs méthodes sont disponibles pour générer des informations de débogage dans votre code serveur et côté 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 Consigne la sortie dans la table Entrées de journal du portail de services [sp_log], lorsque l’utilisateur connecté a le rôle d’administrateur ou de sp_admin.gs.log() Serveur Consigne la sortie dans la table Journal [syslog]. Remarque :gs.log crée des enregistrements dans 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 après 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 des règles d’accès ou des 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 le sont à l’aide de l’interface utilisateur de la plateforme. Utilisez le débogueur d’ACL pour vous assurer que vos utilisateurs disposent de 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 Les éléments peuvent également être restreints pour ne pas apparaître 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 d’angle par défaut associés à un widget de système de base peut provoquer un comportement inattendu. Par exemple, la suppression des fournisseurs d’angle scToggleData ou scBindHtmlCompile du widget d’é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 du champ d’application ou exécuter manuellement les scripts client et serveur des widgets. Procédez comme suit pour créer la référence.
- 1. Cliquez avec le bouton droit 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();
AngularJS $apply()sur le champ d’application pour appliquer les 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 serveur de widgets.
scopeRef.server.refresh();