スクリプトデバッガおよびセッションログ
スクリプトデバッガを使用すると、script_debugger ロールを持つユーザーはサーバー側の JavaScript をデバッグできます。log_debugger ロールを持つユーザーは、 セッションログ を使用して必要なログを表示およびダウンロードできます。
script_debugger ロールを持つユーザーは、スクリプトデバッガを使用して次のアクションを実行できます。
- 現在のセッションにのみ適用される専用のデバッグトランザクションがあります。
- ブレークポイントの設定および削除
- ブレークポイントでの現在のセッションの一時停止
- ランタイム中の式の評価
- コードの行ごとのステップ実行
- 関数へのステップイン、ステップアウトとメソッド呼び出し
- ローカル変数とグローバル変数の値の表示
- 関数クロージャからのプライベート変数の値の表示
- コールスタックの表示
- システムが処理しているトランザクションの表示
- スクリプトデバッガーをオフにして、一時停止したスクリプトの実行を再開
[セッションログ] タブを使用して、ビジネスルール、スクリプトインクルード、および GraphQL コンポーネントを持つ ServiceNow® エージェントワークスペース などのカスタム UI を取得します。log_debugger ロールを持つユーザーは、次のことができます。
- 別のタブへのセッションログの表示
- ログのダウンロード
- エージェントワークスペース のログの表示
- デバッグオプションを指定して、必要なログのみを表示またはダウンロード
注:
glide.debugger.log.ui システムプロパティを使用して、セッションログをスクリプトデバッガ付きの別のタブとして有効にします。
- [ページ] オプションでは、フォームとリストの下、および [セッションログ] タブにログが表示されます。
- [セッション] オプションでは、[セッションログ] タブにのみログが表示されます。
glide.debugger.log.ui システムプロパティの詳細については、「利用可能なシステムプロパティ」を参照してください。
コンソールでステートメントを実行すると、実行されたステートメントはブラウザーのキャッシュに格納されます。上向き矢印キーを使用すれば前のステートメントを、下向き矢印キーを使用すれば次のステートメントを、ブラウザーのキャッシュから取得できます。ユーザー設定 glide.debugger.console.cached_stmt_limit は、ブラウザーセッションにキャッシュされるステートメントの数を定義します。デフォルトのステートメントキャッシュ値は 20 で、最大値は 100 です。ユーザー設定からのステートメントキャッシュ値を設定できます。
注:
ブラウザーのキャッシュがクリアされた場合、または別のブラウザーや別のコンピューターからログインした場合は、キャッシュされたステートメントを使用できません。
スクリプトデバッガでは、続行のために応答を必要とする対話型トランザクション (ビジネスルール、スクリプトインクルード、スクリプトアクション、UI アクションなど) で実行されているサーバーサイドスクリプトを一時停止することができます。コンテキストでスクリプトを実行したときに GlideSystem メソッドの isInteractive() が True を返す場合、スクリプトデバッガでスクリプトを一時停止できます。
注:
スクリプトインクルードなどの一部のスクリプトオブジェクトは、複数のコンテキストから呼び出すことができます。例:
- ビジネスルールがフォーム送信の際に、フォームデータの変更を待機してから続行するインタラクティブトランザクションであるスクリプトインクルードを実行する場合。
- スケジュール済みジョブが、他のスクリプトを同時に実行できる非インタラクティブなバックグラウンドトランザクションである同じスクリプトインクルードを実行する場合。
クライアントサイドスクリプトをデバッグするには、ブラウザーベースの開発者ツールを使用できます。
ユーザーセッションが有効である限り、デバッガートランザクションは開いたままです。ユーザーがログアウトするか、セッションがタイムアウトすると、システムはデバッガートランザクションをクローズします。
デバッグログを表示するには、「デバッグログの表示」を参照してください。
注:
スクリプトデバッガを有効にすると、コードは解釈済みモードで実行されます。スクリプトの一部が Strict モードで実行されるように設定されている場合、デバッガーは正しいオブジェクトを見つけることができず、失敗します。スクリプトデバッガは、Strict モード以外のスクリプトで実行する必要があります。