Спасибо, Сидд. Как вы и предлагали, с помощью регистрации ошибок, я сократил ее до фактического вызова nlapiDeleteRecord. Вот мой l oop:
for (var i = 0; searchresults != null && i < searchresults.length; i++)
{
try
{
nlapiLogExecution("Debug", "About to delete record id " + searchresults[i].getId());<br>
nlapiDeleteRecord(searchresults[i].getRecordType(), searchresults[i].getId());
}
catch (err)
{
var errMessage = err;
if(err instanceof nlobjError)
{
errMessage = errMessage + ' ' + err.getDetails() + ' ' + 'Failed to Delete ID : ' + id;
}
nlapiLogExecution('ERROR', 'Error', errMessage);
return err
}
}
Идентификатор, который он регистрирует, и идентификатор, который он показывает в сообщении об ошибке, совпадают - поэтому он регистрирует «О том, чтобы удалить идентификатор записи 1234» и затем выдает сообщение об ошибке:
Код: RCRD_DSNT_EXIST Подробности: эта запись не существует. Эта запись не существует. Не удалось удалить идентификатор: 1234
Но когда я запускаю свой сохраненный поиск, я обнаруживаю, что на самом деле имеет удаленную запись 1234. При следующем запуске он выдаст те же сообщения - но с идентификатором 1235. И тогда он будет удален 1235. Как будто по какой-то причине он пытается удалить его дважды, первый раз успешно, а затем второй раз не удаётся, так как он уже удален.
И я неоднократно проверял поиск - в одной цитате НЕ было нескольких строк. Если я выполню вышеприведенное с закомментированной строкой удаления, я получу то, что ожидал - запись в журнале для каждого идентификатора в моем поиске.
Есть предложения?