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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.11.2015, 13:31   #1  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Последствия добавления relation на существующую таблицу
Есть таблица. В ней поле DefaultDimension. У поля EDT LocalRecId, relation по этому полю к DimensionAttributeValueSet на таблице нет
Если пользователь в запросе накладывает на эту таблицу условия, то поля из DimensionAttributeValueSet не появляются (тк нет relation). Обычно ядро автоматичски создает поля типа Dimension.Customer, Dimension.CustomerRegion etc
Мне нужно дать пользователю взможност фильтровать по fin dimensions, поэтому добавила relation.
Вопросы:
1) Какие могут быть последствия для существующего функционала? В коде я вижу только заполнение простым присваиванием этого поля из другой таблицы, на что relation по идее не должен повлиять.
2) Можно ли добавить фильтр по fin dim как-то иначе?
Пробовала сделать через запрос, т.е создат ь AOT->Query и добавить к моей таблице join к DimensionAttributeValueSet в , но по-моему для fin dimensions ядро хитро обрабатывает fin dim связи и поэтому полей в фильтре не появлется (или я что-то не так делаю)
Старый 17.11.2015, 13:49   #2  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от kitty Посмотреть сообщение
Вопросы:
1) Какие могут быть последствия для существующего функционала? В коде я вижу только заполнение простым присваиванием этого поля из другой таблицы, на что relation по идее не должен повлиять.
2) Можно ли добавить фильтр по fin dim как-то иначе?
Пробовала сделать через запрос, т.е создат ь AOT->Query и добавить к моей таблице join к DimensionAttributeValueSet в , но по-моему для fin dimensions ядро хитро обрабатывает fin dim связи и поэтому полей в фильтре не появлется (или я что-то не так делаю)
Если таблица используется где то еще, то добавление нового релейшена может повлиять на существующий функционал. Перед добавлением будет не лишним проанализировать поля из релейшена. Если релейшен нужен в какой то кастомной\единственной форме, то возможно будет оправданно прописать его в коде, а не создавать на таблице. С другой стороны когда релейшн на таблице, то он будет автоматически использоваться. Так что все зависит от самого релейшена и его использования.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 17.11.2015, 13:57   #3  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
То, что изменение существующих объектов может повлиять на функционал и так понятно, иначе б вопрос не возник. Хотелось бы конкретики.
+ Есть предложения, как можно добавить фильтр (в форму фультрации, чтобы пользователь мог наложить условия перед запуском функционала) по fin dim таблицы, не создавая relation?

Последний раз редактировалось kitty; 17.11.2015 в 14:35.
Старый 17.11.2015, 16:46   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,322 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от kitty Посмотреть сообщение
но по-моему для fin dimensions ядро хитро обрабатывает fin dim связи и поэтому полей в фильтре не появлется (или я что-то не так делаю)
Вся хитрость заключается в том, чтобы метод \Classes\SysDictType\isDimension
вернул бы истину. А для этого EDT у Вашего поля - должен быть одним из тех, что перечислены в этом методе.
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: kitty (1).
Старый 17.11.2015, 18:14   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
В DAX2012 релейшены по феншую определяются на таблице.
Вроде бы это по описанию было сделано для устранения противоречий. Но, опять же, если есть несколько релейшенов, противоречащих друг другу, то порядок их применения ничем не отличается от предыдущих версий - то есть, совершенно не определен. Как эти релейшены сработают можно проверить только на конкретных данных.
Как уже сказали мои коллеги, вполне возможно, что управлять релейшенами придется из кода. Вполне возможно, что сработают релейшены, заданные декларативно, но есть большая вероятность, что в случае одинаковых релейшенов Акса не сможет выбрать нужный и придется делать "закат солнца вручную", прописывая в коде реакцию на связи.
Старый 17.11.2015, 18:21   #6  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Вообще, если учесть подход в DAX2012, что "нормализация данных это наше все" релейшены это не самое сложная вещь. Ещё ни раз придется столкнуться с тем, что раньше что-то делали простым указанием что и как связано, в DAX202 придется это прописывать в коде.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: The 'view details' feature will not work on an EDT field when the field has a relation defined in the 'table references' subnode. Blog bot DAX Blogs 0 26.01.2013 02:14
ax-erp: EDT Relation Migration Tool [AX 2012] Blog bot DAX Blogs 0 14.12.2012 23:11
Добавление полей в существующую таблицу - баг или фича ? kair84 DAX: Программирование 8 12.10.2012 12:15
Добавление строк в существующую таблицу! Kolbin_Mihail DAX: Программирование 9 18.03.2005 13:48
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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