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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.08.2004, 21:50   #19  
Yaroslav Batozskiy is offline
Yaroslav Batozskiy
Участник
 
15 / 10 (1) +
Регистрация: 19.01.2002
Адрес: Moskow
Цитата:
Что смутило меня: Скрипт находит такие поля, которые могут являться ссылами по recid. Делает это он довольно достоверно.
Фаза 2, шаг 8—сканер, который пытается найти соотвествующую таблицу к каждому целому полю в системе, и считает такие параметры, как процент попаданий и релевантность.
Потом отбрасывает то, что является случайным. В результате имеем около десятка полей (с сотней вариантов), который _с точки зрения сканера_ могут быть ссылками по RecId. Но на самом деле они могут таковыми и не являться. Обычно, просто по названию полей и по имени таблицы, на которую, как предположил сканер, ссылается поле видно, может такое быть, или не может. Поэтому результат работы сканера можно просмотреть _только_ вручную, руководствуясь процентом попаданий и еще тремя параметрами. Формализовать это сложно, может, потом сделаю
Ограничением алгоритма является то, что чем меньше строк таблице, тем меньше точность прогнозирования. И если в таблице есть только одна строка со ссылкой, которая другими путями найдена не была, то сканер её тоже не найдет. Отсюда слово «довольно» в фразе «ищет довольно достоверно». Но если в БД в таблице, например, VendSettlement поле TransRecId как ни-будь переименовать или сдублировать, то сканер это точно обнаружит, и покажет достоверность более 90%. Сканер—это уже новая доработка скрипта.
Цитата:
Нам ли оперировать такими терминами, как "иногда некорректно работать"? Ошибка или есть или ее нет.
Если Вы можете привести описание шагов, с помощью которого можно воспроизвести именно _ошибку_, и MBS это признает именно _ошибкой_, тогда почему Вы еще не зарегистрировали это в Сервисной системе MBS. Я пока вижу неправильную работу только при нарушении логической целостности данных.
Цитата:
Если есть ссылка, а запись, на которую она ссылается, отсутствует, и таких ссылок несколько
Ошибочные ссылки по Recid обнуляются и строки пишутся в таблицу FixRecidLostedRefs (тот самый лог) c указанием причины, значения ссылки, старого и нового RecId битой строки. Что с ними делать--я думаю можете догадаться сами--что то удалить, что то исправить (по tablename видно, особеноо если это *Settlement)
Цитата:
и есть несколько записей, на которые нет ссылок, как это будет автоматически разгребаться?
Именно это, по моему, разгребаться не должно. Скрипт все таки только дефрагментирует базу и избавляет её от ошибок логической целостности, а не лечит все ошибки пользователей, еще и с анализом первички
Теги
ax3.0, faq, recid, дефрагментирование recid

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
if (record) vs if (record.RecId) kashperuk DAX: Программирование 18 27.11.2008 18:53
поля, содержащие RecId somebody DAX: Программирование 15 16.05.2008 17:50
aEremenko: Дефрагментация RecID Blog bot DAX Blogs 2 06.03.2007 22:25
Два RecId у одной записи таблицы sparur DAX: Программирование 33 18.12.2006 15:56
Форма InventOnhandItem, Почему RecID у InventSum в этой форме всегда 0? Кирилл DAX: Программирование 2 25.05.2004 18:15

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

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

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