AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.12.2020, 15:53   #1  
Мышелов Федор is offline
Мышелов Федор
Участник
 
26 / 10 (1) +
Регистрация: 26.02.2014
Ошибки при синхронизации
Добрый вечер.
Недавно перенес очередной проект на рабочее приложении, в проекте несколько таблиц несколько классом... Так вот после переноса запустил компиляцию проекта и синхронизацию таблиц проекта и при синхронизации получил вот такое сообщение. Сообщение пропало только после того как я снял со всех таблиц перенесенного проекта индексы, но буквально сегодня прилетела новая проблема с этим проектом и таблицами из него. Система выдала вот такую прелесть [Microsoft][SQL Server Native Client 10.0][SQL Server]Index 'I_51205RECID' on table 'WMCOUNTADDFROMATSDTABLE' (specified in the FROM clause) does not exist и перестала работать. Пользователь вышел из системы повторно зашел и пока ошибка не повторялась. Может кто подскажет что это может быть и в каком направлении рыть.
Из действий которые уже выполняли чтобы решить данную проблему останавливали AOS, повторно переносил проект да и все наверно.

Ax 3.0
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 98
Размер:	143.4 Кб
ID:	13005  
Старый 17.12.2020, 14:43   #2  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Похоже, что где-то в коде запроса указан hint для использования индекса по recid таблицы. После того как вы отключили индексы, код, который их использует будет выдавать ошибки.
Нужно или включить индексы и сделать ревизию кода на необходимость использования hintов при запросе к таблицам.
__________________
Ален ноби, ностра алис.
Что означает - если один человек построил, другой завсегда разобрать может.
Старый 17.12.2020, 14:56   #3  
Мышелов Федор is offline
Мышелов Федор
Участник
 
26 / 10 (1) +
Регистрация: 26.02.2014
проблема в том что hint - овых индексов там нет, а проблема проявилась после переноса проекта и говорила, что не может внести изменения в индекс (не на стороне Ax а на стороне Sql сервера alter index....) и исчезла после того как я снес все индексы на таблицах проекта. А теперь на сколько я понял система сама сделала индекс по RecId и не может что - то с ним сделать, что и приводит к ошибке.
Старый 17.12.2020, 15:55   #4  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Посмотрите есть ли у Вас записи с одинаковым RecId в этой проблемной таблице? В AX2009, например (на скриншоте видно что у вас или 3.0 или 4.0 - поэтому не знаю сейчас как там), не создать даже не уникальный индекс на поле RecId, если есть 2 записи с одинаковым RecId. Решив проблему с такими записями, решалась и проблема создания индекса!
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 17.12.2020, 16:45   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Индекс может отсутствовать по 2 причинам

1. Физически нет на стороне SQL, но в Axapta он есть
2. Имя индекса, сформированное в Axapta, не соответствует имени индекса в SQL


1. Физически нет на стороне SQL, но в Axapta он есть

Если не рассматривать вариант, когда удалили на стороне SQL вручную, то это то, что уже сказал Pustik

Если индекс имеет свойство AllowDuplicates = No, то в таблице не должно быть дублей по полям этого индекса. Иначе он не сможет быть создан в SQL, хотя в Axapta будет присутствовать. Например, индекс по RecId имеет такое свойство

Т.е. как раз и получим описанную ситуацию. В среде Axapta индекс есть, но в SQL он так и не был создан


2. Имя индекса, сформированное в Axapta, не соответствует имени индекса в SQL

Имя индекса SQL формируется так

"I_" + "id таблицы" + "Имя индекса в Axapta"

В среде Axapta индекс ищется по его имени собственно в Axapta Но при формировании запроса к SQL будет автоматически добавлять префикс. Из переменных значений тут только id-таблицы

При обновлении таблиц их id не менялся? Или может Axapta при каких-то условиях "теряет" корректное значение id-таблиц?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Мышелов Федор (1).
Старый 17.12.2020, 17:36   #6  
Мышелов Федор is offline
Мышелов Федор
Участник
 
26 / 10 (1) +
Регистрация: 26.02.2014
Действительно, на одном приложении Id элемента 51210 на другом 51207, это порождает следующий вопрос, а точнее два. Как такое могло случится, а самое главное как это лечить
Старый 17.12.2020, 18:18   #7  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Это у вас Axapta 3.0 и Windows XP? Вот это да!!
В древних версиях системы была форма SQL Administration или типа того, и какая-то кнопка справа для лечения и перестройки индексов?
Вот, нашел в чуть менее раритетной системе:

