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 liés au widget que vous dépannez afin d’isoler les parties de la page susceptibles de provoquer des erreurs ou un comportement inattendu. 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 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 en savoir plus, consultez l’article Comment identifier un widget lent sur une page [KB0744521] de la base de connaissances Now Support.
- Déterminer la cause des problèmes de performance
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é à 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 de gros fichiers de police ou d’image 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 voir s’il y a des avertissements liés aux objets JSON volumineux causant une lenteur. Si ces avertissements apparaissent avec l’action qui provoque une lenteur, cela indique qu’un widget utilise trop de données.
Pour en savoir plus, 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 d’afficher le champ d’application et l’objet de données du champ d’application dans la console du navigateur. Pour plus d’informations 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 afficher 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 les résultats dans la console de développement 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 sp_adminouadministrateur.gs.log() Serveur Journalise la sortie dans 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 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 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 vos 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 Les éléments peuvent également être limités pour ne pas apparaître dans Portail de services. Si vous obtenez un message d’erreur Vous n’avez pas l’autorisation requise ou si l’enregistrement n’est pas valide pour un Catalogue de services widget, vérifiez que l’élément n’est pas masqué à l’aide 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 angulaires scToggleData ou scBindHtmlCompile du widget Élément de catalogue SC.
- Créer une référence au champ d’application 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();
AngularJS $apply()sur le périmètre 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();