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

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

    ClientScript オブジェクト

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

    表 : 1. プロパティ
    名前 タイプ 説明
    $id 文字列または数値 必須。次の形式で提供されるメタデータオブジェクトの一意の ID。ここで、<value> は文字列または数値です。
    $id: Now.ID[<value>]

    アプリケーションをビルドすると、この ID は一意の sys_ID にハッシュされます。

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

    デフォルト:true

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

    デフォルト値:false

    ui_type 文字列 クライアントスクリプトが適用されるユーザーインターフェイス。

    有効な値:desktop、mobile_or_service_portal、all

    デフォルト:desktop

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

    デフォルト値:false

    script スクリプト script タグが前に付いた、次の形式のインラインスクリプト:
    script: script`gs.info('info')`,
    注:
    JavaScript モジュールまたはサードパーティライブラリからの関数のインポートは、クライアントスクリプトではサポートされていません。
    global ブーリアン クライアントスクリプトがテーブルのどのビューで実行されるかを示すフラグ。
    有効な値:
    • true:スクリプトはすべてのビューで実行されます。
    • false:スクリプトは指定されたビューでのみ実行されます。

    デフォルト:true

    view 文字列 クライアントスクリプトが実行されるテーブルのビュー。このプロパティは、global プロパティが false に設定されている場合にのみ適用されます。
    type 文字列 クライアントスクリプトのタイプ。実行するタイミングを定義します。サポートされているタイプの詳細については、「Client scripts」を参照してください。

    有効な値:onCellEdit、onChange、onLoad、onSubmit

    field 文字列 クライアントスクリプトが適用されるテーブルのフィールド。このプロパティは、type プロパティが onChange または onCellEdit に設定されている場合にのみ適用されます。
    import { ClientScript } from '@servicenow/sdk/core'
    
    export const cs = ClientScript({
       $id: Now.ID['my_scripts'], 
       name: 'my_scripts',
       table: 'incident',
       active: true, 
       applies_extended: false, 
       global: true,
       ui_type: 'all', 
       messages: '', 
       isolate_script: false, 
       type: 'onLoad',
       script: script`function onLoad() { const x = 'util' g_form.addInfoMessage(x) }`,
    })