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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.08.2019, 20:04   #1  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
565 / 360 (14) ++++++
Регистрация: 27.04.2006
Адрес: Montreal
Financial dimension values concatened by mask
коллеги, помогите решить задачу группировки значений финансовых измерений в одном поле по заданной маске.

грубо говоря, есть некий набор атрибутов (recid in DimensionHierarchy), в которой существуют несколько выбранных атрибутов (DimensionHierarchyLevelView)

а теперь я хочу сгруппировать наборы значений этих самых выбранных атрибутов из DimensionAttributeValueSetItemView так, чтобы если для атрибута из иерархии нет значения, то в итоговой строке он был бы представлен, например, пустой строкой или n/a.

вот, что я имею в виду на картинке
Нажмите на изображение для увеличения
Название: sql_concat.png
Просмотров: 21
Размер:	171.3 Кб
ID:	12361

вот мой запрос, который планирую запихать в computed column на своей вьюхе (работает норм)

X++:
select
	t1.DIMENSIONATTRIBUTEVALUESET
,STUFF((SELECT '-' + t16.NAME 
		FROM DIMENSIONATTRIBUTE t16
            JOIN DIMENSIONHIERARCHYLEVELVIEW as t17
                    on t17.DIMENSIONATTRIBUTE = t16.RECID 
					where
					t17.HIERARCHYrecid = 68719485163
           ORDER BY t16.RECID
           FOR XML PATH('')), 1, 1, '')  as ConcatDimNames
	,STUFF((SELECT '-' + t6.NAME +
			STUFF((SELECT '-' + t3.DisplayValue
                    from DimensionAttributeValueSetItemView as t3
                    where
                    t1.DimensionAttributeValueSet = t3.DimensionAttributeValueSet
					and t7.DIMENSIONATTRIBUTE = t3.DIMENSIONATTRIBUTE
                    order by t3.DIMENSIONATTRIBUTE
                    for xml path('')), 1, 1, '') 
					
		FROM DIMENSIONATTRIBUTE t6
            JOIN DIMENSIONHIERARCHYLEVELVIEW as t7
                    on t7.DIMENSIONATTRIBUTE = t6.RECID 
					where
					t7.HIERARCHYrecid = 68719485163
           ORDER BY t6.RECID
           FOR XML PATH('')), 1, 1, '') as ConcatValues
 from DimensionAttributeValueSetItemView t1
   join DIMENSIONHIERARCHYLEVELVIEW t4
 on t4.DIMENSIONATTRIBUTE = t1.DIMENSIONATTRIBUTE
  where
		t4.HIERARCHYrecid = 68719485163
 group by t1.DIMENSIONATTRIBUTEVALUESET
чую, что можно как-то применить регулярные выражения или stuff, но знаний не хватает
__________________
Felix nihil admirari
-----------------------------------------------------------------------------------------------
AX2012
Старый 10.08.2019, 02:57   #2  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
565 / 360 (14) ++++++
Регистрация: 27.04.2006
Адрес: Montreal
Короче, задачу в поставленном виде я решил, но немного отрихтовав структуру данных (то есть, не на стадии цирковых выкрутасов с SQL).

Делается это вот так http://alexvoy.blogspot.com/2019/08/...nsactions.html и применимо к любым транзакциям с финансовыми измерениями.

Мозг лопается, поэтому буду рад любой критике и замечаниям!
__________________
Felix nihil admirari
-----------------------------------------------------------------------------------------------
AX2012
За это сообщение автора поблагодарили: mazzy (5).
Старый 10.08.2019, 15:09   #3  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,974 / 3865 (186) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от wojzeh Посмотреть сообщение
задачу группировки значений финансовых измерений в одном поле по заданной маске.
формулировка в программистских терминах - понятна.
решение тоже. хоть и хитровывернутое.

можешь сказать, а каков был исходный вопрос пользователя?
чего они хотели то?
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 10.08.2019, 16:21   #4  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
565 / 360 (14) ++++++
Регистрация: 27.04.2006
Адрес: Montreal
сольдо по выбранным значениям финансовых измерений

Можешь предложить пути упрощения?

Это лишь начало банкета, дальше будет про накопительные итоги по каждому из них
__________________
Felix nihil admirari
-----------------------------------------------------------------------------------------------
AX2012
Старый 10.08.2019, 16:37   #5  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,974 / 3865 (186) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
"выбранным" - фильтрация. я так и думал.

Цитата:
Сообщение от wojzeh Посмотреть сообщение
Можешь предложить пути упрощения?
нет. сам бы написал, если бы знал.

я порождал таких же монстров, которые не принесут радости ни пользователям, ни поддержке, ни программистам.

