LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

No tutorial de hoje, vou mostrar como você pode automatizar o processo de classificação de uma coluna por outra dentro do LuckyTemplates e SSAS ou serviços de análise do servidor SQL. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.

Neste exemplo, temos a tabela Dates com várias colunas. Algumas colunas são a parte inteira, que vamos ocultar; e algumas colunas são a parte da string, que vamos mostrar ao usuário final.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Portanto, temos as colunas Ano civil, Mês do ano civil e Mês. O que queremos fazer é automatizar a classificação dessas três colunas por sua parte inteira. Classificarei o ano civil pelo número do ano civil, o mês do ano civil pelo número do mês do ano civil e o mês pelo número do mês.

Mas não faremos isso um por um. Executaremos um script que classificará isso automaticamente para esta tabela específica. Caso você tenha várias colunas para várias tabelas, poderá usar esse script nesses conjuntos de tabelas.

Vamos usar o Editor Tabular para escrever esse código C#, mas, por enquanto, o Editor Tabular não tem um IntelliSense para a linguagem C#. Para facilitar, usaremos o Visual Studio (VS), onde temos a linguagem IntelliSense for C# e você também pode usar o código VS.

Índice

Classificando colunas no LuckyTemplates e SSAS usando C#

Primeiramente, precisamos criar um novo projeto dentro do Visual Studio, que será o Console App (.Net Framework) para a linguagem C#. Vamos selecionar que clique em Avançar.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Então, podemos fornecer qualquer nome ao projeto. Vou chamar isso de SortBy e clicar em Create.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Agora, você pode ver que temos o código. Uma vez que o código funcione, vamos simplesmente copiá-lo e colá-lo dentro do Tabular Editor.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Mas, para que o código funcione dentro do Visual Studio, precisamos definir uma referência a uma biblioteca. E para isso, podemos simplesmente clicar em References e escolher a opção Manage NuGet Packages dentro do navegador.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Dentro da opção de navegação, precisamos escrever Analysis Services . E então, nas opções disponíveis, precisamos selecionar a segunda e clicar em Instalar. Ele iniciará a instalação e levará alguns segundos para que a instalação seja concluída.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Em seguida, precisamos escrever dentro do código, Using Microsoft.AnalysisServices.Tabular e, em seguida, escrever um ponto e vírgula. Vamos criar um objeto de servidor, então podemos simplesmente escrever Server , e o nome do objeto de servidor será o próprio Server , e vamos escrever New Server .

Basicamente, estamos criando um novo objeto dentro da memória. E para conectar esse servidor ao arquivo do LuckyTemplates, vamos usar um método do objeto servidor. Então, vamos escrever server.Connect , e aqui forneceremos o número da porta na qual o AnalysisServices dentro do LuckyTemplates está escutando.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Para encontrar esse número de porta, vamos para External Tools, clique em DAX Studio e, na parte inferior, encontraremos o host local. Esse é o número do código no qual os serviços de análise do servidor SQL que temos dentro do LuckyTemplates estão ouvindo as alterações que estamos enviando pelo LuckyTemplates ou qualquer outra ferramenta externa.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

O servidor é uma coisa, mas um servidor também pode ter vários modelos no caso do SSAS. Mas agora, no LuckyTemplates, temos apenas um modelo. Então, vamos declarar esse modelo. Escrevemos aqui Model is equal to (=) server.Databases , e vamos acessar o primeiro banco de dados dentro desse servidor, então escreveremos .Model .

Agora vamos testar se essa parte do código está funcionando ou não. Para fazer isso, simplesmente imprimiremos a lista de todas as tabelas que temos dentro desse modelo de dados. Então, vamos digitar aqui, para cada (Table t in model.Tables) , abrir colchetes e pressionar enter.

Depois disso, digitamos Console.WriteLine (t.Name) . Para garantir que a janela não feche automaticamente depois de imprimir o nome das tabelas, escreveremos Console.ReadLine , abrir e fechar parênteses e um ponto e vírgula. Agora, tudo o que precisamos fazer é clicar na opção Iniciar e aguardar a execução.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Você pode ver que conseguimos imprimir o nome das tabelas que temos dentro do modelo de dados. Temos as Datas, Produto, Cliente e Loja. Isso confirma que a configuração que criamos está funcionando.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Agora, podemos realmente entrar na essência do código e começar a criar o código que nos ajudará a classificar essa coluna pela contraparte inteira.

Vamos nos livrar de tudo o que criamos da parte ForEach . Vamos manter o servidor e o modelo como estão. Vamos declarar uma variável que conterá o nome da tabela na qual queremos iterar. Vou nomeá-la como DatesTable , e o nome da tabela será basicamente Dates .

Em seguida, teremos foreach var t em model.Tables , então vamos usar uma cláusula where , para que possamos dizer onde T vai para t.Name deve ser igual a DatesTable . Se estivermos iterando no DatesTable, iniciaremos outro loop em todas as colunas desse DatesTable. Para isso, podemos escrever foreach var c in t.Columns .

