2016-08-04 3 views
0

Я написал простую операцию записи одной записи в процессе производства по запросу пользователя в экземпляре 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.

спасибо.

+0

Вероятно, запись заблокированные другой застрявший экземпляр? С другой стороны, я предполагаю, что «fotupdate» - это опечатка? И еще одно замечание, пожалуйста, не скрывайте исключений с пустым уловом. Btw, вы отлаживали, если программа успешно запускается методом 'delete'? –

+0

'forupdate' was not typo Я знаю, что операция обновления не требует, чтобы ни транзакционный блок, это была работа, написанная кем-то еще, и я не хотел ничего менять в prod. Я отредактировал код, catch не пуст в фактическом коде. На прошлой неделе я выполнил успешные операции удаления. Другой пример был застрял в установке пакетного задания. Запросите свое понимание. – piku

+0

Я говорил о «t» в 'fotupdate'. Во всяком случае, я думаю, вы должны попытаться удалить запись, если никакие пакетные задания не запущены, а другие пользователи не используют эту систему. –

ответ

1

Если вы пытаетесь предотвратить это, вы можете использовать блокировку pessimistic, где вы получаете блокировку обновления.

select pessimisticLock custTable where custTable.AccountNum > '1000'

Смотрите эти ссылки для получения дополнительной информации:

http://dev.goshoom.net/en/2011/10/pessimistic-locking/

https://blogs.msdn.microsoft.com/emeadaxsupport/2009/07/08/about-locking-and-blocking-in-dynamics-ax-and-how-to-prevent-it/

https://msdn.microsoft.com/en-us/library/bb190073.aspx

Смежные вопросы