Apex-デバッグ

デバッグは、プログラミング開発において重要な部分です。Apexには、デバッグに使用できる特定のツールがあります。それらの1つは、デバッグログに変数の値と出力を出力するsystem.debug()メソッドです。

デバッグには次の2つのツールを使用できます-

  • 開発者コンソール
  • デバッグログ

開発者コンソールを介したデバッグ

以下のように、開発者コンソールを使用して、Apexをデバッグするための匿名機能を実行できます。

Example

今日作成された顧客レコードをフェッチする既存の例を考えてみましょう。クエリが結果を返しているかどうかを知りたいだけです。返されている場合は、Listの値を確認します。

以下のコードを実行匿名ウィンドウに貼り付け、実行匿名ウィンドウを開くために行った手順に従います。

Step 1 −開発者コンソールを開きます

Step 2 −以下に示すように、「デバッグ」から匿名実行を開きます。

Step 3 − [匿名の実行]ウィンドウを開き、次のコードを貼り付けて、[実行]をクリックします。

// Debugging The Apex
List<apex_customer__c> customerList = new List<apex_customer__c>();
customerList = [SELECT Id, Name FROM APEX_Customer__c WHERE CreatedDate =
today];
// Our Query
System.debug('Records on List are '+customerList+' And Records are '+customerList);
// Debug statement to check the value of List and Size

Step 4 −以下に示すようにログを開きます。

Step 5 −以下に示すように、フィルター条件に「USER」と入力します。

Step 6 −以下に示すように、USERDEBUGステートメントを開きます。

デバッグログを介したデバッグ

デバッグログを介して同じクラスをデバッグすることもできます。Customerオブジェクトにトリガーがあり、いくつかの変数値についてデバッグする必要があるとします。次に、以下に示すように、デバッグログを介してこれを行うことができます。

これは、変更された顧客がアクティブで、現在スコープ内にある変数とレコードの値を確認する場合に、[説明]フィールドを更新するトリガーコードです。

trigger CustomerTrigger on APEX_Customer__c (before update) {
   List<apex_customer__c> customerList = new List<apex_customer__c>();
   for (APEX_Customer__c objCust: Trigger.new) {
      System.debug('objCust current value is'+objCust);
      
      if (objCust.APEX_Active__c == true) {
         objCust.APEX_Customer_Description__c = 'updated';
         System.debug('The record which has satisfied the condition '+objCust);
      }
   }
}

以下の手順に従って、デバッグログを生成します。

Step 1−ユーザーのデバッグログを設定します。[設定]に移動し、検索設定ウィンドウに「デバッグログ」と入力して、[リンク]をクリックします。

Step 2 −デバッグログを次のように設定します。

Step 3−設定が必要なユーザー名を入力します。ここにあなたの名前を入力してください。

Step 4 −デバッグログを生成するためにイベントが発生する必要があるため、顧客レコードを変更します。

Step 5−ここで、デバッグログセクションに再度移動します。デバッグログを開き、[リセット]をクリックします。

Step 6 −最初のデバッグログの表示リンクをクリックします。

Step 7 −以下に示すように、ブラウザ検索を使用して文字列「USER」を検索します。

デバッグステートメントには、ポイントを設定したフィールドの値が表示されます。