【Salesforce/VSCode】Apex Replay Debugger (デバッグ実行)を使ってみた


概要

VSCodeを使ったSalesforceの統合開発環境でApexのデバッグ実行を試してみたので、その内容を記録します。Apex Replay Debuggerを参考にしました。

何ができるの?

下記の様にVSCode上でブレークポイントを設定し、コードベースでのパラメータ確認などデバッグが可能になります。
但し手順を最後まで見ればわかるのですが、Saleforce側で発行したログファイルをなぞっているだけなので、その点は認識しておいた方が良いです。

前提

VSCodeを使った統合開発環境についてざっくり理解していれば大丈夫です!
今回は組織認証、ソース取得・デプロイなどが可能になっている環境を使います。
Salesforce CLI
Salesforce Extensions for VS Code
クイックスタート: Salesforce 開発のための Visual Studio Code

手順

1. ブレークポイントを設定し、Salesforce側に反映

下記の様にApexクラスの該当箇所にブレークポイント(赤丸)を打ち、コマンドパレットでSFDX: 組織のチェックポイントをアップデートを実行します。

2. Apex Replay Debuggerの有効化と該当処理の実行

コマンドパレットでSFDX: Replay Debugger用のApexデバッグログを有効化を実行します。
次にブレークポイントを打った箇所の処理を実際に実行します。いくつか実行方法があるのですが、Salesfroceの開発者コンソールでお馴染みの「Execute Anonymous Window」と同様のことがVSCode上でもできるので、その方法を使います。
プロジェクト上に任意のテキストファイルを作成してそこに実行用のApexを記述し、コマンドパレットのSFDX: エディタのコンテンツを使用して匿名Apexを実行を行います。

3. ログを取得し、デバッグ実行

コマンドパレットでSFDX: Apex デバッグログを取得を実行すると、ログファイルが一覧が表示されるので、実行日時を元に先ほどの実行のログファイルを開きます。(開いたログファイルは.sfdx/tools/debug/logsに保存されるようです)
ログファイルを開いた状態でコマンドパレットのSFDX: 現在のファイルでApex Replay Debuggerを起動を実行し、再生マークをクリックすると、何ができるの?で説明したデバッグ画面が表示されます。

補足

デバッグといっても実行環境はローカルにないので、ApexにSystem.debugを仕込んでログ確認するのとあまり変わらない気もしますが、細部まで確認したい時は便利かもしれません!
Apex Replay Debuggerの制約などは考慮事項に載っているのでご確認いただければと思います。