Нажмите на изображение для увеличения
Название: Screenshot 2020-12-17 162155.png
Просмотров: 49
Размер:	9.8 Кб
ID:	13006

Кажется, лет десять назад было еще принято удалять строки в SQLDICTIONARY и пересинхронизировать.

Последний раз редактировалось EVGL; 17.12.2020 в 18:23.
Старый 17.12.2020, 19:17   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Мышелов Федор Посмотреть сообщение
Действительно, на одном приложении Id элемента 51210 на другом 51207, это порождает следующий вопрос, а точнее два. Как такое могло случится, а самое главное как это лечить
При экспорте/импорте XPO в старых версиях была галка вроде "Экспортировать со значениями кодов". Под термином "код" как раз и подразумевалось id. На картинке от версии dax4. Возможно, в dax3 она как-то по другому называлась

Соответственно, если галку устанавливать, то новый объект будет создан с переданным id (если это возможно). Если галку не ставить, то id нового объекта будет сформирован автоматически

По хорошему, лучше эту галку не ставить. Пусть id формируется автоматически. Тот факт, что id в разных системах будут отличаться, как правило, не критично, кроме отдельных специфических ситуаций

Подозреваю, что кто-то решил посмотреть, что будет, если эту галку установить. Ну и получили конфликт ранее созданных объектов и перенесенных значений id. Тут только пересоздавать индексы заново. Т.е. именно что удалить и создать заново
Миниатюры
Нажмите на изображение для увеличения
Название: Формы экспорта и импорта dax4.PNG
Просмотров: 51
Размер:	32.9 Кб
ID:	13009  
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 17.12.2020 в 19:26.
Старый 18.12.2020, 06:53   #9  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от Мышелов Федор Посмотреть сообщение
Как такое могло случится
Хронология создания объектов в разработческой среде (и последовательность выделения ID создаваемым объектам) отличалась от хронологии создания этих объектов в рабочей среде - вполне естественное явление при любом варианте разработки, будь то разработка нескольких проектов одновременно несколькими разработчиками или разработка одного проекта одним разработчиком.

Упомянутую галку экспорта с кодами объектов можно использовать только в том случае, когда изначально все модификации между рабочей и тестовой средами переносились с ее использованием и в рабочей ничего самостоятельно не создавалось - этим достигнется возможность безболезненного переноса между средами объектов, завязанных на ID других объектов (View, Query и т.д.), и каких-либо настроечных метаданных с завязками на на ID-объектов, ежели таковые используете...

Во всех остальных случая, когда имеется нарушение вышеозвученного принципа и весьма вероятны разбегания значений ID одних и тех же объектов в разных средах - эту галку из диалога экспорта лучше скрыть от греха подальше и не использовать, ибо времени на перенос ID-зависимых объектов вручную потратится куда меньше, чем на ручное разгребания конфликтов ID
__________________
Мы летаем, кружимся, нагоняем ужасы ...

Последний раз редактировалось TasmanianDevil; 18.12.2020 в 06:59.
За это сообщение автора поблагодарили: Мышелов Федор (1).
Старый 18.12.2020, 09:00   #10  
Мышелов Федор is offline
Мышелов Федор
Участник
 
26 / 10 (1) +
Регистрация: 26.02.2014
Спасибо всем кто принял участие в решении проблемы, Ваши советы и предложения очень помогли в понимании ошибки и поиске пути ее решения.

Ошибка была устранена путем копирования одного рабочего приложения и замены скопированным другого, еще аз спасибо всем кто отозвался.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
[Решение]: Ошибки синхронизации базы R3 после отключения конфигурационного ключа KiselevSA DAX: Администрирование 1 30.07.2014 13:19
Ошибки синхронизации при отключении конфигурационных ключей AX 2012 leva DAX: Программирование 1 19.02.2014 14:33
Ошибки синхронизации при upgrade Qaz Qwerty DAX: Администрирование 7 18.01.2011 02:54
ошибки синхронизации в DAX 4.0 Nikolaich DAX: Администрирование 7 26.04.2010 10:56
ошибки синхронизации Azat DAX: Программирование 1 14.01.2005 13:32

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

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

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