[Salesforce]Visual Studio Codeで「Error: EPERM: operation not permitted」対応

Error: EPERM: operation not permitted, unlink 'C:\Users\〇〇〇user\AppData\Local\sf\client\9.999.9-999zz9z\bin\node.exe'
Code: EPERM

バッチ ファイルが見つかりません。

対応手順

  • Copied the location.( C:\Users\〇〇〇user\AppData\Local\sfdx\client\9.999.9-999zz9z\bin)

  • Search for environment variables in windows search bar

  • Select ‘Edit the System Environment Variables’ and press ‘Environment Variables’ button under ‘Advanced’ Tab.

  • Select path and click on edit.

  • Click New.

  • Paste the location. C:\Users\〇〇〇user\AppData\Local\sfdx\client\9.999.9-999zz9z\bin

  • Click Ok for all windows and restart your VSCode.

[Salesforce]開発者コンソールでクエリ結果エクスポート方法

開発者コンソールでクエリ結果エクスポート方法

開発者コンソールからクエリを実行します。

クエリ結果を右クリックし、[検証] を選択します。

table タグを探します。

「要素を複製」を選択します。

エクセルを開いて貼り付けます。

[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. [保存] をクリックします。