ApexCodeのデバッグ方法
ApexCodeで初めてプログラムした時、デバッグはどうやってやるんだろう?と思ったので、書いておきます。
SalesForceでは、いろいろな組織が同じシステムの上に乗っているため、パフォーマンスを考慮して、デフォルトではデバックログが吐かれるようにはなっていません。
そのため、デバッグログを吐くようにするには、管理者のコンソールでどのユーザで実行したときにログを吐くようにするのかを指定するようになっています。
また、一度設定したら、そのユーザではずっとログが出続けるのではなく、一定時間たつと無効化され、再度設定しなければなりません。
めんどくさいといえばめんどくさいですが、デバッグログを吐くのはテストのときがメインなので、特に不自由には感じません。
設定ですが、「監視」→「デバッグログ」を開きます。
すると以下のような画面が開きます。
上部が、「監視対象ユーザ」で、どのユーザでトランザクションを実行したらログを記録するかを指定します。
プログラム実行後、下部の「デバッグログ」に、記録されたログファイルができていきますので、参照またはダウンロードでログの中身を確認できます。
実際にApexCodeの中には以下のようなデバッグ文を入れておきましょう。
system.debug(‘★変数名=’+webSO.BrandId__c);
ひとつ、気をつけたいのが、大量のデータロードなど、ひとつのトランザクションで何回もシステム関数が呼ばれるときなどは、ログレベルを適切に設定していないと、ログが大量すぎて肝心なログが見えません。
そんなときには、ログ出力のフィルタ条件を設定します。フィルタは、監視対象のユーザを指定したときに、その右側に現れる、「Filters」からいける画面で設定しましょう。
すると、以下のような画面に行きますので、ログのレベルを設定します。
とくに、一番下の「システム」というカテゴリのログが多いので、そこをINFOレベルにすると大量のシステムログで、肝心のログが埋もれることがありません。
コラム
salesforce関連の本って少ないですよね。また、Web上の情報は詳しいのですが、広大すぎて、調べようと思ったときに手元にリファレンス的な本があると助かります。以下は私のおすすめの本です。
Force.comのすべて ~設計・開発 実践マニュアル~ 初めてSalesForceでWebアプリを作ろうとしたとき、どこから手を付けていいか迷いました。そんなときに役立つ初心者向けの本です。細かいところに手が届くたぐいの本ではないですが、一通り、体系的に学べるので、役に立ちます。
改訂新版 Salesforceプログラミングバイブル すこし高い本ですが、豊富なソースが載っており、上の本を勉強して次の段階に進んだ技術者には役立。こんなことってSalesForceでできないの?と思ったときにも役に立ちます。
タグ:Salesforce