ソースコードでアプリケーションをビルドする

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:8分
  • 使い慣れた開発ツールとプロセスを使用して、ソースコードでカスタムアプリケーションを作成および開発します。

    概要

    スコープ対象のアプリケーションを、Now Platform 上の ServiceNow IDE を使用してコード内で作成、または ServiceNow SDK を使用して Visual Studio Code デスクトップでローカルに作成できます。

    どちらの開発環境でも、ドメイン固有のプログラミング言語である ServiceNow Fluent を使用して、アプリケーションを構成するメタデーターを定義します。ServiceNow Fluent には、さまざまなタイプのメタデータを定義するための API が含まれています。

    ServiceNow IDE または ServiceNow SDK を使用して、JavaScript モジュールを作成し、アプリケーションのサードパーティライブラリを使用して、スコープ対象のアプリケーション内のスクリプトのコードの再利用を最適化することもできます。

    ソースコードでアプリケーションを開発および管理すると、使い慣れた開発環境での作業、複雑なアプリケーションの作成と変更、ソースコントロールでの容易なコードの管理、ビルド時のエラーのキャッチが可能になります。

    ServiceNow IDEServiceNow 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 を使用します。