Anwendungen werden im Quellcode erstellt
Erstellen und entwickeln Sie anwenderdefinierte Anwendungen im Quellcode mit vertrauten Entwicklungstools und -Prozessen.
Übersicht über die Entwicklung in Quellcode
Sie können bereichsbezogene Anwendungen in Code mit erstellen ServiceNow IDEAuf ServiceNow AI PlatformOder lokal in Visual Studio CodeDesktop mit ServiceNow SDK.
In einer der Entwicklungsumgebungen verwenden Sie ServiceNow Fluent, Eine domänenspezifische Programmiersprache, um die Metadaten zu definieren, aus denen Anwendungen bestehen. ServiceNow FluentEnthält APIs zum Definieren der verschiedenen Metadatentypen.
Mit ServiceNow IDEOder ServiceNow SDK, Sie können auch JavaScript-Module erstellen und Bibliotheken von Drittanbietern in Ihrer Anwendung verwenden, um die Wiederverwendung von Code in Skripts innerhalb einer bereichsbezogenen Anwendung zu optimieren.
Durch die Entwicklung und Wartung von Anwendungen im Quellcode können Sie in vertrauten Entwicklungsumgebungen arbeiten, komplexe Anwendungen erstellen und ändern, Code in der Quellcodeverwaltung einfacher verwalten und Fehler beim Build erkennen.
|
ServiceNow IDE |
Vergleich von ServiceNow IDEUnd ServiceNow SDK
| Funktion | ServiceNow IDE | ServiceNow SDK |
|---|---|---|
| Entwicklungsumgebung | Online ServiceNowInstanz | Lokale Entwicklung und die Fähigkeit, offline zu arbeiten |
| Anwenderoberfläche | IDE basiert auf Visual Studio CodeFür das Web | Visual Studio Code Desktop |
| Zusammenarbeit | Zeigen Sie Änderungen von Anwendern in Echtzeit als Code oder eingebettet an ServiceNow AI PlatformAnwenderoberflächen aus dem Metadaten-Explorer. Arbeiten Sie mit anderen Entwicklern an Anwendungen in der Quellcodeverwaltung zusammen. |
Laden Sie Changes aus einer Instanz herunter, und installieren Sie lokale Changes mit in einer Instanz ServiceNow SDKCLI zur Zusammenarbeit mit anderen Anwendern. Arbeiten Sie mit anderen Entwicklern an Anwendungen in der Quellcodeverwaltung zusammen. |
| Quellcodeverwaltung | Unterstützt die gängigste Git-Funktionalität und die Integration in einen Git-Anbieter Ihrer Wahl. Eine gleichzeitige Verzweigung pro Repository pro Instanz (Oder Entwickler-Sandbox) . |
Vollständiger Support |
| Anwendungskonvertierung | Unterstützung für die Konvertierung vorhandener bereichsbezogener Anwendungen, die nicht mit erstellt wurden ServiceNow IDEOder ServiceNow SDK. | Unterstützung für die Konvertierung vorhandener bereichsbezogener Anwendungen, die nicht mit erstellt wurden ServiceNow IDEOder ServiceNow SDK. |
| ServiceNow Fluent | Vollständiger Support Die ServiceNow FluentSprachserver ist in enthalten ServiceNow IDE. |
Vollständiger Support Die ServiceNow FluentSprachserver kann über installiert werden Visual Studio CodeErweiterungs-Marktplatz. |
| JavaScript-Module und Drittanbieterbibliotheken | Vollständiger Support | Vollständiger Support |
| Now Assist für Code | Unterstützung der automatischen Codevervollständigung für Skripts. Informationen zur Aktivierung finden Sie unter Now Assist for Code. |
Nicht unterstützt |
| Build-Agent | Vollständiger Support. Der Zugriff auf den Build-Agent erfolgt über einen Chat-Bereich in ServiceNow IDE. Informationen zur Aktivierung finden Sie unter ../../build-agent/concept/build-agent.html. |
Nicht unterstützt |
Anwendungsstruktur
Anwenderdefinierte bereichsbezogene Anwendungen, die mit erstellt wurden ServiceNow IDEOder ServiceNow SDKQuellcodedateien und Metadaten-XML-Dateien einschließen. Die Package.JSON Und Now.config.JSON Dateien definieren die Anwendungsstruktur, die der von Node.js-Anwendungen oder Node-Paketmanager (NPM)-Paketen ähnelt.
Standardmäßig enthalten Anwendungen die folgenden Verzeichnisse und Dateien. Sie können bestimmte Aspekte der Anwendungsstruktur entsprechend Ihren Anforderungen in ändern Now.config.JSON Datei.
- .Vscode
- Verzeichnis mit „Empfohlen“ Visual Studio CodeErweiterungen.
- verteilung
- Verzeichnis, das die Build-Artefakte für das Packaging enthält. Dieses Verzeichnis enthält die folgenden Unterverzeichnisse:
- App : Verzeichnis mit den erstellten Metadaten-XML-Dateien.
- Statisch : Verzeichnis mit den erstellten statischen Asset-Dateien.
- Metadaten
-
Verzeichnis, das die Anwendungsmetadaten (XML) der Anwendung enthält, z. B. Tabellenschemata und Business-Regeln, das in der gleichen Verzeichnisstruktur wie vorhanden organisiert ist ServiceNowAnwendungen.
Hinweis:Anwendungsmetadaten dürfen nicht aus den XML-Dateien bearbeitet werden. Bearbeiten Sie Anwendungsmetadaten im Quellcode oder auf ServiceNow AI Platform. - Node_modules
- Verzeichnis mit den Knoten-js-Modulen der Drittpartei, von denen Ihre Anwendung abhängt.
- src
- Verzeichnis, das den Quellcode Ihrer Anwendung enthält. Dieses Verzeichnis enthält die folgenden Unterverzeichnisse:
- Client : Verzeichnis mit den clientseitigen Dateien für die Entwicklung von Anwenderoberflächen.
- Fluent : Verzeichnis mit ServiceNow FluentCode in .Jetzt.TS Dateien. Die Generiert Unterverzeichnis enthält die in konvertierten Anwendungsdateien ServiceNow Fluent.
- Server : Verzeichnis mit JavaScript-Modulcode in .Js Oder .TS Dateien.
- Ziel
- Verzeichnis, das ein installierbares Paket enthält ( .Zip Datei) zum Hochladen in eine Instanz.
- .Eslintrc.JSON
- Datei, die die ESLint-Konfiguration enthält. ESLint hilft beim Identifizieren und Beheben von Problemen im Anwendungscode.
- .Gitignore
- Datei, die eine Liste von Verzeichnissen oder Dateien enthält, die Git ignorieren soll. Diese Dateien werden in der Quellcodeverwaltung nicht nachverfolgt.
- Now.config.JSON
- Datei mit ServiceNowAnwendungskonfiguration. Die Now.config.JSON Die Datei muss sich im Basisverzeichnis für eine Anwendung befinden.Sie können die Verzeichnisstruktur für eine Anwendung konfigurieren, indem Sie die folgenden Parameter hinzufügen. Zum Beispiel:
{ "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" } }Tabelle : 1. Unterstützte Now.config.JSON-Parameter Parameter Beschreibung Abhängigkeiten Die Elemente in einem anderen Anwendungsbereich, von dem Ihre Anwendung abhängt. Sie müssen den Anwendungsbereich und den Abhängigkeitstyp und Namen oder sys_IDs angeben. "dependencies": { "<scope>": { "<type>": ["<sys_id or name>"], ... }, ... }Weitere Informationen finden Sie unter Herunterladen ServiceNow FluentAnwendungsabhängigkeiten.
Metadatadir Verzeichnis, das die Metadaten der Anwendung als XML-Dateien enthält. Standard: Metadaten
Fluentdir Verzeichnis enthält ServiceNow FluentDateien ( .Jetzt.TS ), die Anwendungsmetadaten im Quellcode definieren. Standard: src/Fluent
Generateddir Verzeichnis mit generiert ServiceNow FluentDateien, einschließlich vorhandener Anwendungsmetadaten, die in konvertiert wurden ServiceNow FluentCode. Dieses Verzeichnis ist relativ zu dem mit definierten Verzeichnis fluentDirParameter. Standard: Generiert
ServerModuleVers Verzeichnis mit den JavaScript- oder TypeScript-Dateien, die in JavaScript-Module zur Verwendung in serverseitigen Skripts integriert werden sollen. Standard: src/Server
Clientdir Verzeichnis, das die clientseitigen Dateien für die Entwicklung von Anwenderoberflächen mit React enthält. Standard: src/Client
AppOutputdir Verzeichnis, in das die Build-Artefakte für das Packaging ausgegeben werden sollen. Die Pack- und Installationsbefehle verweisen auf dieses Verzeichnispaket, die Artefakte.
Standard: verteilung/App
StaticContentdir Verzeichnis zur Ausgabe der statischen Asset-Dateien, die für die Entwicklung von Anwenderoberflächen verwendet werden. Standard: verteilung/statisch
PaketAusgabeverzeichnis Verzeichnis zur Ausgabe des installierbaren Pakets ( .Zip Datei) beim Erstellen der Anwendung. Der Installationsbefehl verweist auf dieses Verzeichnis, um das Paket zu installieren. Standard: Ziel
ServerModulesIncludePatterns Eine Liste von Dateimustern, die beim Erstellen von JavaScript-Modulen enthalten sein sollen. Standard:[ "**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "**/*.cts", "**/*.cjs", "**/*.mts", "**/*.mjs", "**/*.json" ]ServerModuleAusschließenMuster Eine Liste von Dateimustern, die beim Erstellen von JavaScript-Modulen ausgeschlossen werden sollen. Standard:[ "**/*.test.ts", "**/*.test.js", "**/*.d.ts" ]ModulePaths Eine Zuordnung der Modulquelldateien zu den entsprechenden Ausgabedateien, wenn Sie vor dem Erstellen der Anwendung einen anwenderdefinierten Transpilationsschritt verwenden. Weitere Informationen finden Sie unter Verwendung von TypeScript in JavaScript-Modulen mit ServiceNow SDK. Warnung:Sie können diesen Parameter und nicht verwendenTsconfigPathParameter. Die Konfiguration beider Elemente führt zu einem Fehler.StaticContentPaths Eine Zuordnung der clientseitigen Quelldateien zu den Ausgabepfaden für statische Asset-Dateien. TsconfigPath Ein Pfad zu Tsconfig.JSON Datei mit anwenderdefinierten Optionen für die Übertragung von TypeScript in JavaScript während des Build-Prozesses. Wird angegeben TsconfigPathGeneriert Diagnosergebnisse aus TypeScript mithilfe von Tsconfig.JSON Datei.Warnung:Sie können diesen Parameter und nicht verwendenModulePathsParameter. Die Konfiguration beider Elemente führt zu einem Fehler.Standard: .
IgnoreTransformTableList Eine Liste von Tabellen, die beim Umwandeln von Anwendungsmetadaten in Quellcode ignoriert werden sollen. TableAusgabeFormat Der Typ der Build-Artefakte für Tabellenmetadaten, die aus XML generiert wurden ServiceNow FluentCode. Gültige Werte:- Bootstrap: Der Build-Prozess gibt eine Bootstrap-XML-Datei mit aus
<database>Stammelement für die Tabelle, Feldbezeichnungs-XML-Dateien [sys_documentation], Lizenzierungskonfigurations-XML-Dateien [ua_table_Licensing_config] und automatische Nummerierung von XML-Dateien [sys_number]. - Komponente: Der Build-Prozess gibt XML-Dateien für jede Komponente der Tabellen-API aus.
Standard: Bootstrap
Taxonomie Eine Konfiguration zum Organisieren wurde generiert ServiceNow FluentDateien, die Tabellennamen Verzeichnissen zuordnen und ein Fallback-Verzeichnis definieren. Die standardmäßige Taxonomiekonfiguration verwendet ServiceNowHinzuzufügende Standardtabellenklassifizierungen generiert ServiceNow FluentDateien in einer logischen Verzeichnisstruktur innerhalb von Fluent/generiert Verzeichnis, in das Metadaten anfänglich umgewandelt werden ServiceNow FluentCode. Zum Beispiel: - Business-Regeln [sys_script] werden zu hinzugefügt Fluent/generated/Server-Development/Business-rule Verzeichnis.
- Skripteinbindungen [sys_script_include] werden zu hinzugefügt Fluent/generated/Server-Development/script-include Verzeichnis.
Sie können die Standardzuordnungen überschreiben oder zusätzliche Zuordnungen konfigurieren. Im folgenden Beispiel überschreibt die Konfiguration das Standardverzeichnis für Business-Regeln [sys_script] und den Fallback-Ordner und konfiguriert eine zusätzliche Zuordnung für Metadaten aus einer anwenderdefinierten Tabelle.
"taxonomy": { "mapping": { "sys_script": "scripts/server/rules", "custom_table": "my-custom-folder/my-nested-folder" }, "fallbackFolderName": "unclassified" }- Zuordnung: Ein Objekt, das Tabellennamen Verzeichnissen zuordnet. Verzeichnispfade beziehen sich auf das mit konfigurierte Verzeichnis generatedDirParameter und darf nur Kleinbuchstaben, Zahlen, Bindestriche, Unterstriche und Schrägstriche enthalten, um Unterverzeichnisse zu trennen.
- FallbackFolderName: Ein Name für ein Verzeichnis, das für Tabellen verwendet werden soll, für die keine Standard- oder anwenderdefinierte Zuordnung konfiguriert ist. Innerhalb dieses Verzeichnisses ServiceNow FluentDateien werden Unterverzeichnissen hinzugefügt, die nach der Tabelle benannt sind, z. B. src/Fluent/generated/other/x-unmap-table/ .
Standard: Standardtaxonomiezuordnungen sind für alle Standards definiert ServiceNowTabellen und werden automatisch angewendet, wenn in keine anwenderdefinierte Konfiguration definiert ist
Now.config.JSONFür eine Anwendung. Der Standardwert von fallbackFolderNameIst Sonstiges . - Bootstrap: Der Build-Prozess gibt eine Bootstrap-XML-Datei mit aus
- Now.Prebuild.mjs
- Automatisch aktualisierte Datei mit vollständigen Informationen zu Abhängigkeiten und ihren Versionen. Diese Datei ist nur mit verfügbar ServiceNow SDK.
- Package-Lock.JSON
- Automatisch aktualisierte Datei mit vollständigen Informationen zu Abhängigkeiten und ihren Versionen. Diese Datei ist nur mit verfügbar ServiceNow SDK.
- Package.JSON
-
Datei mit Informationen zu Ihrer Anwendung und anwenderdefinierten Modulabhängigkeiten oder Drittanbietermodulabhängigkeiten. Die Package.JSON Die Datei muss sich im Basisverzeichnis für eine Anwendung befinden. In einer Instanz: Package.JSON Pfad ist in angegeben Paket-JSON Feld des anwenderdefinierten Anwendungsdatensatzes [sys_App] im Format <scope>/<package-name>/<version>/Package.JSON .
Zugehörige Anwendungen und Funktionen
- JavaScript-APIs
- Verwenden Sie JavaScript-APIs in Skripts, die Sie schreiben, um die Funktionalität von Anwendungen zu ändern oder wenn Sie Anwendungen erstellen.