API de la page de l’interface utilisateur : ServiceNow Fluent
L’API de page d’interface utilisateur définit des pages d’interface utilisateur personnalisées [sys_ui_page] qui affichent des formulaires, des boîtes de dialogue, des listes et d’autres composants d’interface utilisateur.
Une page d’interface utilisateur s’affiche sous la forme d’une page Web et peut être ajoutée à un widget pour être utilisée dans des tableaux de bord. Pour en savoir plus sur les pages de l’interface utilisateur, reportez-vous à la section UI pages.
Vous pouvez développer une application React simple avec l’API UI Page. Dans le répertoire src/client , ajoutez des fichiers de contenu statique qui définissent le code HTML, le script client et le style de la page. À partir de l’objet UiPage , consultez le point d’entrée HTML (index.html) de la page. Pour plus d'informations, consultez Développement de l’interface utilisateur avec React.
Objet UiPage
Créez une page d’interface utilisateur [sys_ui_page] pour une interface utilisateur personnalisée.
| Nom | Type | Description |
|---|---|---|
| $id | Chaîne ou numéro | Requis. ID unique pour l’objet de métadonnées. Lorsque vous créez l’application, cet ID est haché en une sys_id unique. Pour en savoir plus, consultez ServiceNow Fluent Constructions linguistiques. Format : |
| endpoint | Chaîne | Requis. Point de terminaison permettant d’accéder à la page Web. La valeur du point de terminaison ne peut pas contenir d’espaces. Format : |
| description | Chaîne | Description de l’interface utilisateur et de son objectif. |
| direct | Booléen | Marqueur indiquant s’il faut omettre le HTML, CSS et JavaScript standard pour une page d’interface utilisateur. Pour les pages de l’interface utilisateur React, définissez cette propriété sur vrai.Valeurs valides :
Valeur par défaut : false |
| HTML | Chaîne | Le code HTML du corps qui définit ce qui est rendu lorsque la page est affichée. Il peut contenir du XHTML statique, du contenu généré dynamiquement défini comme Jelly ou des includes de script d’appel et des macros d’interface utilisateur. Cette propriété prend en charge un alias pour importer un fichier index.html pour le développement React, une référence à un autre fichier dans l’application qui contient du HTML ou du JavaScript en ligne. Remarque : Avec le développement React et le HTML importé, la propriété html de l’objet UiPage ne prend en charge que la synchronisation unidirectionnelle. Après avoir défini le code HTML d’une page d’interface utilisateur dans le code source, si le code HTML est modifié en dehors du code source, ces changements ne sont pas synchronisés et reflétés dans le code source. Format :
|
| catégorie | Chaîne | Type de page d’interface utilisateur. Valeurs valides :
|
| clientScript | Script | Un script qui s’exécute dans le navigateur, comme les fonctions appelées par des boutons. Ce script gère tout traitement côté client requis, comme la mise au point d’un champ ou d’autres fonctionnalités DHTML interactives après le chargement d’une page. Cette propriété prend en charge le JavaScript en ligne ou une référence à un autre fichier dans l’application qui contient un script. Les scripts clients de la page d’interface utilisateur sont déployés dans le navigateur au sein d’une Format :
|
| processingScript | Script | Script qui s’exécute sur le serveur lorsque la page est soumise, ce qui est utile si votre page comporte un formulaire défini avec les balises <g :ui_form/> ou <g :form/> . Cette propriété prend en charge une fonction d’un module JavaScript, une référence à un autre fichier dans l’application qui contient un script ou JavaScript en ligne.Format :
|
| $meta | Objet | Métadonnées pour les métadonnées de l’application. Avec la propriété installMethod , vous pouvez mapper les métadonnées d’application à un répertoire de sortie qui ne se charge que dans des circonstances spécifiques. Valeurs valides pour installMethod :
|
Dans cet exemple de développement d’interface utilisateur avec React, le code HTML de la page est importé du fichier index.html dans le répertoire src/client .
//incident-manager.now.ts
import '@servicenow/sdk/global'
import { UiPage } from '@servicenow/sdk/core'
import incidentPage from '../../client/index.html'
UiPage({
$id: Now.ID['incident-manager-page'],
endpoint: '<scope>_incident_manager.do',
description: 'Incident Response Manager UI Page',
category: 'general',
html: incidentPage,
direct: true,
})
Dans le fichier index.html , la <![CDATA[<script>balise ]]> fait référence au fichier main.jsx dans le répertoire src/client , qui contient le code du composant.
//index.html
<html>
<head>
<title>Incident Response Manager</title>
<!-- Initialize globals and Include ServiceNow's required scripts -->
<sdk:now-ux-globals></sdk:now-ux-globals>
<!-- Include your React entry point -->
<script src="./main.jsx" type="module"></script>
</head>
<body>
<div id="root"></div>
</body>
</html>