[Salesforce]Agentforce VibesでApexテストクラス自動作成

1 Apexクラス作成する。

public with sharing class Sample {
    public Sample() {

    }
}

2 Agentforce Vibesに指示する。

Sampleのユニットテストクラスを作成して

3 手順2で作成された内容コピーする。

@isTest
public class SampleTest {
    
    @isTest
    static void testSampleConstructor() {
        // Arrange & Act
        Sample sample = new Sample();
        
        // Assert
        System.assertNotEquals(null, sample, 'Sample instance should not be null');
    }
}

4 空のApexテストクラスを作成して、手順3でコピーしたコードを貼り付ける。

[Salesforce]ChatGPDでテストクラス自動作成

ChatGPTを使ったApexテストクラス自動作成

以下のApexテストクラス作成して。
public class AccountProcessor implements Database.Batchable<sObject>,Database.Stateful{ 
 public AccountProcessor(){
 }
 }

以下は、提示された AccountProcessor クラスに対する Apexテストクラス のサンプルです。

@isTest
public class AccountProcessorTest {

    @isTest
    static void testBatchExecution() {
        // テストデータ作成
        List<Account> accounts = new List<Account>();
        for (Integer i = 0; i < 5; i++) {
            accounts.add(new Account(
                Name = 'TestAccount ' + i
            ));
        }
        insert accounts;

        // バッチ実行
        Test.startTest();

        AccountProcessor batch = new AccountProcessor();
        Database.executeBatch(batch, 2); // バッチサイズ指定

        Test.stopTest();

        // 簡易検証(レコードが存在することを確認)
        Integer countAccounts = [SELECT COUNT() FROM Account WHERE Name LIKE 'TestAccount%'];
        System.assertEquals(5, countAccounts);
    }
}

補足

  • Database.Stateful はテストクラス側では特別な対応不要です
  • 実際に executefinish で処理を追加した場合は、その結果を検証する assert を追加してください

もし「バッチの中身(start/execute/finish)も書いてほしい」なら、それも一緒に作れます 👍

[Salesforce]Apex で SOQL の結果を Map に反映する簡潔な書き方

一般的

List<Account> accList = [SELECT Id, Name FROM Account];
Map<Id, Account> accMap = new Map<Id, Account>();
for(Account a : accList){
    accMap.put(a.Id, a);
}

簡潔的

Map<Id, Account> accMap = new Map<Id, Account>(
  [SELECT Id, Name FROM Account]
);

[Salesforce]Apex ジョブのスケジュール

Apex ジョブのスケジュール

同時に使用できる有効なジョブまたはスケジュール済みジョブの数は 100 件です。

  1. [設定] から、[クイック検索] ボックスに「Apex クラス」と入力し、[Apex クラス] を選択して、[Apex をスケジュール] をクリックします。
  2. スケジュールを設定するクラスの名前を指定します。
  3. [Schedule Builder] または [Cron Expression] を選択して Apex ジョブをスケジュールします。
  4. スケジュールビルダーを選択した場合:
    1. Apex クラスを実行する頻度を指定します。
      • [毎週] の場合、ジョブを実行する曜日を 1 つ以上指定します ([月曜] と [水曜] など)。
      • [毎月] の場合、ジョブを実行する日付または曜日 (毎月第 2 土曜など) を指定します。Apex のスケジュール済みクラスの開始日と終了日を指定します。日付を 1 つ指定した場合は、ジョブは 1 回のみ実行されます。
      • 希望開始時刻を指定します。ジョブが開始する正確な時刻は、サービスの可用性によって異なります。
  5. [Cron Expression] を選択した場合は、cron 式を使用して時間を指定し、設定した時間にクラスを実行するようにスケジュールします。
  6. [保存] をクリックします。

[Salesforce]Using the super Keyword

Using the super Keyword

The super keyword can be used by classes that are extended from virtual or abstract classes. By using super, you can override constructors and methods from the parent class.

parent class:

public virtual class SuperClass {
    public String mySalutation;
    public String myFirstName;
    public String myLastName;

    public SuperClass() {

        mySalutation = 'Mr.';
        myFirstName = 'Carl';
        myLastName = 'Vonderburg';
    }

    public SuperClass(String salutation, String firstName, String lastName) {

        mySalutation = salutation;
        myFirstName = firstName;
        myLastName = lastName;
    }

    public virtual void printName() {

        System.debug('My name is ' + mySalutation + myLastName);
    }

   public virtual String getFirstName() {
       return myFirstName;
   }
}

extended class :

public class Subclass extends Superclass {
  public override void printName() {
        super.printName();
        System.debug('But you can call me ' + super.getFirstName());
    }
}

extended result:

The expected output when calling Subclass.printName is My name is Mr. Vonderburg. But you can call me Carl.

[Salesforce]Salesforce Account Engagement(旧Pardot)とは

Salesforce Account Engagement(旧Pardot)

セールスフォースが提供するマーケティングオートメーション(MA)ツールです。B2B企業向けのツールで、オンライン営業やマーケティング活動の効率化に役立ちます。
【機能】
自社サイトのWebトラッキングやフォーム入力などの顧客の行動履歴を収集する
顧客の興味関心や優先度を把握して営業マンに提供する
見込み客の創出に必要なコンテンツの作成を支援する
ナーチャリングの自動化により、営業部門へ引き渡す見込み顧客の質を向上させる
【Salesforceとの連携】
Salesforceと接続でき、システム間でデータを共有できる
マーケティング部門のデータを営業部門の顧客データとリアルタイムで連携させることができる
Salesforceキャンペーンと密接に連携・管理し、マーケティング施策の実行と効果の可視化を実現する
【導入のポイント】
自社サイトのコンテンツを充実し、狙ったキーワードで検索上位表示する
顧客情報をSales Cloudに集約する
見込み客(リード)数を確保する
有効リードを営業がフォローする体制を準備する