Тема: Баг inventTable
Показать сообщение отдельно
Старый 19.01.2010, 17:16   #17  
Maximin is offline
Maximin
NavAx
NavAx Club
 
415 / 361 (13) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Наступил на те же грабли, но в AX 4.0 SP2.
Пытаюсь импортировать данные группой определений, одна из таблиц - UnitConvert (с режимом кэширования EntireTable). В результате импорта (есть доработка, которая всю сессию импорта проводит в одной транзакции), и вылетания в середине импорта ошибки по throw(), получаем, что изменения в других, "нормальных" таблицах откатились, а в UnitConvert видны записи, которые вставлялись туда импортом. Ессно, в самой базе таких записей нет, но при попытке импортировать заново - выпадает сообщение о уже существующих записях (срабатывает SysDataImportDefBase.findFromKeyData.
Добавление же в него

X++:
    common = new DictTable(_tableId).makeRecord();
    flush common;
, либо _forUpdate = true ситуации не исправляет, т.к. по-видимому, первое сбрасывает кэш клиента, а не AOS, а второе не смущает режим EntireTable. Зато ситуацию отлично исправляет Menuitem SysFlushData с модификатором Server. Т.е. мешает кэш на AOS.
Сбрасывать весь кэш AOSа при начале импорта или его неуспешном окончании из-за какого-то товарища, неправильно заполнившего импортные таблицы как-то не комильфо.
Есть ли другие способы решения?
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...

Последний раз редактировалось Maximin; 19.01.2010 в 17:19.