|
|
|
|
#1 |
|
Участник
|
Наткнулся на эту проблему. При анализе определил следующее: в методе recalcFutureRealizedExchAdj класса CustVendExchAdjustment_W
есть выборка X++: *************************************** while select forupdate custVendSettlement where custVendSettlement.SettleAmountCur && custVendSettlement.TransRecId == _custVendTrans.RecId && custVendSettlement.TransDate > _postingDate && custVendSettlement.CanBeReversed join forupdate custVendSettlementOffset where custVendSettlementOffset.TransRecId == custVendSettlement.OffsetRecId && custVendSettlementOffset.OffsetRecId == custVendSettlement.TransRecId && custVendSettlementOffset.TransDate == custVendSettlement.TransDate && custVendSettlementOffset.CanBeReversed { ************************************************* } { Но в некотрых случаях в недрах происходит добавление строки в таблицу сопоставлений и выборка идет по более чем одной строке. В результате получаем сообщение об ошибке, так как одна строка сопоставления Update несколько раз. Сам Update происходит в методе reverseSettlement класса CustVendReversePosting. X++: public void reverseSettlement() { // create reverse custVendSettlement for the original settled CustVendSettlement reverseCustVendSettlement = custVendSettlement.data(); ; reverseCustVendSettlement.CanBeReversed = NoYes::No; reverseCustVendSettlement.SettleAmountCur = - custVendSettlement.SettleAmountCur; reverseCustVendSettlement.SettleAmountMST = - custVendSettlement.SettleAmountMST; reverseCustVendSettlement.UtilizedCashDisc = - custVendSettlement.UtilizedCashDisc; reverseCustVendSettlement.ExchAdjustment = - custVendSettlement.ExchAdjustment; if (isConfigurationkeyEnabled(configurationkeynum(ReverseSettlementDatePrinciple_RU))) { reverseCustVendSettlement.TransDate = transactionDate; } custVendSettlement.CanBeReversed = NoYes::No; reverseCustVendSettlement.insert(); if (custVendSettlement.TransDate != transactionDate) { custVendSettlement.ReversedRecId_RU = reverseCustVendSettlement.RecId; reverseCustVendSettlement.ReversedRecId_RU = custVendSettlement.RecId; reverseCustVendSettlement.ReverseTrans_RU = NoYes::Yes; reverseCustVendSettlement.update(); } [COLOR=red]custVendSettlement.update();[/COLOR] [COLOR=red][/COLOR]} Для исправление поставил firstonly (пока в тестовой базе). Как считаете корректно ли такое исправление? Может кто по другому решил данную проблему. Последний раз редактировалось ena_ax; 19.03.2010 в 11:33. |
|
|
| Теги |
| конфликт обновления, курсовая разница |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Ошибка в логе при установке клиента AX 2009 | 9 | |||
| Ошибка в формате числа. | 7 | |||
| НДС с курсовых разниц | 7 | |||
| Отмена курсовых разниц | 11 | |||
| Русская локализация Axapta 3 ? | 59 | |||
|