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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.05.2006, 21:13   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
? Вопрос о корректности Relations
Уважаемые коллеги, обнаружил у себя в репозитарии следующую ситуацию:

В таблице RAssetTable в узле Relations отношение OrgAddressTable состоит из двух линий (обе линии с типом TableRelation::Field):

1. OrgAddrAc
2. RAssetTable.OrgId == OrgAddressTable.OrgId

Сдается мне, что с линией 1 не всё в порядке... А у вас как выглядит этот Relation?
Старый 06.05.2006, 21:42   #2  
_AnK_ is offline
_AnK_
Участник
Аватар для _AnK_
Ex AND Project
 
160 / 31 (2) +++
Регистрация: 03.11.2005
Адрес: СПб
У меня такого релейшена вообще нет. Это у вас кастомизация такая =)
Старый 06.05.2006, 21:52   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от _AnK_
У меня такого релейшена вообще нет. Это у вас кастомизация такая =)
Ну похоже на то. Причем компиляция таблицы не ругается никак. А чего с ним делать-то: убить или забить?
Старый 06.05.2006, 23:08   #4  
_AnK_ is offline
_AnK_
Участник
Аватар для _AnK_
Ex AND Project
 
160 / 31 (2) +++
Регистрация: 03.11.2005
Адрес: СПб
1. Разобраться что за таблица OrgAddressTable (тоже кастомизация), нафига этот релейшен, и каким он должен быть на самом деле.
2. Вздрючить афтара косяка.

=)
Старый 10.05.2006, 09:09   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от _AnK_
2. Вздрючить афтара косяка.
Увы, это не так просто. Как у Райкина: "Кто шил костюм? - Выходят 100 человек."
Меня смущает другое: если можно ввести кривой релейшн, то как на него система реагирует в дальнейшем? Просто игнорирует?

P.S. Relations вообще несут какую-нибудь нагрузку в плане контроля целостности и т.п.? Или это не более чем информация о, скажем так, "рекомендуемо-предполагаемой" связи таблиц, которую в принципе можно нарушить вводом в связанные таблицы данных, которые не будут соответствовать этой связи?

P.S.2. И еще вопрос. Конкретный Relation по определению относится к двум таблицам. В репозитарии же конкретный Relation указывается только на одной таблице из двух. Вопрос - на какой? На той, которая на стороне "многие" в отношениии "1:многие"? Или действует какой-то другой принцип?

Последний раз редактировалось Gustav; 10.05.2006 в 09:28.
Старый 10.05.2006, 09:49   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,323 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Gustav
Меня смущает другое: если можно ввести кривой релейшн, то как на него система реагирует в дальнейшем? Просто игнорирует?
По сути - релейшны нужны для организации лукапов и переходов к основной таблице - по умолчанию, без каких либо перекрытий в форме. Ну и заодно - служат проверкой при сохранении записи (чтобы выбирали только значения из лукапа).
Т.е. по приоритетам, в порядке убывания строится так:
1. (самый важный) - перекрытый метод lookup/jumpref
2. (если методы не перекрыты) - согласно информации о релейшнах на таблицах
3. (если информация на таблицах отсутствует) - согласно информации о релейшнах на расширенном типе данных.
Если будет кривой релейшн то система может отреагировать двояко:
1) Если сумеет разобраться - то построит лукап и переход к основной таблице и будет делать проверку введенного значения. (Вопрос - будет ли полученный результат совпадать с желаемым)
2) Если не сумеет разобраться (или же как здесь - поле возможно было удалено) - то просто проигнорирует релейшн (будет искать правильный релейшн на расширенном типе данных)
Цитата:
Сообщение от Gustav
P.S. Relations вообще несут какую-нибудь нагрузку в плане контроля целостности и т.п.? Или это не более чем информация о, скажем так, "рекомендуемо-предполагаемой" связи таблиц, которую в принципе можно нарушить вводом в связанные таблицы данных, которые не будут соответствовать этой связи?
Не-а. Не несут. Информация может использоваться в перекрестных ссылках, при построении запроса (querybuilddatasource.relations(true)); при построении пользовательского запроса (по Ctrl+F3) - при добавлении таблицы или еще в подобных ситуациях.
Цитата:
Сообщение от Gustav
P.S.2. И еще вопрос. Конкретный Relation по определению относится к двум таблицам. В репозитарии же конкретный Relation указывается только на одной таблице из двух. Вопрос - на какой? На той, которая на стороне "многие" в отношениии "1:многие"? Или действует какой-то другой принцип?
Да, там где многие. См табл custTrans и rcontractTable
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 10.05.2006 в 10:05.
За это сообщение автора поблагодарили: Gustav (1).
Старый 10.05.2006, 10:04   #7  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
2 sukhanchik: Спасибо за развернутый ответ и поздравления с юбилейным 300-м сообщением
Старый 10.05.2006, 10:15   #8  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,323 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Спасибо за поздравления! Есть повод отметить
__________________
Возможно сделать все. Вопрос времени
Старый 11.05.2006, 13:51   #9  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вообще-то, есть место, где Relation работает в смысле организации целостности данных. Это узел DeleteAction на таблице.

Здесь, по умочанию, используются ВСЕ relation, так или иначе организованные между двумя таблицами. Как через EDT, так и через узел Relation
За это сообщение автора поблагодарили: sukhanchik (1).
Старый 11.05.2006, 15:30   #10  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,323 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Хм... вот про него-то я и забыл... спасибо за ценное замечание.
__________________
Возможно сделать все. Вопрос времени
Теги
relation

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Two Tables with Two Relations Blog bot DAX Blogs 0 31.03.2008 11:05
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
Как не использовать relations на таблицах demetra DAX: Программирование 13 14.07.2006 11:00
расчеты с персоналом. НДФЛ. вопрос чайника shumelka DAX: Функционал 2 25.03.2004 11:36
Вопрос по Запросу отчета ravil DAX: Программирование 0 18.12.2003 17:06

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

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

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