powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / AS2K(5). CM. Можно ли такое реализовать?
11 сообщений из 11, страница 1 из 1
AS2K(5). CM. Можно ли такое реализовать?
    #33468008
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Use Case:

Создаем в измерении времени СM, например, CurrentYear. По какой формуле вычисляется не важно. Важно что во время выполнения запросов ему соотевтствует вполне определенный элемент с уровня Year. Аналогично для CurrentMonth и т.п.

в идеальном случае в ResultSet должен фигурировать физический элемент [2006], хотя в MDX запросе (скрипте) упоминается [CurrentYear].

Зачем все это надо?

1. DrillDown и Through
2. WriteBack.
3. etc.

Отцы AS всегда уповали, что все должно быть на сервере. Вот я этого тоже хочу, но сейчас вышеизложенный функционал реализован в "клиентском" коде, а в идеале все это на сервере заложить.



Посылам например запрос

select
{[Time].[CalenderYear].[CurrentYear], [Time].[CalenderYear].[PrevYear]} on columns ....,

а получаем в CellSet на оси

{[Time].[CalenderYear].[Year].[2006], [Time].[CalenderYear].[Year].[2006]}
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468397
Беляев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireUse Case:

Создаем в измерении времени СM, например, CurrentYear. По какой формуле вычисляется не важно. Важно что во время выполнения запросов ему соотевтствует вполне определенный элемент с уровня Year. Аналогично для CurrentMonth и т.п.

в идеальном случае в ResultSet должен фигурировать физический элемент [2006], хотя в MDX запросе (скрипте) упоминается [CurrentYear].

Зачем все это надо?

1. DrillDown и Through
2. WriteBack.
3. etc.

Отцы AS всегда уповали, что все должно быть на сервере. Вот я этого тоже хочу, но сейчас вышеизложенный функционал реализован в "клиентском" коде, а в идеале все это на сервере заложить.



Посылам например запрос

select
{[Time].[CalenderYear].[CurrentYear], [Time].[CalenderYear].[PrevYear]} on columns ....,

а получаем в CellSet на оси

{[Time].[CalenderYear].[Year].[2006], [Time].[CalenderYear].[Year].[2006]}

А named sets попробуй, тогда, правда, писать надо (пример дан для AS2K5)

with set [CurrentYear] as [Time].[CalenderYear].[Year].[2006]
set [PrevYear] as [Time].[CalenderYear].[Year].[2005]
select
{[CurrentYear],[PrevYear]} on columns ....,

Владислав Беляев
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468469
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или, просто задать это как DefaultMember на соответствущем атрибуте и писать

Код: plaintext
SELECT Year.DefaultMember ON  0  FROM ...

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468523
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Беляев backfireUse Case:

Создаем в измерении времени СM, например, CurrentYear. По какой формуле вычисляется не важно. Важно что во время выполнения запросов ему соотевтствует вполне определенный элемент с уровня Year. Аналогично для CurrentMonth и т.п.

в идеальном случае в ResultSet должен фигурировать физический элемент [2006], хотя в MDX запросе (скрипте) упоминается [CurrentYear].

Зачем все это надо?

1. DrillDown и Through
2. WriteBack.
3. etc.

Отцы AS всегда уповали, что все должно быть на сервере. Вот я этого тоже хочу, но сейчас вышеизложенный функционал реализован в "клиентском" коде, а в идеале все это на сервере заложить.



Посылам например запрос

select
{[Time].[CalenderYear].[CurrentYear], [Time].[CalenderYear].[PrevYear]} on columns ....,

а получаем в CellSet на оси

{[Time].[CalenderYear].[Year].[2006], [Time].[CalenderYear].[Year].[2006]}

А named sets попробуй, тогда, правда, писать надо (пример дан для AS2K5)

with set [CurrentYear] as [Time].[CalenderYear].[Year].[2006]
set [PrevYear] as [Time].[CalenderYear].[Year].[2005]
select
{[CurrentYear],[PrevYear]} on columns ....,

Владислав Беляев

Довольно привлекательная идея, стоит покопать ее глубже.
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468526
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoshaИли, просто задать это как DefaultMember на соответствущем атрибуте и писать

Код: plaintext
SELECT Year.DefaultMember ON  0  FROM ...

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

И что дальше?

Например я могу написать

Код: plaintext
SELECT {Year.DefaultMember, Year.DefaultMember.PrevMember} ON  0  FROM ...

Но
Код: plaintext
SELECT {Year.DefaultMember, Year.DefaultMember.Children, Year.DefaultMember.PrevMember} ON  0  FROM ...

