locked
Ajuda com dinamismo em dimensão de Moeda RRS feed

  • 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/DBA
    sá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 Rua
    segunda-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/DBA
    segunda-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/DBA
    terç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/DBA
    terç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