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

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間: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 SDK で作成されていない既存のスコープ対象のアプリケーションの変換をサポートします。
    ServiceNow Fluent フルサポート フルサポート
    JavaScript モジュールとサードパーティライブラリ フルサポート フルサポート

    アプリケーションの構造

    ServiceNow IDE または ServiceNow SDK で作成されたカスタムスコープ対象のアプリケーションには、ソースコードファイルとメタデータ XML ファイルが含まれます。package.json ファイルと now.config.json ファイルは、Node.js アプリケーションまたは Node Package Manager (npm) パッケージの構造に似たアプリケーション構造を定義します。

    図 : 1. で作成されたアプリケーションのデフォルト構造 ServiceNow IDE
    で作成されたアプリケーションの構造 ServiceNow IDE

    デフォルトでは、アプリケーションには次のディレクトリとファイルが含まれます。now.config.json ファイルで、アプリケーション構造の特定の要素をニーズに合わせて変更できます。

    .now
    ビルドプロセスと展開プロセスのキャッシュとメトリクスの情報を含むディレクトリ。
    dist/app
    パッケージ化用のビルドアーティファクトを含むディレクトリ。
    metadata

    既存の ServiceNow アプリケーションと同じディレクトリ構造で編成された、テーブルスキーマやビジネスルールなどのアプリケーションのアプリケーションメタデータ (XML) を含むディレクトリ。

    注:
    アプリケーションメタデータは、XML ファイルから編集しないでください。アプリケーションメタデータは、ソースコードまたは Now Platform で編集します。
    node_modules
    アプリケーションが依存するサードパーティ Node.js モジュールを含むディレクトリ。
    src
    サンプルファイルを含む、アプリケーションのソースコードを含むディレクトリ。このディレクトリには、次のサブディレクトリが含まれています。
    • fluent:.now.tsファイル内のServiceNow Fluentコードを含むディレクトリ。生成されたサブディレクトリには、ServiceNow Fluentに変換されたアプリケーションファイルが含まれます。
    • server: .js または .ts ファイル内の JavaScript モジュールコードを含むディレクトリ。
    ターゲット
    インスタンスにアップロードする展開可能パッケージを含むディレクトリ。
    .eslintrc.json
    ESLint 構成を含むファイル。ESLint は、アプリケーションコードの問題を特定して修正するのに役立ちます。
    .gitignore
    Git が無視するディレクトリまたはファイルのリストを含むファイル。これらのファイルはソースコントロールで追跡されません。
    now.config.json
    ServiceNow アプリケーション構成を含むファイル。package.json ファイルは、アプリケーションのベースディレクトリに存在する必要があります。
    次のパラメーターを追加して、アプリケーションのディレクトリ構造を構成できます。例:
    {
      "scope": "x_snc_example_app",
      "scopeId": "2f8400eb07426110f736e28f69d3017a",
      "name": "ExampleApp"
      "metadataDir": "metadata",
      "appOutputDir": "dist/app",
      "fluentDir": "src/fluent",
      "serverModulesDir": "src/server",
      "modulePaths": {
          "src/server/*.ts": "dist/server/*.js",
        },
      "ignoreTransformTableList": ["ua_table_licensing_config", "sys_embedded_help_role"]
    }
    表 : 1. サポートされている now.config.json パラメーター
    パラメーター 説明
    metadataDir アプリケーションのメタデータを XML ファイルとして含むディレクトリ。

    デフォルト:metadata

    appOutputDir アプリケーションのビルド時にパッケージ化するためにビルドアーティファクトを出力するディレクトリ。

    デフォルト:dist/app

    fluentDir ソースコードでアプリケーションメタデータを定義する ServiceNow Fluent ファイル (.now.ts) を含むディレクトリ。

    デフォルト:src/fluent

    serverModulesDir サーバー側スクリプトで使用するために JavaScript モジュールに組み込まれる JavaScript または TypeScript ファイルを含むディレクトリ。

    デフォルト:src/server

    modulePath モジュールのソースディレクトリーとモジュールの出力ディレクトリーのマッピング。このパラメーターは、TypeScript ソースファイルを JavaScript モジュールにコンパイルするために使用されます。詳細については、「ServiceNow SDK で JavaScript モジュールの TypeScript を使用する」を参照してください。

    tsconfigPath パラメーターを使用する場合、このパラメーターは必要ありません。

    tsconfigPath アプリケーションの tsconfig.json ファイルへのパス (ベースディレクトリにない場合)。例:'./src/tsconfig.json'

    modulePaths パラメーターを使用する場合、このパラメーターは必要ありません。

    ignoreTransformTableList アプリケーションメタデータをソースコードに変換するときに無視するテーブル。
    package-lock.json
    依存関係とそのバージョンに関する完全な情報を含む自動更新ファイル。このファイルは、ServiceNow SDK でのみ使用できます。
    package.json

    アプリケーションとカスタムまたはサードパーティのモジュールの依存関係に関する情報を含むファイル。package.json ファイルは、アプリケーションのベースディレクトリに存在する必要があります。インスタンスでは、 package.json パスはカスタムアプリケーションレコード [sys_app] の [JSON のパッケージ化 ] フィールドに <scope>/<package-name>/<version>/package.json の形式で指定されます。

    tsconfig.json

    TypeScript 構成と、TypeScript ファイルを JavaScript モジュールにコンパイルし、タイプ定義するためのオプションを含むファイル。

    関連アプリケーションと機能

    JavaScript API
    アプリケーションの機能を変更したり、アプリケーションを作成したりする場合に記述するスクリプトで JavaScript API を使用します。