Usuário com melhor resposta
Ajuda com dinamismo em dimensão de Moeda

Pergunta
-
Pessoal temos uma Dimensão de Moedas onde preciso configurar de forma dinâmica a moeda padrão do cliente ... Por exemplo, quando o cliente instalar a solução ele vai indicar qual a sua moeda padrão que é um Flag na Dimensão de Moedas e assim usar a solução com a moeda que ele escolheu.
Então se ele escolher Dollar altomáticamente o SSAS vai recolhece-lo e alterar de Real para Dollar e assim por diante, o que tentamos fazer foi usar o DefautMember .. funcionou mas fica estático.
Alguém tem alguma idéia de como resover esse impasse???
Wyllian de Lima - Se a resposta ajudou vote como útil !sexta-feira, 15 de janeiro de 2010 17:19
Respostas
-
Opa pessoal tenho boa notícias, conseguimos resolver o nosso problema ... depois de bater na trave diversas vezes !
A solução é a seguinte na propriedade Default Member do atribulto moeda eu escrevi a seguinte expressão:
Tail(Filter([Moeda].[Moeda].Members, [Moeda].[Moeda].Properties("flag", TYPED)),1).Item( 0 )
Ficou perfeito, não será necessário mandar uma pessoa para fazer essa alteração no cubo, o cliente poderá escolher a sua moeda padrão e assim que ela for processada automáticamente ela é alterada.
Vlw pessoal e até a próxima !!!
Wyllian de Lima - Se a resposta ajudou vote como útil !- Marcado como Resposta Wyllian de Lima quarta-feira, 20 de janeiro de 2010 17:28
quarta-feira, 20 de janeiro de 2010 17:28
Todas as Respostas
-
Aprediz,
Isso por acaso não estaria relacionado as configurações regionais da máquina?
Quando você fala em instalar a sua solução, esta fazendo referência a uma aplicação?
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBAsábado, 16 de janeiro de 2010 00:05 -
Opa blz Júnior ... Sobre instalar a solução, foi mal na verdade implantar seria o ideal .. rs
No caso não estaria relacionado as configurações regionais cara, pense na seguinte situação:
Temos vários clientes e pode ser que cada um trabalhe com uma moeda padrão, Dollar, Euro, Real, etc ..
No momento da implantação esse cliente vai escolher a moeda padrão dele, pq não queremos enviar alguém para processar o cubo desse cliente ... então criamos um Flag que será a moeda padrão dele, o problema é que não consegui colocar esse flag como Default Member, o SSAS reclama que isso não pode ser feito por causa do IsAgregatable que no nosso caso está False (não tem sentido agrupar as moedas, o cliente não quer isso) ...
Bem é isso Júnior, se vc tiver uma idéia posta aí blz ... Fuii !!!
Wyllian de Lima - Se a resposta ajudou vote como útil !segunda-feira, 18 de janeiro de 2010 12:54 -
Willian, tudo bom?
Ao implantar sua solução e o cliente escolher a moeda padrão, você pode alterar o default member da dimensão moeda na role de acesso que os usuários do cliente terão. Você implanta alguma role no database do SSAS?
Abraços,
Jorge Rua
Jorge- Sugerido como Resposta Jorge Rua segunda-feira, 18 de janeiro de 2010 17:23
segunda-feira, 18 de janeiro de 2010 17:11 -
Opa Jorge é bem provável que sim, uma vez que a solução terá mais que um usuário é bem provável usarmos Roles para controlar isso .... Gostei desse idéia de colocar isso na Role, mas como eu faria isso? Seria na aba Cell Data e escreveria um MDX ???
Vlw pela força Jorge !
Wyllian de Lima - Se a resposta ajudou vote como útil !segunda-feira, 18 de janeiro de 2010 17:59 -
Willian,
A opção é está na Aba Dimension Data (em Advanced) tem 3 MDX, uma delas é o Default Member. Este será utilizado definido para o usuário que utilizar a Role.
[]'s
Jorge Ruasegunda-feira, 18 de janeiro de 2010 19:41 -
Jorge,
Desta forma, você conseguirá especificar a configuração na role aplicando para o usuário.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBAsegunda-feira, 18 de janeiro de 2010 23:42 -
Jorge realmente a idéia foi boa mas não deu certo, um obstáculo que há na solução é a propriedade IsAggregatable que está False.
Quando o meu atributo esta configurado dessa forma ele pede para desabilitar os outros atributos, isso vale tanto para o Default Member configurada na dimensão quanto da Role ... rs o cubo nem processa nesse caso!
Alguma outra idéia galera ???
Wyllian de Lima - Se a resposta ajudou vote como útil !terça-feira, 19 de janeiro de 2010 12:48 -
Aprediz,
Você realmente precisa utilizar o IsAggregatable?
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBAterça-feira, 19 de janeiro de 2010 12:59 -
Sim Junior, não faz sentido agragar as moedas (mostrar o Grand Total e deixar o All quando o usuário for fazer suas consultas), ele não quer que isso aconteça ... o pior de tudo é que se deixo a propriedade como True eu habilito a Flag configuro o Default Member como [Moeda].[Flag].&[True] e vai de boa.
Penso que a única saída é o Calculate Member, mas por onde começar?
Aceito sugestões, vlw!
Wyllian de Lima - Se a resposta ajudou vote como útil !terça-feira, 19 de janeiro de 2010 13:05 -
ApredizBI,
É acho que criar um Calculate Member seria uma possibilidade, mas também fiquei passando em qual member poderíamos fazer este cálculo.
O que mais você tem nesta dimensão?
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBAterça-feira, 19 de janeiro de 2010 13:23 -
Junior eu tenho Moeda(id), SK_Moeda, Nome da Moeda e Flag ...
Mas eu estou usando só Moeda(ID), e a propriedade ColumnName apontando para o nome da moeda e as configurações acima já citadas ...
Bem eu percebi algo no DEfault Member pesquisei mas não consegui chegar a lugar nenhum, alguem sabe como fazer para tazer True nessa sentença MDX: [Moeda].[Moeda].Properties( "FLAG" )
Quando eu expandi Moeda eu percebi que tem um nó com Properties e lá estava FLAG que eu criei (provavelmente pelo fato de Moeda ser a chave da dimensão o flag está relacionado a ela).
Dá pra fazer dessa forma, alguém tem idéia?
Wyllian de Lima - Se a resposta ajudou vote como útil !terça-feira, 19 de janeiro de 2010 16:51 -
Galera eu consegui dar um passo importante, fiz um Select em MDX que me retornou o resultado esperado:
SELECT
filter ([Moeda].[Moeda].[Moeda],
[Moeda].[Moeda].
Properties( "Flag", TYPED) = TRUE) ON COLUMNS
FROM
[Origem DW]
Mas não estou conseguindo adaptá-lo para usar no Analysis, já tentei de tudo que foi jeito, como calculate member, como, Defaut member ... Alguma idéia ?
Wyllian de Lima - Se a resposta ajudou vote como útil !terça-feira, 19 de janeiro de 2010 18:23 -
Opa pessoal tenho boa notícias, conseguimos resolver o nosso problema ... depois de bater na trave diversas vezes !
A solução é a seguinte na propriedade Default Member do atribulto moeda eu escrevi a seguinte expressão:
Tail(Filter([Moeda].[Moeda].Members, [Moeda].[Moeda].Properties("flag", TYPED)),1).Item( 0 )
Ficou perfeito, não será necessário mandar uma pessoa para fazer essa alteração no cubo, o cliente poderá escolher a sua moeda padrão e assim que ela for processada automáticamente ela é alterada.
Vlw pessoal e até a próxima !!!
Wyllian de Lima - Se a resposta ajudou vote como útil !- Marcado como Resposta Wyllian de Lima quarta-feira, 20 de janeiro de 2010 17:28
quarta-feira, 20 de janeiro de 2010 17:28