Я написал простую операцию записи одной записи в процессе производства по запросу пользователя в экземпляре AX, в то время как другой экземпляр застрял и открылся. Однако запись не была удалена.операция удаления не удалась в Axapta 2009
try
{
ttsbegin;
select fotupdate tableBuffer where tableBuffer.recid == 5457735:
tableBuffer.delete();
ttscommit;
}
catch (exception::error)
{
info("Delete operation cancelled.");
}
delete()
функция tableBuffer была переопределена с кодом после super()
хранить удаленные записи в другой таблице.
Я выполнил ту же операцию ранее успешно, но не там, где есть сценарий, подобный сегодня (выполняется в одном экземпляре, в то время как другой экземпляр застрял).
Просьба указать возможную причину, поскольку я считаю, что запись все еще сохраняется как на сервере sql, так и на AX.
спасибо.
Вероятно, запись заблокированные другой застрявший экземпляр? С другой стороны, я предполагаю, что «fotupdate» - это опечатка? И еще одно замечание, пожалуйста, не скрывайте исключений с пустым уловом. Btw, вы отлаживали, если программа успешно запускается методом 'delete'? –
'forupdate' was not typo Я знаю, что операция обновления не требует, чтобы ни транзакционный блок, это была работа, написанная кем-то еще, и я не хотел ничего менять в prod. Я отредактировал код, catch не пуст в фактическом коде. На прошлой неделе я выполнил успешные операции удаления. Другой пример был застрял в установке пакетного задания. Запросите свое понимание. – piku
Я говорил о «t» в 'fotupdate'. Во всяком случае, я думаю, вы должны попытаться удалить запись, если никакие пакетные задания не запущены, а другие пользователи не используют эту систему. –