Créer des applications dans le code source
Créez et développez des applications personnalisées en code source à l’aide d’outils et de processus de développement familiers.
Vue d’ensemble du développement dans le code source
Vous pouvez créer des applications incluses dans le périmètre dans le code à l’aide du ServiceNow IDE ou localement dans Visual Studio Code le bureau avec le ServiceNow AI PlatformServiceNow SDK.
Dans l’un ou l’autre environnement de développement, vous utilisez ServiceNow Fluent, un langage de programmation spécifique à un domaine, pour définir les métadonnées qui composent les applications. ServiceNow Fluent inclut des API permettant de définir les différents types de métadonnées.
Avec le ou ServiceNow SDK, vous pouvez également créer des modules JavaScript et utiliser des bibliothèques tierces dans votre application pour optimiser la ServiceNow IDE réutilisation du code dans les scripts d’une application incluse dans le périmètre.
Le développement et la maintenance d’applications dans le code source vous permettent de travailler dans des environnements de développement familiers, de créer et de modifier des applications complexes, de gérer plus facilement le code dans le contrôle de source et de détecter les erreurs au moment de la conception.
|
ServiceNow IDE |
Comparaison de l’et ServiceNow IDE de l' ServiceNow SDK
| Fonctionnalité | ServiceNow IDE | ServiceNow SDK |
|---|---|---|
| Environnement de développement | Instance en ligne ServiceNow | Développement local et possibilité de travailler hors ligne |
| Interface utilisateur | IDE basé sur Visual Studio Code pour le Web | Visual Studio Code Ordinateur de bureau |
| Collaboration | Affichez les modifications de n’importe quel utilisateur en temps réel dans le code ou les interfaces utilisateur intégrées ServiceNow AI Platform à partir de l’explorateur de métadonnées. Collaborez avec d’autres développeurs sur des applications dans le contrôle de source. |
Téléchargez les changements à partir d’une instance et installez les changements locaux sur une instance à l’aide de l’interface de ligne de ServiceNow SDK commande afin de collaborer avec d’autres utilisateurs. Collaborez avec d’autres développeurs sur des applications dans le contrôle de source. |
| Contrôle de source | Prend en charge la fonctionnalité Git la plus courante et s’intègre à un fournisseur Git de votre choix. Une branche simultanée par référentiel et par instance (ou bac à sable pour développeur). |
Prise en charge complète |
| Conversion de l’application | Prise en charge de la conversion des applications incluses dans le périmètre existantes non créées avec le ServiceNow IDE ou ServiceNow SDK. | Prise en charge de la conversion des applications incluses dans le périmètre existantes non créées avec le ServiceNow IDE ou ServiceNow SDK. |
| ServiceNow Fluent | Prise en charge complète Le ServiceNow Fluent serveur de langue est inclus dans le fichier ServiceNow IDE. |
Prise en charge complète Le ServiceNow Fluent serveur de langues peut être installé à partir de la place de marché des extensions Visual Studio Code . |
| Modules JavaScript et bibliothèques tierces | Prise en charge complète | Prise en charge complète |
| Now Assist pour code | Prise en charge de la saisie semi-automatique du code pour les scripts. Pour en savoir plus sur l’activation, reportez-vous à la section Now Assist for Code. |
Non pris en charge |
| Agent de version | Prise en charge totale. L’agent de version est accessible à partir d’un panneau de messagerie instantanée dans le ServiceNow IDE. Pour en savoir plus sur l’activation, reportez-vous à la section ../../build-agent/concept/build-agent.html. |
Non pris en charge |
Structure de l’application
Applications incluses dans le périmètre créées avec le ou ServiceNow SDK incluent des fichiers de code source et des ServiceNow IDE fichiers XML de métadonnées. Les fichiers package.json et now.config.json définissent la structure de l’application, qui est similaire à celle des applications Node.js ou des packages Node Package Manager (npm).
Par défaut, les applications incluent les répertoires et fichiers suivants. Vous pouvez modifier certains aspects de la structure de l’application en fonction de vos besoins dans le fichier now.config.json .
- .vscode
- Répertoire contenant les extensions recommandées Visual Studio Code .
- dist.
- Répertoire contenant les artefacts de version pour l’empaquetage. Ce répertoire comprend les sous-répertoires suivants :
- app : répertoire contenant les fichiers XML de métadonnées créés.
- static : répertoire contenant les fichiers d’actifs statiques générés.
- metadata
-
Répertoire contenant les métadonnées d’application (XML) de l’application, telles que les schémas de table et les règles métier, organisés dans la même structure de répertoire que les applications existantes ServiceNow .
Remarque :Les métadonnées d’application ne doivent pas être modifiées à partir des fichiers XML. Modifier les métadonnées d’application dans le code source ou dans le ServiceNow AI Platformfichier . - node_modules
- Répertoire contenant les modules Node.js tiers dont dépend votre application.
- src
- Répertoire contenant le code source de votre application. Ce répertoire comprend les sous-répertoires suivants :
- client : répertoire contenant les fichiers côté client pour le développement d’interfaces utilisateur.
- fluent : répertoire contenant ServiceNow Fluent du code dans .now.ts fichiers. Le sous-répertoire généré contient les fichiers d’application convertis en ServiceNow Fluent.
- server : répertoire contenant le code du module JavaScript dans les fichiers .js ou .ts .
- target
- Répertoire contenant un package installable (fichier .zip ) à charger dans une instance.
- .eslintrc.json
- Fichier contenant la configuration ESLint. ESLint permet d’identifier et de corriger les problèmes dans le code de l’application.
- .gitignore
- Fichier contenant une liste de répertoires ou de fichiers que Git doit ignorer. Ces fichiers ne sont pas suivis dans le contrôle de source.
- now.config.json
- Fichier contenant la configuration de l’application ServiceNow . Le fichier now.config.json doit se trouver dans le répertoire de base d’une application.Vous pouvez configurer la structure des répertoires d’une application en ajoutant les paramètres suivants. Par exemple :
{ "scope": "x_snc_example_app", "scopeId": "2f8400eb07426110f736e28f69d3017a", "name": "ExampleApp", "dependencies": { "global": { "tables": ["incident"], "roles": ["admin"], }, "x_custom": { "tables": ["custom_table"] } }, "metadataDir": "metadata", "fluentDir": "src/fluent", "generatedDir": "generated", "serverModulesDir": "src/server", "clientDir": "src/client", "appOutputDir": "dist/app", "staticContentDir": "dist/static", "packOutputDir": "target", "modulePaths": { "src/server/*.ts": "dist/server/*.js", }, "staticContentPaths": { "src/client/*.html": "dist/static/*.html", }, "ignoreTransformTableList": ["ua_table_licensing_config", "sys_embedded_help_role"], "taxonomy": { "mapping": { "sys_script": "scripts/server/rules", "custom_table": "my-custom-folder/my-nested-folder" }, "fallbackFolderName": "unclassified" } }Tableau 1. Paramètres now.config.json pris en charge Paramètre Description dépendances Les éléments d’un autre périmètre de l’application dont dépend votre application. Vous devez spécifier le périmètre de l’application ainsi que le type de dépendance et les noms ou sys_ids. "dependencies": { "<scope>": { "<type>": ["<sys_id or name>"], ... }, ... }Pour plus d'informations, consultez Télécharger ServiceNow Fluent les dépendances d’applications.
répertoire metadataDir Répertoire contenant les métadonnées de l’application sous forme de fichiers XML. Par défaut : métadonnées
fluentDir Répertoire contenant ServiceNow Fluent les fichiers (.now.ts) qui définissent les métadonnées d’application dans le code source. Par défaut : src/fluent
répertoire generatedDir Répertoire contenant les fichiers générés ServiceNow Fluent , y compris les métadonnées d’application existantes converties en ServiceNow Fluent code. Ce répertoire est relatif au répertoire défini avec le fluentDir paramètre. Par défaut : généré
répertoire serverModulesDir Répertoire contenant les fichiers JavaScript ou TypeScript à intégrer dans les modules JavaScript à utiliser dans des scripts côté serveur. Par défaut : src/server
répertoire clientDir Répertoire contenant les fichiers côté client pour le développement d’interfaces utilisateur avec React. Valeur par défaut : src/client
appOutputDir Répertoire dans lequel afficher les artefacts de version pour l’empaquetage. Les commandes pack et install font référence à ce répertoire, regroupent les artefacts.
Par défaut : dist/app
staticContentDir Répertoire de sortie des fichiers d’actifs statiques utilisés pour développer des interfaces utilisateur. Par défaut : dist/static
packOutputDir Répertoire permettant de générer le package installable (fichier .zip ) lors de la création de l’application. La commande install fait référence à ce répertoire pour installer le package. Par défaut : cible
serverModulesIncludePatterns Liste des schémas de fichier à inclure lors de la création de modules JavaScript. Par défaut :[ "**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "**/*.cts", "**/*.cjs", "**/*.mts", "**/*.mjs", "**/*.json" ]serverModulesExcludePatterns Une liste des schémas de fichier à exclure lors de la création de modules JavaScript. Par défaut :[ "**/*.test.ts", "**/*.test.js", "**/*.d.ts" ]Chemins d’accès des modules Mappage des fichiers sources du module à leurs fichiers de sortie équivalents si vous utilisez une étape de transpilation personnalisée avant de créer l’application. Pour plus d'informations, consultez L’utilisation de TypeScript dans les modules JavaScript avec l’appli ServiceNow SDK. Avertissement :Vous ne pouvez pas utiliser ce paramètre ni le paramètretsconfigPath. La configuration des deux entraîne une erreur.staticContentPaths Mappage des fichiers sources côté client aux chemins de sortie des fichiers d’actifs statiques. tsconfigPath Chemin d’accès à un fichier tsconfig.json avec des options personnalisées pour la transpilation de TypeScript en JavaScript pendant le processus de génération. La spécification d’un tsconfigPathgénère des résultats de diagnostic à partir de TypeScript à l’aide du fichier tsconfig.json .Avertissement :Vous ne pouvez pas utiliser ce paramètre ni le paramètremodulePaths. La configuration des deux entraîne une erreur.Par défaut : .
ignoreTransformTableList Une liste de tables à ignorer lors de la transformation des métadonnées d’application en code source. tableOutputFormat Type d’artefacts de version pour les métadonnées de table XML générées à partir du ServiceNow Fluent code. Valeurs valides :- bootstrap : le processus de construction génère un fichier XML d’amorce avec l’élément
racine <database>pour la table, les fichiers XML d’étiquette de champ [sys_documentation], les fichiers XML de configuration de la gestion des licences [ua_table_licensing_config] et les fichiers XML à numérotation automatique [sys_number]. - component : le processus de build génère des fichiers XML pour chaque composant de l’API Table.
Valeur par défaut : amorce
Taxonomie Configuration d’organisation des fichiers générés ServiceNow Fluent , qui mappe les noms de tables aux répertoires et définit un répertoire de secours. La configuration de taxonomie par défaut utilise ServiceNow des classifications de table standard pour ajouter les fichiers générés ServiceNow Fluent dans une structure de répertoire logique au sein du répertoire fluent/généré lorsque les métadonnées sont initialement transformées en ServiceNow Fluent code. Par exemple : - Les règles métier [sys_script] sont ajoutées au répertoire fluent/generated/server-development/business-rule .
- Les includes de script [sys_script_include] sont ajoutés au répertoire fluent/generated/server-development/script-include .
Vous pouvez remplacer les mappages par défaut ou en configurer des supplémentaires. Dans l’exemple suivant, la configuration remplace le répertoire par défaut pour les règles métier [sys_script] et le dossier de secours, et configure un mappage supplémentaire pour les métadonnées d’une table personnalisée.
"taxonomy": { "mapping": { "sys_script": "scripts/server/rules", "custom_table": "my-custom-folder/my-nested-folder" }, "fallbackFolderName": "unclassified" }- mappage : objet qui mappe les noms de table aux répertoires. Les chemins d’accès aux répertoires sont relatifs au répertoire configuré avec le generatedDir paramètre et doivent inclure uniquement des lettres minuscules, des chiffres, des tirets, des traits de soulignement et des barres obliques vers des sous-répertoires distincts.
- fallbackFolderName : nom d’un répertoire à utiliser pour les tables qui n’ont pas de mappage par défaut ou personnalisé configuré. Dans ce répertoire, ServiceNow Fluent les fichiers sont ajoutés à des sous-répertoires nommés d’après la table, tels que src/fluent/generated/other/x-unmapped-table/.
Par défaut : les mappages de taxonomie par défaut sont définis pour toutes les tables standard ServiceNow et sont automatiquement appliqués lorsqu’aucune configuration personnalisée n’est définie dans le
now.config.jsond’une application. La valeur par défaut est fallbackFolderNameautre. - bootstrap : le processus de construction génère un fichier XML d’amorce avec l’élément
- now.prebuild.mjs
- Fichier mis à jour automatiquement contenant des informations complètes sur les dépendances et leurs versions. Ce fichier n’est disponible qu’avec le fichier ServiceNow SDK.
- package-lock.json
- Fichier mis à jour automatiquement contenant des informations complètes sur les dépendances et leurs versions. Ce fichier n’est disponible qu’avec le fichier ServiceNow SDK.
- package.json
-
Fichier contenant des informations sur votre application et les dépendances de module personnalisé ou tiers. Le fichier package.json doit se trouver dans le répertoire de base d’une application. Sur une instance, le chemin d’accès du package.json est spécifié dans le champ JSON du package de l’enregistrement d’application personnalisée [sys_app] au format <scope>/<package-name>/<version>/package.json.
Applications et fonctionnalités connexes
- API JavaScript
- Utilisez les API JavaScript dans les scripts que vous écrivez pour modifier les fonctionnalités des applications ou lorsque vous créez des applications.