Не катит, вот если его бы на каждом уровне можно было задать...
Короче я не вижу особого развития этой идеи :-(
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468534
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему SELECT {Year.DefaultMember, Year.DefaultMember.Children, Year.DefaultMember.PrevMember} ON 0 FROM ... "не катит" ? Вы можете поподробнее обьяснить, а то при такой постановке задачи приходится гадать...

backfireвот если его бы на каждом уровне можно было задать...
Это именно то что я и предложил - определить его для каждого атрибута.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468612
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как по вашему может работать Year.DefaultMember.Children, без указания user defined hierarchie???? Ведь Year это attribute hierarchie, которая по определению состоит из 1 уровня

Из какой иерархии он будет брать элементы?

По определению .DefaultMember Returns the default member of a dimension or hierarchy. А мне надо иметь CurrentYear, CurrentDay, CurrentMonth.
Даже если я их благополучно объявлю для каждой attribute hierarchie, я не смогу в одном сете свести

{Year.DefaultMember, Month.DefaultMember, Day.DeafultMember}

а мне надо иметь возможность иметь в одном сете (на одной оси)


{TimeDim.YMD.YearLevel.CurrentYear, TimeDim.YMD.MonthLevel.CurrentYear, TimeDim.YMD.DayLevel.CurrentDay}

(YMD это User defined hierarchie)


Теперь еще один философский вопрос.

Дано:
TimeDim.Year.[2006] обозначает физически всегда и без вариантов то же самое, что и TimeDim.YMD.YearLevel.[2006]

Вопрос:
Как, не стреляя из пушки по воробьям (желательно на чистом MDX), получить из TimeDim.Year.CurrentMeber -> TimeDim.YMD.YearLevel.[2006]?
Или еще в более общем виде

FunctionXY(HierarchieM, MemberN), where HierarchieM это user defined hierarchie, содержащая свом уровнем attribute hierarchie, которой принадлежит MemberN.

p.s. Да и как то боязно "to rape" DefaultMeber, ведь он несет дополнительную нагрузку в виде "фильтр по умолчанию". Если я перенацелю в каждой attribute hierarchie defaultmember на то что мне иногда надо, я должен буду расплачиваться указанием в явном виде All-member всегда , там где я о нем и не вспоминаю, что собственно является main stream здравого MDX.
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468644
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точная формулировка задачи уже на 80% содержит решение. Вы, уважаемый backfire совершенно справедливо требуете от других полной постановки вопроса, пожалуйста не забывайте об этом сами :)
Свести в одном сете члены разных иерархий нельзя, поэтому Вам надо использовать YMD иерархия.

backfireДано:
TimeDim.Year.[2006] обозначает физически всегда и без вариантов то же самое, что и TimeDim.YMD.YearLevel.[2006]

Это всегда так - так же как и 2+2=4, поэтому это избыточное условие.

backfire
Вопрос:
Как, не стреляя из пушки по воробьям (желательно на чистом MDX), получить из TimeDim.Year.CurrentMeber -> TimeDim.YMD.YearLevel.[2006]?
Код: plaintext
Ancestor(TimeDim.YMD.CurrentMember, TimeDim.YMD.Year)

backfireДа и как то боязно "to rape" DefaultMeber ... Если я перенацелю в каждой attribute hierarchie defaultmember на то что мне иногда надо, я должен буду расплачиваться указанием в явном виде All-member всегда,
Это хороший аргумент. Конечно зависит от Вашей задачи. В некоторых аппликациях предпочитается ставить default time member в текущее время, ну а в некоторых нет. Похоже что в Вашем случае идея г-на Белява является оптимальной.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468835
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoshaТочная формулировка задачи уже на 80% содержит решение. Вы, уважаемый backfire совершенно справедливо требуете от других полной постановки вопроса, пожалуйста не забывайте об этом сами :)

Если коротко, то как я уже говорил в первом сообщении, мне необходимо перевести определение current членов с "клиентского кода" на серверный.


BackfireВопрос:
Как, не стреляя из пушки по воробьям (желательно на чистом MDX), получить из TimeDim.Year.CurrentMeber -> TimeDim.YMD.YearLevel.[2006]?


Mosha

Код: plaintext
Ancestor(TimeDim.YMD.CurrentMember, TimeDim.YMD.Year)




Честно говоря не понял, что Вы хотели сказать, приведя это выражение в ответ на мой вопрос.
Пожалуйста, Не могли бы Вы прокомментировать это подробнее.
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468891
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireЧестно говоря не понял, что Вы хотели сказать, приведя это выражение в ответ на мой вопрос.
Пожалуйста, Не могли бы Вы прокомментировать это подробнее.
Конечно, я попробу1 обьяснить. Допустим, что у нас установлено на атрибуте Year в качестве CurrentMember значение 2006. Соответсвенно, это отразится и во всех иерархиях в которые входит атрибут Year, в том числе YTD. Но, как Вы заметили, поскольку и по другим атрибутам (Month, Day) их CurrentMember может и не быть [All Months] или [All Days], то надо их туда принудительно отправить, поскольку Вам надо получить именно 2006 год именно в иерархии YTD. Отправить атрибуты в All, это тоже самое что и подняться по уровням иерархии, поэтому я и применил функци1 Ancestor, остановившись на нужном уровне, а именно Year.

P.S. И как я уже говорил выше, предложение г-на Беляева построить named sets, видимо самое лучшее.


Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
AS2K(5). CM. Можно ли такое реализовать?
    #33468939
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mosha backfireЧестно говоря не понял, что Вы хотели сказать, приведя это выражение в ответ на мой вопрос.
Пожалуйста, Не могли бы Вы прокомментировать это подробнее.
Конечно, я попробу1 обьяснить. Допустим, что у нас установлено на атрибуте Year в качестве CurrentMember значение 2006. Соответсвенно, это отразится и во всех иерархиях в которые входит атрибут Year, в том числе YTD. Но, как Вы заметили, поскольку и по другим атрибутам (Month, Day) их CurrentMember может и не быть [All Months] или [All Days], то надо их туда принудительно отправить, поскольку Вам надо получить именно 2006 год именно в иерархии YTD. Отправить атрибуты в All, это тоже самое что и подняться по уровням иерархии, поэтому я и применил функци1 Ancestor, остановившись на нужном уровне, а именно Year.

P.S. И как я уже говорил выше, предложение г-на Беляева построить named sets, видимо самое лучшее.


Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

Спасибо, теперь понятно.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / AS2K(5). CM. Можно ли такое реализовать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]