Para testar se estamos iterando apenas na DatesTable e temos acesso a todas as colunas da DatesTable, podemos simplesmente imprimir Console.WriteLine , e vamos dizer c.Name .

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Se eu pressionar F5, você verá que temos acesso às colunas.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Agora podemos prosseguir e escrever mais código.

Vamos criar uma lista de tuplas que conterá mais três colunas. Uma das colunas será a coluna de destino. A segunda coluna será a coluna pela qual queremos classificar a coluna de destino, e a terceira coluna simplesmente manterá verdadeiro ou falso, quer desejemos ocultar a coluna pela qual estamos realmente classificando.

Digamos que queremos classificar a coluna do ano civil pelo número do ano civil. A primeira coluna conterá o ano civil, a segunda coluna será para o número do ano civil e a terceira coluna decidirá se queremos ocultar a coluna do número do ano civil após concluirmos a classificação ou não.

E para isso, vamos voltar ao Visual Studio, onde vamos criar uma nova variável. Você pode nomeá-lo como quiser. Neste exemplo, vou chamá-lo de colOperations . Em seguida, vamos escrever new , e então vamos criar uma lista e escrever o tipo de colunas (string, string e bool). Depois disso, criamos as tuplas.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Basicamente, estamos simplesmente criando uma lista de três colunas e, para três colunas, fornecemos duas linhas. Agora, dentro do nosso loop foreach , vamos iniciar um loop for . Então, basicamente, o que estamos dizendo é que declare uma variável iniciar com i em cada iteração. Se i for menor que colOperations.Count, simplesmente incremente isso .

Em seguida, vamos escrever uma instrução IF . O c.Name pertence ao nome da coluna em que estamos atualmente. Então, temos as colOperations i . O i basicamente nos permite acessar uma linha específica. E quando escrevemos .Item1 , podemos acessar a primeira coluna, segunda coluna ou terceira coluna.

Então, primeiro vamos usar a coluna Item1 . Se isso for verdade, simplesmente escrevemos que c.SortByColumn deve ser igual a t.Columns . Lembre-se que t é o objeto da tabela. Então, estamos acessando as colunas dessa tabela específica. Queremos as colOperations , a linha que estamos atualmente nas operações da coluna, e a coluna é basicamente o objeto Item2 .

Por fim, para ocultar aquela coluna específica por meio da qual estamos aplicando a classificação, escrevemos uma linha final de código.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Então, agora que escrevemos o código principal que vamos executar em nosso modelo tabular, podemos simplesmente copiar o código de var colOperations e levá-lo para o Tabular Editor, e então vamos executar o mesmo código.

Classificando colunas no LuckyTemplates e SSAS usando o editor tabular

Não vamos usar o servidor ou o objeto de modelo porque, nos bastidores, o Tabular Editor saberá automaticamente a qual modelo do LuckyTemplates ou o modelo de serviços de análise ele deve se conectar. Portanto, não precisamos usar essas variáveis ​​porque isso já é tarefa do Tabular Editor identificar como ele deseja se conectar a esses modelos.

De volta ao LuckyTemplates, vamos iniciar o Tabular Editor 3 ou o Tabular Editor 2. Você pode usar o que quiser. Neste caso, vamos com o Editor Tabular 3.

Vamos para a guia Arquivo, clique em Novo código C# e feche a opção Propriedades. Então, podemos colar o código aqui. A única coisa que precisamos ter certeza é que, em vez de usar a variável de modelo, use o objeto de modelo . Então, vamos usar o M maiúsculo e executar esse código.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

Agora que o script foi executado com sucesso e também mostra três alterações no modelo, vamos confirmar as alterações de volta no modelo de dados. Vamos salvar tudo o que aplicamos a essas colunas.

De volta ao LuckyTemplates, você pode ver que o número do mês está oculto. Se eu clicar na coluna Mês e for para Ferramentas de coluna e Classificar por coluna , você poderá ver que determinada coluna foi classificada pelo número do mês. O mesmo acontece com o número do mês do ano civil.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#

O ano civil é classificado por si só porque não tínhamos essa coluna dentro desse código C#. Então, o que podemos fazer é lançar de volta o Editor Tabular e criar outra tupla. E então, mais uma vez, executamos esse script.

LuckyTemplates e SSAS – Classificando colunas usando TE3 e C#


Editor Tabular LuckyTemplates: Revisão e Tutorial da Versão 3
Editor Tabular 3 do LuckyTemplates: Automatize com um Script
Codificação DAX Dentro do Editor Tabular 3

Conclusão

É fácil automatizar o processo de classificação de uma coluna por outra coluna no e SSAS. Esse foi um exemplo bem básico de como você pode fazer essa operação dentro da tabela Dates. Mas você pode enriquecer essa lista adicionando mais colunas e depois verificando se há outra tabela.

Dessa forma, você pode reduzir o tempo gasto na classificação dessas colunas para os mesmos modelos que criará continuamente.

Espero que você tenha achado isso útil. Se você tiver alguma dúvida, deixe-me saber na seção de comentários.

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

Colunas calculadas no SharePoint | Uma visão geral

Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.