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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.02.2016, 15:54   #1  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
DataAreaId and ProjDataAreaId in AX 2012 Query
Всем привет,

Занимаюсь кастомизацией кубов для AX 2012. R3

Имею следующую ситуацию:
Таблица TSTimesheetLine имеет 2 поля, определяющих dataArea - это, собственно, dataAreaid (поле компании) и ProjectDataAreaId - поле определяет компанию проекта.

Мне нужно, не задействуя поле dataAreaid, создать релейшн в квере на 2 поля ProjectDataAreaId и ProjId.

Но, создавая эти релейшены в квери, и добавляя квери как источник данных дял вью, просматривая эту вью через SQL Server, я вижу 3 релейшена, помимо этих двух, присутствует ещё и обычный DataAreaid, что ломает мне картину.

Подскажите, есть ли какие-то варианты решения этой ситуации?

Заранее благодарю.
Старый 23.02.2016, 13:53   #2  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Любые мысли по этому поводу?
Старый 23.02.2016, 18:46   #3  
twilight is offline
twilight
MCTS
MCBMSS
 
869 / 237 (9) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
Не создавать view в Аксапте, а написать запрос в Visual Studio в проекте для кубов?
__________________
I could tell you, but then I would have to bill you.
Старый 23.02.2016, 19:27   #4  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от twilight Посмотреть сообщение
Не создавать view в Аксапте, а написать запрос в Visual Studio в проекте для кубов?
Спасибо за ответ.

Рассматривал этот вариант.Вьюха имеет целый ряд Computed columns, которые оперируют энумерейшенами. Если преобразовывать это всё в datasourceView запрос на уровне проекта VS, то это всё ставится просто числами, не совсем надёжными на мой взгляд.

Как считаете?
Старый 24.02.2016, 18:29   #6  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Спасибо за ответ.

Пробежался я по теме, которую вы порекомендовали.
Не совсем я понял как это поможет решить мою проблему.

А именно, когда computed columns в Аксапте оперируют энамами, они используют стандарный Аксаптовский вид - Энам::элемент, что на SQL уровне конечно же заменяется числами, но в данном случае надёжность гарантирована Аксаптой.

Если же написать тот же запрос на стороне проекта куба в датасорс вью (Named Query), то получается, что все энамы следует заменить на числа, что абсолютно не гарантирует никакой надёжности.
Старый 24.02.2016, 18:31   #7  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Если имеются в виду некоторые джойны на таблицу энамов, которая описана в теме, то не понимаю как реализовать в данном случае computed columns.
Старый 25.02.2016, 06:47   #8  
twilight is offline
twilight
MCTS
MCBMSS
 
869 / 237 (9) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
Если вычисления не используют это релейшен, то сделать промежуточные view с вычислениями и уже прямой запрос с релейшеном по этим view.
Текущие значения перечислений обычно не меняются, а при добавлении новых в любом случае придется вносить изменения во view. Поэтому не должно быть особых проблем с надежностью.
__________________
I could tell you, but then I would have to bill you.
Старый 25.02.2016, 07:30   #9  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Cardagant Посмотреть сообщение
просматривая эту вью через SQL Server, я вижу 3 релейшена, помимо этих двух, присутствует ещё и обычный DataAreaid, что ломает мне картину.
А при просмотре этого представление внутри аксапты лишней связи нет?
X++:
Query query = new Query(queryStr("вашQuery"));
info(query.datasourceNo(1).toString());
Здесь уже есть лиший relation?
Если так, то все лечится отменой автоматических связей и установкой только нужных в методе init() запроса.
Старый 25.02.2016, 07:38   #10  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Здесь уже есть лиший relation?
Нет, здесь релейшна нет. Связка скорее всего устанавливается ядром при наличии поля DataAreaId в таблице. CrossCompany тут тоже не помогает.
__________________
Возможно сделать все. Вопрос времени
Старый 25.02.2016, 07:57   #11  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Нет, здесь релейшна нет. Связка скорее всего устанавливается ядром при наличии поля DataAreaId в таблице. CrossCompany тут тоже не помогает.
В какой момент? При сборке View?

А если соединяемый таблицы предварительно обернуть в самостоятельные View? DataAreaId всё равно туда просочится?
Старый 25.02.2016, 08:00   #12  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
В какой момент? При сборке View?

А если соединяемый таблицы предварительно обернуть в самостоятельные View? DataAreaId всё равно туда просочится?
Могу сказать, что пробовал TSTimesheetLine к самостоятельной вью ProjTable, так как во вью поля датаареа в наличии, а именно добавляются ядром, то по ним связь строится.

Последний раз редактировалось Cardagant; 25.02.2016 в 08:37.
Теги
ax2012r3, query

 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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