クライアントスクリプト API - ServiceNow Fluent

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:5分
  • クライアントスクリプト API は、フォームの読み込み時、フォームの送信後、フィールドの値の変更時など、クライアントベースのイベントが発生したときに、クライアント (Web ブラウザー) で JavaScript を実行するクライアント側スクリプト [sys_script_client] を定義します。

    クライアントスクリプトに関する一般的な情報については、「 Client scripts」を参照してください。

    ClientScript オブジェクト

    ユーザーがフォームを使用しているときに、フォーム、フォームフィールド、およびフィールド値を構成するクライアントスクリプト [sys_script_client] を作成します。

    表 : 1. プロパティ
    名前 タイプ 説明
    $id 文字列または数値 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。

    形式: Now.ID['string' or number]

    table 文字列 必須。クライアントスクリプトが実行されるテーブルの名前。
    name 文字列 必須。クライアントスクリプトの名前。
    active ブーリアン クライアントスクリプトが有効かどうかを示すフラグ。
    有効な値:
    • true:スクリプトは有効です。
    • false:スクリプトは有効ではありません。

    デフォルト:true

    適用拡張 ブール クライアントスクリプトが指定されたテーブルから拡張されたテーブルに適用されるかどうかを示すフラグ。
    有効な値:
    • true:スクリプトは拡張テーブルに適用されます。
    • false:スクリプトは拡張テーブルに適用されません。

    デフォルト値:false

    uiType 文字列 クライアントスクリプトが適用されるユーザーインターフェイス。
    有効な値:
    • desktop
    • mobile_or_service_portal
    • すべて

    デフォルト:desktop

    description 文字列 クライアントスクリプトの機能と目的の説明。
    messages 文字列 getmessage('[message]') を使用してローカライズされたメッセージとして、クライアントスクリプトに使用できるテキスト文字列。詳細については、「クライアントスクリプトメッセージの翻訳」を参照してください。
    isolateScript ブール スクリプトが strict モードで実行され、直接 DOM、jQuery、prototype、および window オブジェクトへのアクセスがオフになっているかどうかを示すフラグ。
    有効な値:
    • true:スクリプトを分離し、strict モードで実行しません。
    • false:スクリプトを strict モードで実行します。

    デフォルト値:false

    script スクリプト ブラウザーで実行されるクライアント側スクリプト。 このプロパティは、インライン JavaScript、またはスクリプトを含むアプリケーション内の別のファイルへの参照をサポートします。
    Format (形式):
    • 別のファイルのテキストコンテンツを使用するには、 Now.include('path/to/file') の形式を使用してアプリケーションでファイルを参照します。詳細については、「ServiceNow Fluent 言語構成」を参照してください。
    • インラインスクリプトを指定するには、複数行のコードに文字列リテラルまたはテンプレートリテラルを使用します ( 「スクリプト」または「スクリプト」)
    グローバル ブーリアン クライアントスクリプトがテーブルのどのビューで実行されるかを示すフラグ。
    有効な値:
    • true:スクリプトはすべてのビューで実行されます。
    • false:スクリプトは指定されたビューでのみ実行されます。

    デフォルト:true

    view 文字列 クライアントスクリプトが実行されるテーブルのビュー。このプロパティは、global プロパティが false に設定されている場合にのみ適用されます。
    type 文字列 クライアントスクリプトのタイプ。実行するタイミングを定義します。サポートされているタイプの詳細については、「 Client scripts」を参照してください。
    有効な値:
    • onCellEdit:リストエディターがセル値を変更したときに実行されます。
    • onChange:フォーム上の特定のフィールド値が変更されたときに実行されます。
    • onLoad:システムが最初にフォームをレンダリングするとき、およびユーザーがデータを入力できるようになる前に実行されます。通常、onLoad() クライアントスクリプトは、現在のフォームをクライアントサイドで操作するためやデフォルトのレコード値を設定するために使用されます。
    • onSubmit:フォームが送信されたときに実行されます。通常、onSubmit() クライアントスクリプトがフォーム上のデータを検証して、フォームが正しく送信されるようにします。onSubmit() クライアントスクリプトから false を返すことでフォームの送信を取り消すこともできます。
    フィールド 文字列 クライアントスクリプトが適用されるテーブルのフィールド。このプロパティは、type プロパティが onChange または onCellEdit に設定されている場合にのみ適用されます。
    $meta オブジェクト アプリケーションメタデータのメタデータ。
    installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。
    $meta: {
          installMethod: 'String'
    }
    installMethod の有効な値:
    • demo:[デモデータのロード] オプションが選択されている場合、アプリケーションメタデータを metadata/unload.demo ディレクトリに出力して、アプリケーションとともにインストールします。
    • 初回インストール:アプリケーションがインスタンスに初めてインストールされたときにのみインストールされるように 、アプリケーションメタデータをメタデータ/アンロード ディレクトリに出力します。
    import { ClientScript } from '@servicenow/sdk/core'
    
    export const cs = ClientScript({
       $id: Now.ID['my_scripts'], 
       name: 'my_scripts',
       table: 'incident',
       active: true, 
       appliesExtended: false, 
       global: true,
       uiType: 'all', 
       messages: '', 
       isolateScript: false, 
       type: 'onLoad',
       script: Now.include('../client/client-script.js'),
    })
    クライアントスクリプトは、スクリプトプロパティから参照されるclient-script.jsファイルで定義されます。たとえば、次のようになります。
    function onLoad() { 
        const x = 'util' g_form.addInfoMessage(x) 
    }