Développement de widgets personnalisés

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 3 minutes de lecture
  • Développez des widgets personnalisés pour les portails à l’aide d’AngularJS, de Bootstrap et de l’API ServiceNow .

    Avant de commencer

    Pour développer des widgets, vous devez avoir de ServiceNow l’expérience en matière d’API pour :
    • Exécuter des requêtes d’enregistrement sur le serveur.
    • Créez et mettez à jour des enregistrements.
    Vous devez avoir de l’expérience avec AngularJS pour :
    • Lier les variables aux contrôleurs clients.
    • Accéder aux objets serveur dans un widget.
    • Rassemblez les entrées de l’utilisateur.

    Si vous le souhaitez, vous pouvez créer sur le modèle Bootstrap en accédant aux composants Bootstrap.

    Parties d’un widget

    Comme les directives Angular, les widgets exécutent un comportement spécifié dans une Portail de services page. Un widget inclut des composants de scripting obligatoires et facultatifs.

    Modèle HTML

    Un composant de widget obligatoire.

    Le modèle HTML nécessite des connaissances d’AngularJS pour afficher et collecter des données. Utilisez le modèle HTML pour :

    • Affichez la vue dynamique qu’un utilisateur voit dans le navigateur à l’aide des informations du modèle et du contrôleur.
    • Liez les variables de script client à votre balisage.
    • Recueillir des données auprès de l’utilisateur final.
    Script client

    Un composant de widget obligatoire.

    Un script client nécessite des connaissances de l’API ServiceNow et d’AngularJS pour créer un contrôleur client. Utilisez le script client pour :

    • Mappez les données du serveur à partir d’objets JavaScript et JSON vers des objets clients.
    • Traiter les données avant de les restituer.
    • Transmettez les données au modèle HTML.
    • Transmettez l’entrée et les données de l’utilisateur au serveur pour traitement.
    Script serveur

    Un composant de widget obligatoire.

    Un script serveur nécessite des connaissances de l’API pour fonctionner avec les données d’enregistrement ServiceNow . Utilisez le script serveur pour :

    • Définissez l’état initial du widget.
    • Envoyez les données d’enregistrement au script client widget à l’aide de la variable de données .
    • Exécuter des requêtes côté serveur.
    Fonction de lien

    Composant de widget facultatif

    La fonction de lien nécessite la connaissance d’AngularJS. Utilisez une fonction de lien pour manipuler directement les DOM.

    Schéma de l’option

    Composant de widget facultatif

    Permet à un Portail de services administrateur de configurer un widget. Utilisez le schéma d’options pour :

    • Spécifiez les paramètres d’un widget.
    • Autorisez les utilisateurs administrateurs à définir les options d’instance pour une instance de widget.
    • Développez des widgets flexibles et réutilisables.
    Fournisseurs d’angle

    Composant de widget facultatif

    Les fournisseurs d’angle nécessitent une connaissance d’AngularJS. Utilisez les fournisseurs d’angle pour :

    • Synchronisez les widgets lors du changement d’enregistrements ou de filtres.
    • Partagez le contexte entre les widgets.
    • Maintenir et conserver l’état.
    • Créez des comportements et des composants d’interface utilisateur réutilisables, puis injectez-les dans plusieurs widgets.
    Dépendances

    Composant de widget facultatif

    Une dépendance de widget est une ressource externe utilisée par votre widget, comme des fichiers JavaScript ou CSS.

    Objets globaux dans les widgets

    Lorsqu’un widget commence à s’afficher pour la première fois sur une page, le script serveur s’exécute en premier et accède à trois objets globaux : entrée, options et données. Étant donné que la variable d’entrée est un objet de données envoyé par le script client, cette variable n’est pas définie lors de sa première initialisation.

    Variables disponibles dans les scripts serveur et client globaux

    Lorsqu’un widget est instancié pour la première fois, le script serveur :

    1. Initialise un objet de données vide.
    2. Initialise l’objet d’entrée avec les données envoyées par le contrôleur client ou l’objet options avec les données utilisées pour initialiser le widget.
    3. Envoie l’objet de données au contrôleur client au format JSON.

    Le script client :

    1. Accède à l’objet de données du serveur à l’aide de c.data.

      Remarque :
      Par défaut, les widgets utilisent la variable c pour représenter l’instance du contrôleur en utilisant le contrôleur comme syntaxe. Vous pouvez modifier cette variable lors de la création ou du clonage de widgets.
    2. Utilise server.update() pour publier les modifications dans le modèle de données. Cette méthode met à jour le script serveur à l’aide de l’objet d’entrée .

      Remarque :
      Après avoir appelé server.update(), l’objet de données du script client est automatiquement écrasé par l’objet de données du script serveur.
    3. Utilise c.options pour accéder aux valeurs utilisées pour appeler le widget sur le serveur. Cet objet est en lecture seule.

    Utilisation de l’éditeur de widget

    Lorsque vous créez un widget, un enregistrement est créé dans la table sp_widget. Toutefois, vous pouvez utiliser l’éditeur de widget dans Portail de services Configuration comme environnement de script. L’éditeur de widget est une application pleine page similaire à un IDE. Vous pouvez afficher les parties du widget que vous souhaitez modifier et masquer le reste, tout en prévisualisant vos modifications en temps réel.

    Éditeur de widget avec le widget de calculatrice affichant des exemples de script pour le modèle HTML, CSS, le script client et le script serveur