Créer des applications dans le code source

  • Rversion finale: Zurich
  • Mis à jour 30 janv. 2025
  • 9 minutes de lecture
  • 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.

    Remarque :
    Les ServiceNow IDE et ServiceNow SDK ne prennent actuellement pas en charge le champ d’application global ou les applications globales.

    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).

    Figure 1. Structure par défaut d’une application créée dans le ServiceNow IDE
    Structure d’une application créée dans le ServiceNow IDE

    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ètre tsconfigPath . 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 tsconfigPath gé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ètre modulePaths . 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.json d’une application. La valeur par défaut est fallbackFolderNameautre.

    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.