S.B.S. Salesforce技術ブログ

教えて921さん!

【Apex】Apexの匿名実行をしてみた。

どうも、こんにちは。みつせです。
今回はAnonymousウィンドウでのApexの匿名実行を試してみたので
軽く紹介していきたいと思います。

Apexの匿名実行とは

ざっくり言うと、
・Apexクラスのファイル
・実行匿名ウィンドウ
に記述したプログラムを一時的に実行する機能です。
開発者コンソールのQuery Editorのプログラム版というか、なんというか
まぁ、そんな感じです。

こんな時に使う!
  • 作成したApexクラスを試しに実行する。(デバッグログを取る。)

  • 設定した時間外でバッチを実行する。

  • 簡単なDML処理を行う。(sandbox環境のあるオブジェクトのレコードを削除する。)

  • チェックポイントを使用してプログラム実行中の変数等の状態を参照できる(→これはまだやったことない!)

DML操作は一通りできますが
画面操作やデータローダの方が視認性は高いと思うので、おすすめはしません。
作成したApexクラスやApexバッチを実行しログを取得するためのツールであり
DML操作はおまけ程度の認識でいてください。

それでは、さっそくやってみましょう!

【実践】匿名実行してみる。

今回は、apexクラスを開発者コンソールから実行していきます。

0.apexクラスを作る

サンプルとして、以下のような文字列を返す簡単なクラスを作ってみました。

public class sampleApex {
    public string str{get;set;}
    
    public sampleApex(){
         method1();
    }
    
    public string method1(){
        str = '入った';
        system.debug('str = '+str);
        return str;
    }
}
1.Anonymousウィンドウを開く

開発者コンソールで
Debug >Open Execute Anonymous WindowをクリックするとAnonymousウィンドウが開く。(下図)
(ショートカットキーは"ctrl"+"E")
Anonymous

2.実行する

Anonymousウィンドウに下記のコードを書いてexecute!
この時、"open log"にチェックを入れると実行と同時にデバッグログを開きます。
"Execute Highlighted"をクリックすると指定したコード行のみを実行できるようです。

system.debug('ExecuteAnonymousから実行');
sampleApex demoApex = new sampleApex();
system.debug('demoApex = '+demoApex);
3.ログの確認

log
画面はログのみですが、プログラムを実行できているのが分かりますね。!

おわりに

トリガの実行や帳票出力のログを取るのに
わざわざレコードページに飛んで実行させていたんですが、
これを知って結構楽になりました。(ログを開いてくれるし)

今度、何かプログラム開発する時は
チェックポイントを活用してみようと思います。
設定作業に慣れるまでは苦戦しそうですが、
知りたい変数ごとにsystem.debug書いて文字列を確認するよりも
表形式で表示されている方が視認性が高まると思います。

個人的には、schemaクラスと合わせて使用して
グループやグループメンバーなどの
オブジェクトマネージャから確認できないオブジェクトの選択リスト値を確認するのに役に立ちそうとか思いました!
(当然、Devtoolなど外部のツールを使える時はそっちを使う方が便利ですが!)

これからも役に立ちそうなことを発信していくのでお楽しみに(?)
では、 では、 では、 では、 では、 では、 では、 では、 では、 では、