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.
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.
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.
Então, podemos fornecer qualquer nome ao projeto. Vou chamar isso de SortBy e clicar em Create.
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.
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.
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.
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.
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.
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.
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.
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 .
Se eu pressionar F5, você verá que temos acesso às colunas.
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.
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.
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.
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.
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.
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.
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.
Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates
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.
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.
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.
Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.
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
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.
Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.