ソースコードでアプリケーションをビルドする
使い慣れた開発ツールとプロセスを使用して、ソースコードでカスタムアプリケーションを作成および開発します。
概要
スコープ対象のアプリケーションを、Now Platform 上の ServiceNow IDE を使用してコード内で作成、または ServiceNow SDK を使用して Visual Studio Code デスクトップでローカルに作成できます。
どちらの開発環境でも、ドメイン固有のプログラミング言語である ServiceNow Fluent を使用して、アプリケーションを構成するメタデーターを定義します。ServiceNow Fluent には、さまざまなタイプのメタデータを定義するための API が含まれています。
ServiceNow IDE または ServiceNow SDK を使用して、JavaScript モジュールを作成し、アプリケーションのサードパーティライブラリを使用して、スコープ対象のアプリケーション内のスクリプトのコードの再利用を最適化することもできます。
ソースコードでアプリケーションを開発および管理すると、使い慣れた開発環境での作業、複雑なアプリケーションの作成と変更、ソースコントロールでの容易なコードの管理、ビルド時のエラーのキャッチが可能になります。
ServiceNow IDE と ServiceNow SDK の比較
| 機能 | ServiceNow IDE | ServiceNow SDK |
|---|---|---|
| 開発環境 | オンライン ServiceNow インスタンス | ローカル開発とオフライン作業機能 |
| ユーザーインターフェイス | Visual Studio Code for the Web ベースの IDE | Visual Studio Code デスクトップ |
| コラボレーション | コードまたは埋め込み Now Platform ユーザーインターフェイスで、ユーザーの変更をリアルタイムで表示します。 ソースコントロール内のアプリケーションで他の開発者と共同作業を行います。 |
ServiceNow SDK CLI を使用して変更をフェッチしてインスタンスに展開し、他のユーザーと共同作業を行います。 ソースコントロール内のアプリケーションで他の開発者と共同作業を行います。 |
| ソースコントロール | 最も一般的な Git 機能と、選択した Git プロバイダーとの統合をサポートします。 インスタンスごと、リポジトリごとに 1 つの同時分岐。 |
フルサポート |
| アプリケーションの変換 | ServiceNow IDE または ServiceNow SDK で作成されたスコープ対象のアプリケーションのみをサポートします。 変換されたアプリケーションは、ServiceNow IDE ではサポートされていません。 |
ServiceNow IDE または ServiceNow SDK で作成されていない既存のスコープ対象のアプリケーションの変換をサポートします。 |
| ServiceNow Fluent | フルサポート | フルサポート |
| JavaScript モジュールとサードパーティライブラリ | フルサポート | フルサポート |
アプリケーションの構造
ServiceNow IDE または ServiceNow SDK で作成されたカスタムスコープ対象のアプリケーションには、ソースコードファイルとメタデータ XML ファイルが含まれます。package.json ファイルと now.config.json ファイルは、Node.js アプリケーションまたは Node Package Manager (npm) パッケージの構造に似たアプリケーション構造を定義します。
デフォルトでは、アプリケーションには次のディレクトリとファイルが含まれます。now.config.json ファイルで、アプリケーション構造の特定の要素をニーズに合わせて変更できます。
- .now
- ビルドプロセスと展開プロセスのキャッシュとメトリクスの情報を含むディレクトリ。
- dist/app
- パッケージ化用のビルドアーティファクトを含むディレクトリ。このディレクトリは、ServiceNow SDK でのみ使用できます。
- メタデータ
-
既存の ServiceNow アプリケーションと同じディレクトリ構造で編成された、テーブルスキーマやビジネスルールなどのアプリケーションのアプリケーションメタデータ (XML) を含むディレクトリ。
注:アプリケーションメタデータは、XML ファイルから編集しないでください。ソースコードまたは Now Platformでアプリケーションメタデータを編集します。 - node_modules
- アプリケーションが依存するサードパーティ Node.js モジュールを含むディレクトリ。
- src
- サンプルファイルを含む、アプリケーションのソースコードを含むディレクトリ。このディレクトリには、次のサブディレクトリが含まれています。
- fluent:アプリケーションメタデータ (.now.ts) を定義するためのソースコードファイルを含むディレクトリ。generated サブディレクトリには、ServiceNow Fluent で生成されたアプリケーションファイルが含まれます。
- server:サーバー側スクリプトで使用する JavaScript モジュールコード (.js または .ts) を含むディレクトリ。
- target
- インスタンスにアップロードする展開可能パッケージを含むディレクトリ。このディレクトリは、ServiceNow SDK でのみ使用できます。
- .eslintrc.json
- ESLint 構成を含むファイル。ESLint は、アプリケーションコードの問題を特定して修正するのに役立ちます。
- .gitignore
- Git が無視するディレクトリまたはファイルのリストを含むファイル。これらのファイルはソースコントロールで追跡されません。
- now.config.json
- ServiceNow アプリケーション構成を含むファイル。package.json ファイルは、アプリケーションのベースディレクトリに存在する必要があります。 次のパラメーターを追加して、アプリケーションのディレクトリ構造を構成できます。例:
{ "scope": "x_snc_example_app", "scopeId": "2f8400eb07426110f736e28f69d3017a", "metadataDir": "metadata", "appOutputDir": "dist/app", "sourceDir": "src", "fluentDir": "src/fluent", "serverModulesDir": "src/server", "packOutputDir": "target", "transpiledSourceDir": "dist/modules", "maxInlineScriptLines": 15, "ignoreTransformTableList": ["ua_table_licensing_config", "sys_embedded_help_role"] }表 : 1. サポートされている now.config.json パラメーター パラメーター 説明 metadataDir アプリケーションのメタデータを XML ファイルとして含むディレクトリ。 デフォルト:metadata
appOutputDir アプリケーションのビルド時にパッケージ化するためにビルドアーティファクトを出力するディレクトリ。このディレクトリは、ServiceNow SDK でのみ使用できます。 デフォルト:dist/app
sourceDir アプリケーションのソースコードを含むディレクトリ。 デフォルト:src
fluentDir ソースコードでアプリケーションメタデータを定義する ServiceNow Fluent ファイル (.now.ts) を含むディレクトリ。 デフォルト:src/fluent
serverModulesDir サーバー側スクリプトで使用するために JavaScript モジュールに組み込まれる JavaScript または TypeScript ファイルを含むディレクトリ。 デフォルト:src/server
packOutputDir アプリケーションのビルド時にインスタンスにアップロードする zip ファイルを出力するディレクトリ。このディレクトリは、ServiceNow SDK でのみ使用できます。 デフォルト:target
transpiledSourceDir トランスパイルされた JavaScript ファイルを含むディレクトリ。 デフォルト:sourceDir パラメーターの値
maxInlineScriptLines スクリプトが別のファイルに自動的に移動されるまでの 、scriptタグを使用してソースコードで定義されたインラインスクリプトの最大行数。スクリプトファイルは、ソースコードの スクリプト プロパティから参照されます。デフォルト値:10
ignoreTransformTableList アプリケーションメタデータをソースコードに変換するときに無視するテーブル。 - package-lock.json
- 依存関係とそのバージョンに関する完全な情報を含む自動更新ファイル。このファイルは、ServiceNow SDK でのみ使用できます。
- package.json
-
アプリケーションとカスタムまたはサードパーティのモジュールの依存関係に関する情報を含むファイル。package.json ファイルは、アプリケーションのベースディレクトリに存在する必要があります。
関連アプリケーションと機能
- JavaScript API
- アプリケーションの機能を変更したり、アプリケーションを作成したりする場合に記述するスクリプトで JavaScript API を使用します。