Цитата:
Сообщение от wojzeh Посмотреть сообщение
Это лишь начало банкета, дальше будет про накопительные итоги по каждому из них
угу-угу.
особенно с учетом того, что число комбинаций значений со временем будет только расти.

будь проклят тот архитектор, который одобрил ЭТУ финансовую аналитику, но не подумал как ЭТО будут использовать.
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.

Последний раз редактировалось mazzy; 10.08.2019 в 16:40.
Старый 10.08.2019, 20:53   #6  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
565 / 360 (14) ++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от mazzy Посмотреть сообщение
"выбранным" - фильтрация.
я порождал таких же монстров
а что там особо монструозного? я разбил на кучу вьюх (а обычно я ещё их делаю на базе кверей) как раз для упрощения понимания.

Цитата:
Сообщение от mazzy Посмотреть сообщение
"угу-угу.
особенно с учетом того, что число комбинаций значений со временем будет только расти.
ну, расти оно, может, и будет, но не драматически. сейчас их 3500 штук на всю сотню юридических лиц. даже если там и будут появляться новые департаменты, например, то уж точно не десятками.

что касается количества выбранных атрибутов в наборе, то тоже не особо будет влиять на производительность

Нажмите на изображение для увеличения
Название: измерения.png
Просмотров: 22
Размер:	124.1 Кб
ID:	12363

Цитата:
Сообщение от mazzy Посмотреть сообщение
"будь проклят тот архитектор, который одобрил ЭТУ финансовую аналитику, но не подумал как ЭТО будут использовать.
да, не скажу, что получил большое удовольствие, вникнув (вникнув ли??) в устройство этого аттракциона, но задача-то вполне себе обычная, с точки зрения бизнеса. другое дело, что акса - не место для OLAP.

но я рад, что удалось решить задачу без кодирования
__________________
Felix nihil admirari
-----------------------------------------------------------------------------------------------
AX2012
Старый 12.08.2019, 13:10   #7  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
827 / 336 (13) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от mazzy Посмотреть сообщение
будь проклят тот архитектор, который одобрил ЭТУ финансовую аналитику, но не подумал как ЭТО будут использовать.
Истинно говорю я Вам - настают последние дни! Налетит Земля на небесную ось !!!
Раз уж даже mazzy так об одной из "священных коров" отзывается
__________________
Axapta will die, MorphX stay forever
Старый 13.08.2019, 14:29   #8  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
589 / 37 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от mazzy Посмотреть сообщение
я порождал таких же монстров, которые не принесут радости ни пользователям, ни поддержке, ни программистам.
.
Все мы не без греха
Старый 13.08.2019, 16:46   #9  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
565 / 360 (14) ++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от user_ax Посмотреть сообщение
Все мы не без греха
Давайте по сути, народ!

Что именно монструозного тут? Какие есть более изящные подходы?
__________________
Felix nihil admirari
-----------------------------------------------------------------------------------------------
AX2012
Старый 13.08.2019, 17:42   #10  
VORP is offline
VORP
Участник
Аватар для VORP
 
124 / 86 (3) ++++
Регистрация: 26.05.2006
Не до конца понимаю подходит ли по смыслу или нет, но в DimensionAttributeValueCombination и DimensionValueSet в 365 есть невидимые поля которые разворачивают аналитики в строку, может быть можно как то использовать...
Старый 13.08.2019, 18:30   #11  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
565 / 360 (14) ++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от VORP Посмотреть сообщение
Не до конца понимаю подходит ли по смыслу или нет, но в DimensionAttributeValueCombination и DimensionValueSet в 365 есть невидимые поля которые разворачивают аналитики в строку, может быть можно как то использовать...
это то место, откуда я и отправился в волшебный полёт.

мне и самому интересно, как бы мы могли сделать привязку по набору выбранных атрибутов с колонками в этой таблице. желательно без кодирования. есть идеи?
__________________
Felix nihil admirari
-----------------------------------------------------------------------------------------------
AX2012
Теги
computed column, dimensions, regular expressions, sql, view

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax_gfm_framework_team: Dimension defaulting in accounting distributions, Part 4 - Fixed dimensions and handling of empty dimension values Blog bot DAX Blogs 0 20.12.2013 23:11
ax_gfm_framework_team: Dimension defaulting in accounting distributions, Part 3 - Splitting and defaulting using Financial dimension default templates and Main account allocation rules Blog bot DAX Blogs 0 18.12.2013 09:11
sumitsaxfactor: Replacing Financial Dimension in Ledger Dimension Blog bot DAX Blogs 0 19.01.2012 13:11
daxline: Set financial dimension values through code in AX 2012 Blog bot DAX Blogs 0 18.11.2011 02:26
Khue Trinh: Setting up a link between a financial dimension and the site inventory dimension Blog bot DAX Blogs 0 27.09.2010 13:05
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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