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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2018, 19:27   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,658 / 1162 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от IKA Посмотреть сообщение
Бывает здравый смысл, а бывает - следование политике партии, отсюда, соответственно, и возник же вопрос... Я могу просто недооценивать что-то, поэтому и поинтересовалась
"Здравый смысл" - это всего-лишь опыт Проблема в том, что это опыт, приобретенный в другой версии системы. Работающей по другим "правилам". И в новой версии системы этот опыт может завести сильно не туда.

Именно поэтому и советую, по возможности, придерживаться правил текущей системы. В Ax2012 уже все "заточено" под RecId. И автоматическое отображение на форме вместо RecId значений альтернативных ключей, и автоматический поиск по альтернативным ключам, и автоматическое приджойнивание таблиц-справочников. Много всего, в общем.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Vadik (1).
Старый 16.02.2018, 11:11   #2  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Использую сам и требую от других, чтоб использовали, так как отныне это "лучшие мировые практики" и ошибка BP.

Как разработчик, я довольно быстро привык к суррогатным ключам. С точки зрения разработки, отладки и визуализации на формах никаких проблем нет, если в таблицах и типах данных правильно прописывать связи и ссылки.
Маленькое неудобство состоит лишь в дополнительной конвертации RecId в что-то более понятное для пользователя при отображении сообщений пользователю через инфолог, когда где-то внутри класса нужно проверить ключевое значение RecId на предмет допустимости.

Попытки MS обосновать использование суррогатных ключей увеличением производительности выглядят довольно нелепо. Если раньше добавление в документ ссылки на 5 новых справочников практически никак не отражались на производительности, то теперь это + 5 дополнительных outer join к основному запросу формы. В купе с таблицами-экстеншенами жалкое зрелище на более-менее приличных объемах данных. Но, искусство требует жертв...

Ну и забавный глюк или фича, связанная с использованием суррогатных ключей - это невозможность поиска пустых значений в следствие специфики реализации outer join. Т.е. система прекрасно позволяет найти в документе значение "А" или "Б" в поле на основе RecId, но не позволяет найти пустые значения в этом поле.
И если пользователю ну прямо очень нужен такой фильтр - приходится делать отдельную кнопку или как-то еще извращаться. Ну а пользователю рассказывать про "лучшие мировые практики", которые требуют для поиска пустых значений отдельную кнопку. Со стороны пользователя, наверное, кажусь идиотом, но что он вообще понимает в "лучших мировых практиках". Для него, конечно, без разницы, какое значение в поле искать. Хорошо, что хоть потребность в поиске пустых значений возникает не часто.
__________________
Dynamics AX Experience
За это сообщение автора поблагодарили: Logger (3).
Старый 16.02.2018, 11:57   #3  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
396 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Цитата:
Сообщение от CDR Посмотреть сообщение
И если пользователю ну прямо очень нужен такой фильтр - приходится делать отдельную кнопку или как-то еще извращаться.
Как вариант, использовать QueryFilter вместо QueryBuildRange:
https://msdn.microsoft.com/en-us/library/gg881181.aspx
Старый 16.02.2018, 12:05   #4  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
Как вариант, использовать QueryFilter вместо QueryBuildRange:
https://msdn.microsoft.com/en-us/library/gg881181.aspx
Вариант хороший, но немного не про то.
__________________
Dynamics AX Experience
Старый 16.02.2018, 12:01   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,889 / 3165 (113) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от CDR Посмотреть сообщение
Маленькое неудобство состоит лишь в дополнительной конвертации RecId в что-то более понятное для пользователя при отображении сообщений пользователю через инфолог, когда где-то внутри класса нужно проверить ключевое значение RecId на предмет допустимости.
А как же отладчик ? Неудобно видеть везде recid значения.

Цитата:
Сообщение от CDR Посмотреть сообщение
Попытки MS обосновать использование суррогатных ключей увеличением производительности выглядят довольно нелепо. Если раньше добавление в документ ссылки на 5 новых справочников практически никак не отражались на производительности, то теперь это + 5 дополнительных outer join к основному запросу формы. В купе с таблицами-экстеншенами жалкое зрелище на более-менее приличных объемах данных. Но, искусство требует жертв...
Как-то легко вы идете на такие жертвы. Видимо проблемы с производительностью еще не допекали. Или вы придумали простой способ как их обойти ?


Еще из неудобств добавлю невозможность легко организовать ссылки на разные таблички.
Например было поле со ссылкой на строковый первичный ключ таблички. Пришло требование чтобы оно могло ссылаться на разные таблички. Раньше - просто добавляешь поле с енумом и делаешь Relation-ы (по аналогии с парой InventTrans.TransRefId, InventTrans.TransType).

Если же поле было суррогатным ключом то так просто не получится. По крайней мере reference контрол такого не понимает и отобразить не может. Очень негибко.
Старый 16.02.2018, 12:07   #6  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Цитата:
Сообщение от Logger Посмотреть сообщение
Как-то легко вы идете на такие жертвы. Видимо проблемы с производительностью еще не допекали. Или вы придумали простой способ как их обойти ?
Это был сарказм, если что.
__________________
Dynamics AX Experience
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Используете ли вы @SYS метки при создании своих партнерских расширений? kashperuk DAX: Программирование 35 12.03.2011 23:23
Покупка Аксапта... Лицензионные ключи и модули edd DAX: Прочие вопросы 20 20.12.2006 14:33
Используете ли Вы OLAP в Аксапте? Hidden DAX: Функционал 21 20.07.2006 17:19
Как загрузить лицензии чтобы не слетели конф. ключи? MironovI DAX: Администрирование 2 20.01.2006 12:42
Лицензионные ключи eremite DAX: Администрирование 12 26.07.2004 14:53

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:26.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.