クライアントエラーの特定と解決

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む4読むのに数分
  • クライアントエラーを特定し、クライアント側スクリプトで解決します。

    始める前に

    必要なロール:admin

    このタスクについて

    クライアントエラーが発生すると、自動テストフレームワーク (ATF)はエラーが発生したときに実行中のステップでテストに失敗する。手順の実行中に JavaScript エラーが発生するとクライアント側スクリプトがサイレントで失敗する可能性がありますが、それでもエラーはデータおよび実行中の手順に影響を与える可能性があります。Automated Test Framework では、これらのエラーを検証エラーとみなします。

    手順

    1. 移動先 すべて > アプリケーション > Automated Test Framework > テスト フォームを操作する Automated Test Framework テストを実行します。
    2. このテストのテスト結果では、次の要約でステップの結果を確認します。

      テスト中のページで「詳細なエラーメッセージ」というクライアントエラーが検出されたため、このステップは失敗しました。不合格のテストログを表示します。次回のテスト実行でこれらのエラーを無視するには、[すべてのクライアントエラーを警告/無視リストに追加 (Add all client errors to warning/ignored list)] リンクを使用します。

      このステップの結果は、UI と対話するステップでのみ表示します。

    3. これらのスクリプトエラーを特定して解決するには、クライアントテスト ランナーページ上の開発者ツールのブラウザコンソールを開きます。
      注:
    4. エラーが表示される場合は、次のいずれかのベースシステムテーブルにある可能性がある、問題のあるクライアント側スクリプトを特定してトラブルシューティングしてください。
      • ServiceNow クライアントスクリプト
      • UI アクション
      • UIマクロ (HTMLスクリプト)
      • UIページ (HTMLスクリプト)
      • UI ポリシー
      • UI スクリプト
      • 上記のベースシステムテーブルを拡張するテーブル
    5. スクリプトにエラーがないか確認し、修正したらテストを再度実行します。

    次のタスク

    スクリプトのバージョン履歴を確認して、クライアントエラーの原因を特定します。ベースシステムスクリプトをカスタマイズした場合は、アップグレード中にスキップされた新しいバージョンがスクリプトに含まれている可能性があります。

    クライアントエラーの例

    一般的なクライアントエラーにはいくつかの種類があります。

    クライアントのJavaScriptエラー

    クライアントスクリプトでエラーが発生すると、ブラウザコンソールに次の例のようなエラーが表示します。

    ***************************************************
    A script has encountered an error in render events
    TypeError: Cannot read property 'id' of undefined
    Script ends. Continuing happily
    ***************************************************
    [00:00:00.002] onLoad Modify Comments Label

    この例では、クライアントスクリプトコメントラベルの変更が原因でエラーが発生しました。

    その他のクライアントスクリプトエラー

    その他のタイプのスクリプトエラーは、発生時に任意のフォーマットでブラウザコンソールに直接報告します。

    TypeError:コールバック (id) が定義されていません

    Sys ID によるスクリプトリソースリンク

    場合によっては、コンソールエラーは Sys ID を使用してスクリプトリソースファイルへのリンクを提供します。このリンクの後には、スクリプトがそれを実行したコンテキストを与えることができます。

    Uncaught ReferenceError: myobj is not defined
        at incident.do?sys_id=12345678901234567890123456789012
    (anonymous) @ incident.do?sys_id=12345678901234567890123456789012  <---- LINK
    

    スクリプトのアクセス許可

    問題のあるスクリプトを特定しながら、スクリプトにデータへのアクセス権があることを確認します。以下をチェックしてください。
    • テーブルとフィールドのアクセスコントロールルールのアクセスを許可します。
    • スクリプトがプライベートスコープ内のアプリケーションにアクセスする場合のアプリケーションアクセスを許可します。
    • ドメイン分離が設定されている場合は、ドメイン分離を許可します。