AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.02.2017, 15:33   #9  
Slava Chernenko is offline
Slava Chernenko
Участник
Самостоятельные клиенты AX
Соотечественники
 
34 / 15 (0) ++
Регистрация: 30.04.2008
Адрес: Copenhagen, Denmark
Наткнулся на ошибку, полез смотреть откуда ноги растут, оказалось так всегда было, в смысле в SYS слое такой код.
AX 2009, EmplTable form, datasource EmplTable write():

X++:
public void write()
{
.....

    ttsbegin;

......

    if (emplTable.PartyId && dirPartyTable.Name && !DirPartyTable::exist(emplTable.PartyId))
    {
.......

        if (dirPartyTable.validateWrite())
        {
            // Create a new DirPartyTable row.
            dirPartyTable.write();
            lastNewUnusedId = "";
        }
        else
        {
            // Abort the transaction.
            ttsabort;
        }
    }
    else if (emplTable.PartyId && dirPartyTable.Name && dirPartyTableChanged && DirPartyTable::exist(emplTable.PartyId))
    {
        if (dirPartyTable.validateWrite())
        {
            // Update the existing DirPartyTable row.
            dirPartyTable.write();
        }
        else
        {
            // Abort the transaction.
            ttsabort;
        }
    }

    super();

.....

    ttscommit;
}
Проблема в комбинации ttsabort в середине кода и ttscommit в конце.
Интересно, куда этот код разползся в следующих версиях и выжил ли в AX 7...
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:40.