Операция Apex DML Удаление не разрешено в списке - PullRequest
0 голосов
/ 11 мая 2018

Я пишу тест Apex.

Я получаю сообщение об ошибке компиляции DML operation Delete not allowed on List

AsyncApexJob[] currentAsyncJobs = [SELECT Id FROM AsyncApexJob];
delete currentAsyncJobs;

Я пытаюсь удалить все AsyncApexJobs, чтобы позже я смог проверить, что правильное количество заданий было поставлено в очередь после выполнения класса, который я тестирую. то есть.

List<AsyncApexJob> asyncJobList = [SELECT Id FROM AsyncApexJob];
System.assertEquals(2, asyncJobList.size(), 'Two jobs should have been enqueued');

Я не могу сказать, что я делаю неправильно. Вот документация

Я использую атомный редактор с mavens mate.

1 Ответ

0 голосов
/ 11 мая 2018

Чтобы удалить задание, вы должны вызвать system.abortJob (jobId), я не верю, что вы можете просто удалить задание через DML.jobId должен быть либо

jobId - это идентификатор, связанный с AsyncApexJob или CronTrigger

. Для теста вы всегда можете получить начальное число, а затем проверить, что оно увеличилось насумму, которую вы ожидаете, если по какой-то причине вы не можете остановить работу, но если вы планируете работу с использованием расписания, вы должны просто протестировать запланированный cron согласно https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_scheduler.htm

...