Ir para conteúdo

Alex Pereira

Alunos
  • Total de itens

    582
  • Registro em

  • Última visita

Posts postados por Alex Pereira

  1. Experimente fazer dessa forma comparando com a data de hoje.

     

    let
        DataAtual = DateTime.LocalNow(),
        AnoAtual = Date.Year(DataAtual),
        MesAtual = Date.Month(DataAtual),
        TrimestreAtual = Number.RoundUp(MesAtual / 3),
        
        AdicionarColuna = Table.AddColumn(dCalendario, "Período", each 
            if [Ano] = AnoAtual and [Trimestre] = TrimestreAtual then "Trimestre Atual"
            else if [Ano] = AnoAtual and [Trimestre] = TrimestreAtual - 1 then "Trimestre Anterior"
            else if [Ano] = AnoAtual - 1 and [Trimestre] = TrimestreAtual then "T. Ano Passado"
            else "Outros"
        )
    in
        AdicionarColuna



     

  2. Em 05/09/2024 em 09:14, Edson Igari disse:

    Minha conta é PRO Alex, mas testei também com uma conta free e funcionou do mesmo jeito. O modelo de dados dele tem 537 linhas em uma fato e 47 linhas na outra. Você acha que um modelo desse tamanho geraria tal problema???
    As configurações da máquina utilizada também podem influenciar, como memória RAM, processador, tudo isso influencia, pois do contrário, você poderia instalar o power bi numa máquina com windows home e rodar. 

     

    Com a quantidade real de dados, a medida pode não funcionar tão bem, mas como o exemplo fornecido é apenas uma amostra, o volume de dados é significativamente menor, o que permite que a medida funcione no nosso ambiente. Nesse caso, há vários procedimentos que ele pode seguir para otimizar o desempenho. O ideal seria revisar a lógica da medida DAX e buscar formas de minimizar os cálculos, a fim de reduzir o tempo de processamento.

  3. 13 horas atrás, Henrik Oliveira Paes disse:

    Boa tarde pessoal!

    @Rafael Pereira O fornecedor do sistema havia pedido 700 reais mensais para "liberar a API" e enviar o manual. Então como ficaria inviável, optei por eu mesmo investigar a URL e conectar na API. Respondendo sua pergunta, não tenho manual.

    @Henrique Merola Faria Infelizmente nesse formato não deu certo também, ele apresenta erro no campo de consulta mesmo.

    @Alex Pereira Até consegui fazer funcionar utilizando essa função Uri.EscapeDataString, porém fica muito ruim de colocar depois um RangeStart e RangeEnd ai dentro, pelo menos eu não imaginei uma forma de fazer isso.

    Galera agradeço pelo apoio, mas hoje pela manhã consegui resolver depois de muita insistência com o ChatGPT. Vou colocar a solução abaixo.

    image.png.d2b1229b88436cc8493c8be0500e52d0.png

    Você faz uma concatenação só que no caso deve transformar a data primeiro nesse formato xx/xx/xxxx como fiz exemplo te mostrei. Veja exemplo abaixo:

     

        let
        DataInicio = DateTime.ToText(RangeStart, "dd/MM/yyyy"),
        DataFim = DateTime.ToText(RangeEnd, "dd/MM/yyyy"),
        Body = Json.FromValue(
            [
                page = pageNumber,
                limit = 25,
                filter = "[ 
                    {
                        ""property"":""AnoMes"",
                        ""operator"":""greaterOrEqual"",
                        ""value"":""" & DataInicio & """,
                        ""and"":true
                    },
                    {
                        ""property"":""AnoMes"",
                        ""operator"":""lessOrEqual"",
                        ""value"":""" & DataFim & """,
                        ""and"":true
                    }
                ]"
            ]
        )
    in
        Body
    
    
    
    
    • Like 1
  4. Para criar um bookmark que afete apenas dois visuais que estão no mesmo lugar no Power BI, o processo pode ser feito agrupando os dois visuais. Selecione os dois gráficos que deseja controlar e, no painel de seleção, agrupe-os. Em seguida, oculte esse grupo para controlar sua visibilidade diretamente pelo bookmark.

  5. Bom diaaa! Como o Rafael mencionou, o erro está relacionado à ausência de um gateway instalado. Nesse caso, será necessário instalar o gateway no servidor onde os dados estão hospedados, ou em um ambiente que tenha acesso de rede ao servidor, como na AWS, por exemplo. É possível configurar o acesso à rede através de IPs específicos, restringindo o acesso conforme necessário. Portanto, o gateway não precisa estar no mesmo local que o servidor, mas sim em um ambiente que possua conectividade com ele.
     

    Após obter esse acesso, será necessário configurar o seu gateway de dados, inserindo as conexões necessárias para que ele funcione corretamente. No seu caso específico, você precisará configurar as credenciais de acesso ao servidor. É importante lembrar: utilize o Gateway Enterprise para garantir um desempenho ideal.

    Nesta aula, o mestre ensina como fazer essa configuração: https://app.xperiun.com/aula/1704330688818x596973771367997700?v=1704838860504x652294912539400400
    image.png.60e11a26c2ea8b6f056883b319e81211.png

     

     

    • Like 2
  6. 13 horas atrás, Edson Igari disse:

    @Lucas Denker, não sei se está certo, mas aqui carregou normal. Sua máquina é boa???
    image.png.21e0047f04d5bbd0fe0c462916e15ae5.png

    @Edson Igari, esse erro geralmente ocorre devido ao consumo de memória do Power BI. Pode ser que a conta que você está utilizando tenha uma configuração ou quantidade de recursos diferente da dele, o que faz com que funcione corretamente no seu ambiente, mas não no dele. Por exemplo, ele pode estar utilizando uma conta Pro, enquanto a sua é PPU (Premium Per User), que tem limites de memória mais altos.

    image.png.a9295bcfea67367d7ef172ce8aa60a0c.png

  7. Boooom diaaa

    Geralmente, as APIs possuem um parâmetro no corpo da requisição chamado query ou algo semelhante, que permite passar filtros como os de datas. Abaixo segue um exemplo de como esse filtro pode ser aplicado no body da requisição POST no Power Query utilizando atualização incremental.

     

    let
        ObterToken = () =>
            let
                urlToken = "https://autenticador.secullum.com.br/Token",
                grantType = grant_type_secullum,
                username = username_secullum,
                password = password_secullum,
                clientId = client_id_secullum,
                body = "grant_type=" & Uri.EscapeDataString(grantType) &
                    "&username=" & Uri.EscapeDataString(username) &
                    "&password=" & Uri.EscapeDataString(password) &
                    "&client_id=" & Uri.EscapeDataString(clientId),
                headers = [#"Content-Type" = "application/x-www-form-urlencoded"],
                options = [
                    Headers = headers,
                    Content = Text.ToBinary(body)
                ],
                response = Json.Document(Web.Contents(urlToken, options)),
                accessToken = response[access_token]
            in
                accessToken,
    
        accessToken = ObterToken(),
        urlGet = "https://pontowebintegracaoexterna.secullum.com.br/IntegracaoExterna/Batidas",
        DataInicio = DateTime.ToText(RangeStart, "yyyy-MM-dd"), // Corrigido: use aspas duplas para definir o valor da data
        DataFim = DateTime.ToText(RangeEnd, "yyyy-MM-dd"), // Corrigido: use aspas duplas para definir o valor da data
        body2 = "DataInicio=" & Uri.EscapeDataString(DataInicio) &
            "&DataFim=" & Uri.EscapeDataString(DataFim), // Corrigido: removido espaço em branco
        headersGet = [#"Authorization" = "Bearer " & accessToken],
        optionsGet = [
            Headers = headersGet,
            Query = [
                DataInicio = DataInicio,
                DataFim = DataFim
            ]
        ],
        responseGet = Json.Document(Web.Contents(urlGet, optionsGet))
    in
    	 responseGet


    É importante ressaltar que a forma como as datas precisam ser passadas pode variar dependendo da API. Isso significa que você deve adaptar o formato da data dos parâmetros de atualização incremental para atender às exigências específicas da API que está utilizando.

  8. Esse erro ocorre porque a medida DAX no Power BI está consumindo muitos recursos e excede os limites de capacidade do serviço. Para resolver o problema, você pode começar revisando a lógica da sua medida para garantir que não está realizando cálculos desnecessários ou repetitivos. Utilizar variáveis pode ajudar a melhorar o desempenho ao evitar cálculos repetidos. Além disso, verifique se você está aplicando filtros e agregações apropriados para reduzir o volume de dados processados.

    Também é importante considerar a simplificação do modelo de dados, reduzindo a complexidade das tabelas e dos relacionamentos. O particionamento de tabelas grandes ou o uso de filtros pode ajudar a reduzir a quantidade de dados processados de uma só vez. Se você estiver usando Power BI Premium, ajustar a configuração de recursos pode ser útil. Além disso, utilizar tabelas de agregação pode pré-calcular dados e melhorar o desempenho dessa consulta.

  9. Para comparar os registros que entraram e saíram do banco de dados após a atualização mensal, você pode criar uma tabela temporária para armazenar os dados do mês atual. Essa tabela temporária servirá como base para a comparação. Quando você carregar a nova planilha, insira os dados atualizados em uma tabela separada ou diretamente na tabela principal. Depois, compare as chaves primárias entre a tabela temporária e a nova tabela para identificar quais registros são novos, mantidos e quais foram removidos. Para identificar os novos registros, compare a tabela temporária com a nova tabela e veja quais registros estão na nova tabela, mas não na temporária. Para identificar os registros mantidos, compare a tabela temporária com a nova tabela e veja quais registros estão ambas tabelas. Para identificar os registros removidos, compare a tabela temporária com a nova tabela e veja quais registros estão na temporária, mas não na nova tabela.

    algo mais ou menos assim:

     

    DELIMITER $$
    
    CREATE PROCEDURE comparar_registros()
    BEGIN
        -- Cria uma tabela temporária para os dados atuais
        CREATE TEMPORARY TABLE temp_dados_atuais AS
        SELECT * FROM tabela_principal;
    
        -- Cria uma tabela temporária para os novos dados (carregados da planilha)
        CREATE TEMPORARY TABLE temp_dados_novos AS
        SELECT * FROM novos_dados_planilha;
    
        -- Cria uma tabela temporária para armazenar os resultados da comparação
        CREATE TEMPORARY TABLE temp_dados_comparados (
            chave_primaria INT,
            status VARCHAR(10)
        );
    
        -- Inserir os registros mantidos (existem em ambas as tabelas)
        INSERT INTO temp_dados_comparados (chave_primaria, status)
        SELECT atual.chave_primaria, 'mantido' 
        FROM temp_dados_atuais atual
        JOIN temp_dados_novos novo ON atual.chave_primaria = novo.chave_primaria;
    
        -- Inserir os registros novos (existem apenas na nova tabela)
        INSERT INTO temp_dados_comparados (chave_primaria, status)
        SELECT novo.chave_primaria, 'novo' 
        FROM temp_dados_novos novo
        LEFT JOIN temp_dados_atuais atual ON novo.chave_primaria = atual.chave_primaria
        WHERE atual.chave_primaria IS NULL;
    
        -- Inserir os registros removidos (existem apenas na tabela atual)
        INSERT INTO temp_dados_comparados (chave_primaria, status)
        SELECT atual.chave_primaria, 'removido' 
        FROM temp_dados_atuais atual
        LEFT JOIN temp_dados_novos novo ON atual.chave_primaria = novo.chave_primaria
        WHERE novo.chave_primaria IS NULL;
    
        -- Atualiza a tabela principal com base nos dados comparados
        -- Este passo depende do que você deseja fazer com os registros identificados como mantidos, novos e removidos.
        -- Por exemplo, você pode querer excluir os registros marcados como 'removido', ou atualizar os 'mantido', ou inserir os 'novo'.
        -- Isso pode ser feito com base nos resultados armazenados em 'temp_dados_comparados'.
    
        -- Exemplo de manipulação de registros:
        -- DELETE FROM tabela_principal WHERE chave_primaria IN (SELECT chave_primaria FROM temp_dados_comparados WHERE status = 'removido');
        -- INSERT INTO tabela_principal (coluna1, coluna2, ...) SELECT * FROM temp_dados_novos WHERE chave_primaria IN (SELECT chave_primaria FROM temp_dados_comparados WHERE status = 'novo');
    
    END$$
    
    DELIMITER ;

     

  10. 24 minutos atrás, Anderson Santana Juju disse:

    Fala Incomparaveis!
    Então vou tentar explicar a minha situação aqui, então eu tenho um banco de dados, e ele sempre tem atualização mensal de informações, sendo acrescentando informações, como tambem tirado do banco de dados, eu queria saber se teriamos alguma forma de controlar isso, ou seja, que ele me mostrasse o que entrou de novo, e tambem o que saiu.

    As atualizações são feitas via planilha de excel, não queria ficar fazendo manual essa questão.

    Fico no aguardo

    Uma forma de você gerenciar as atualizações mensais do seu banco de dados, uma boa prática seria adicionar uma coluna de data de criação de registro no banco de dados. Essa coluna vai permitir que você controle quando cada registro foi adicionado.

    Ex:

    ALTER TABLE sua_tabela
    ADD COLUMN data_criacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

     

  11. 2 horas atrás, Rafael Correa Celestino disse:

    Olá Pessoal, boa tarde!

    Desculpe se este nao for o local correto, mas alguem teria um exemplo de documentaçao tecnica para um projeto de BI? o meu cliente está pedindo a documentação técnica do projeto e preciso monta-lo para apresentar ao mesmo.

     

    Obrigado!

    Experimente ver esse video:

    https://youtu.be/UpTVfjSBk4U

  12. 2 horas atrás, Patricia Kappel disse:

    Boa tarde!

    Preciso criar uma coluna no Power Query com o valor total (Qtd x Preço) de tal forma que as linhas onde a moeda é BRL, a conta seja QTD x Preço, e nas linhas com USD, a multiplicação seja QTD x Preço x 5,30 (esse seria o valor fixo para o Dólar).

    Se essa taxa de dólar pudesse ser variada, seria legal também. 

    Esse cálculo é no Power Query, para dele eu fazer um PROCV para outra tabela. Como posso fazer?

    image.png.e64b95e5ace6104c87d70e578a9f0c6c.png

    Tabela exemplo.xlsx 9.48 kB · 2 downloads

    Da para implemnetar puxando a cotação do dolar para os dias que você quiser: https://docs.awesomeapi.com.br/api-de-moedas

  13. Em 23/08/2024 em 11:05, Henrique Marsal disse:

    mas se eu tiver um worcspace na capacidade per user, eu consigo usar o fluxo de dados em um outro worcspace na capacidade normal?

    Embora o fluxo de dados esteja em uma capacidade Premium, o usuário Pro poderá acessar e usar o fluxo de dados, mas não terá acesso a recursos exclusivos de capacidade Premium, como cálculos incrementais ou grandes volumes de dados, a menos que o workspace onde o fluxo de dados está localizado seja compartilhado como Premium.  Desta forma, ele não terá acesso a menos que seja premium tbm!

  14. 16 minutos atrás, Luis Claudio Santana Olive disse:

    Olá pessoal estou tentando modificar o total dessa matriz em consequência o cartão mas não estou tendo sucesso
    quando uso  ISINSCOPE( ftSales [ProductKey] ) ou na dimProduct [ProductKey] fica tudo false alguém pode me dar um help 

    Solução para Matriz.png

    O ISINSCOPE deve ser utilizado de acordo com as linhas que você tem na sua matriz. Se você não possui a coluna ProductKey nas linhas da matriz, o ISINSCOPE sempre retornará false. Tente aplicá-lo nas colunas que realmente estão presentes, como Ano ou Mês, para obter o comportamento desejado.

  15. Boa tarde! Poderia, por favor, fornecer mais detalhes sobre como você deseja criar esse indicador?
     

    Notei que ele é composto por três medidas. O valor das outras duas medidas está correto? Pergunto isso porque, se algum valor estiver zerado, isso pode explicar o resultado final que você está vendo.
     

    Além disso, como exatamente é feito o cálculo da medida TotalBonus? Pelo que vejo, é a soma de [Bonus] + [NPS] + [HV]. Se possível, gostaria de confirmar se esses valores estão sendo calculados corretamente para garantir que o total esteja correto

  16. veja esse ajuste:

     

    VAR vG1 = 
        CALCULATE(
            [OSVFaturada],
            ALLSELECTED(fServicos)
        )
    
    VAR vG2 = 
        CALCULATE(
            [OSVFaturada] - [Garantia],
            ALLSELECTED(fServicos)
        )
    
    VAR vO = 
        CALCULATE(
            [OSVFaturada]
        )
    
    RETURN
        SWITCH(
            TRUE(),
            SELECTEDVALUE(dCargos[NivelH]) = "G", vG1,
            SELECTEDVALUE(dCargos[Cargo]) = "GARANTISTA", vG2,
            vO
        )

     

  17. Você já tentou clicar no botão de atualização dentro do power query para ver se os dados carregam corretamente?

    Outra dica é debugar passo a passo no Power Query, verificando cada etapa onde você aplica filtros (principalmente) ou transformações, para tentar identificar onde o problema está acontecendo. Isso pode ajudar a encontrar o erro que está fazendo a tabela aparecer vazia no Power BI.


     

  18.  

    Primeiro, certifique-se de que está conectado à sua conta do Power BI corretamente, especialmente se os relatórios estão publicados na nuvem. Se estiver tudo certo com a conexão, mas o problema continuar, você pode tentar limpar o cache do Power BI nas opções do programa. Isso pode resolver o problema de visualização dos dados.

    Se isso não funcionar, uma solução pode ser reinstalar o Power BI ou fazer o downgrade para a versão anterior que estava funcionando. Se nada disso ajudar, o suporte da Microsoft pode oferecer assistência mais específica.

×
×
  • Criar Novo...