Visualforce/JavaScript デバッグの基本的なステップ

Visualforce やカスタム JavaScript を使用した Salesforce 開発では、エラーや動作の問題が発生する場合があります。このような場合、適切なデバッグスキルを身につけることが重要です。本記事では、初心者向けにブラウザのデベロッパーツールを活用して効率的に問題を解決する方法を説明します。


1. デベロッパーツールを使用した基本的なデバッグ方法

ブラウザのデベロッパーツール(Chrome を例に説明)を使うと、以下のようなデバッグが可能です。

a. Inspect Element(要素の検証)
  1. ページ上で問題が発生している箇所を右クリックし、「検証」 を選択します。
  2. 対応する HTML や CSS を確認できます。
    • Visualforce コンポーネントが適切にレンダリングされているか確認。
    • スタイル(CSS)が期待どおりに適用されているかチェック。
b. View Page Source(ページソースの確認)
  • Visualforce ページのソースコードを直接確認して、正しいマークアップが生成されているか確認します。
  • Apex コントローラーから送信されたデータが正しくバインドされているか確認するのにも役立ちます。
c. Network タブ
  1. デベロッパーツール > Network タブ を開き、ページをリロードします。
  2. 発生しているリクエストやレスポンスを確認します。
    • Visualforce ページの再レンダリングや Apex 呼び出し(@RemoteAction)のレスポンスを検証可能。
    • HTTP ステータスコードやエラーメッセージを確認して問題の根本原因を特定。
d. JavaScript Console(コンソール)
  1. Console タブ では、JavaScript エラーやカスタムスクリプトの問題を特定できます。
    • 未定義の関数、変数エラー、または API 呼び出しの失敗を確認可能。
  2. カスタムスクリプトでデバッグする際には、以下のように console.log() を活用します。
console.log('Debugging value:', variableName);

2. Salesforce 特有のデバッグポイント

a. Visualforce 再レンダリング

Visualforce ページの部分更新が失敗する場合、rerender 属性の設定や Apex コントローラーで返却しているデータを確認します。

  • Network タブで再レンダリング時のリクエストとレスポンスを確認。
  • Console にエラーメッセージが出力されている場合、その内容を元に原因を調査。
b. 静的リソースの検証
  • カスタム JavaScript や CSS が適切に読み込まれているかを確認。
  • Network タブで静的リソース(StaticResource)の読み込み状況を確認します。
c. Apex RemoteAction

JavaScript から Apex メソッドを呼び出す際、リクエスト/レスポンスの状態を以下のように検証します。

MyController.myRemoteMethod(param1, param2, function(result, event) {
    if (event.status) {
        console.log('Success:', result);
    } else {
        console.error('Error:', event.message);
    }
});

3. Visualforce ページの問題を再現するためのコツ

  1. 最低限のコードに簡略化する
    問題が発生している Visualforce ページを簡素化し、特定のコンポーネントやスクリプトに絞り込みます。

  2. ブラウザを変えて検証
    Chrome、Firefox、Edge など異なるブラウザで動作を確認し、ブラウザ固有の問題を排除します。

  3. デベロッパーツールの「Preserve Log」機能を有効化
    ページ遷移後もログを保持するために有効にします。


結論

ブラウザのデベロッパーツールを活用することで、Visualforce ページやカスタム JavaScript の問題を効果的にトラブルシューティングできます。初心者の方は、まず「要素の検証」や「ネットワークタブ」から始めて、徐々にスクリプトデバッグに慣れていきましょう。

コメント