Ir para conteúdo

Alex Pereira

Alunos
  • Total de itens

    582
  • Registro em

  • Última visita

Tudo que Alex Pereira postou

  1. Bom dia não sei se tem uma forma de fazer isso quando os dados forem atualizados, o que você pode fazer para facilitar seu trabalho de análise é você ter uma dimensão dessa coluna. Que no caso você iria atualizar ela e teria todos DEM. Nat. Oper de forma distinta.
  2. Recomendo ela olhar tbm se todas as fontes de dados dela estão como organizacionais e criptografia marcada. É interessante ela validar tbm se onde ela instalou o gateway é o mesmo ambiente ao qual ela está fazendo teste, porque as vezes ela está com acesso no ambiente local dela, mas o gateway está instalado em um servidor e lá não está tendo acesso! Tbm recomendo ela utilizar o gateway entprise ao invês personal que ele dá menos problemas
  3. Tenho está resposta sobre algumas possíveis soluções que ela pode tentar geralmente funciona!
  4. Bom dia achei essa reposta no forum da alura com problema semelhante. https://cursos.alura.com.br/forum/topico-bug-o-provedor-microsoft-powerbi-oledb-nao-esta-registrado-330999 Experimente instalar e desistalar novamente power bi
  5. Você aplica alguma outra transformação dentro do power query? Quando você aplica outra transformação dentro do power query os dados ele tem são trazidos do seu banco e depois será feita transformação dentro seu ambiente local é recomendado se faça todo processo de etl já dentro da propria consulta sql! Dê uma olhada nessa aula!
  6. Tem sim exemplo utilizando conector mysql: Fonte = MySQL.Database(IP, Database, [ReturnSingleDatabase=true, Query=Query,CommandTimeout=#duration(0, 0, 35, 0)]) Observe que utilzei o CommandTimeout para aumentar meu tempo de execução de 10 para 35 minutos. Para mais detalhes de uma olhada na documentação da Microsoft sobre conector você está utilizando. https://learn.microsoft.com/en-us/powerquery-m/mysql-database Observação: Você deve tomar cuidado ao mudar esse parâmetro porque as vezes pode ser melhor você dar uma melhorada em sua query utilizando atualização incremental ou refatoração diminuir tempo de processamento da query.
  7. Aqui alguns passos você pode fazer para ver se está funcionando: 1 - Verifique se o .NET Framework 4.8 está realmente instalado e atualizado. Vá em Painel de Controle > Programas > Programas e Recursos e procure pela entrada "Microsoft .NET Framework 4.8". Se não estiver lá, reinstale o .NET Framework 4.8 2 - Caso o .NET Framework 4.8 já esteja instalado, tente instalar o gateway novamente. Se o erro persistir, vá para o próximo passo. 3 - Abra o Prompt de Comando como administrador e execute o seguinte comando para reparar a instalação do .NET Framework 4.8: %windir%\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executeQueuedItems Isso irá recompilar os assemblies do .NET Framework 4 - Reinicie o servidor e tente instalar o gateway novamente. 5 - Se ainda assim o erro persistir, verifique se não há conflitos com outras versões do .NET Framework instaladas. Você pode tentar desinstalar versões anteriores do .NET Framework e reinstalar apenas a versão 4.8 6 - Caso o problema persista, tente instalar o gateway em modo de compatibilidade com versões anteriores do .NET Framework, se disponível na opção de instalação
  8. Este gateway é bem melhor mesmo recomendo ele ao inves do outro tive muitos problemas com o pessoal!
  9. Só anexando aqui quando você baixa esse arquivo a opcao Drill Through não parece estar habilitada nesse arquivo você dispanabilizou, talvez seja por ser um arquivo anexado seu de uma versão antiga ou alguma configuração feita. No caso o que fiz para habilitar foi vir aaqui na opcao de informação e clicar em redefinir para o padrão Feito isso o filtro de drill trought foi restaurado!
  10. Boom dia, expreimente usar função Isiscope. De uma olhada nessa aula! https://app.xperiun.com/aula/1704330688582x112559474388616460?v=1704838857306x837654171097005300
  11. Poderia anexar o arquivo? tbm forneça codigo você utilizou
  12. Tente dessa forma: TabelaCalendario = VAR DataMin = MIN(fato_notas[data_emissao]) VAR DataMax = MAX(fato_notas[data_emissao]) RETURN CALENDAR(DataMin, DataMax) Caso estiver dando mesmo erro verifique a sua data mínima no seu conjunto de dados!
  13. Veja se esse código resolve seu problema V1 let // Cria uma tabela fictícia com dados de exemplo FonteDeDados = Table.FromRecords({ [VIAGENS = 1, KM = 100, PALLETS = 10, PESO_CARGA = 5000, M3_PONDERADA = 12], [VIAGENS = 0, KM = 200, PALLETS = 20, PESO_CARGA = 10000, M3_PONDERADA = 25], [VIAGENS = 2, KM = 300, PALLETS = 30, PESO_CARGA = 15000, M3_PONDERADA = 35], [VIAGENS = 0, KM = 400, PALLETS = 40, PESO_CARGA = 20000, M3_PONDERADA = 45] }, type table [VIAGENS = number, KM = number, PALLETS = number, PESO_CARGA = number, M3_PONDERADA = number]), // Transforma cada linha com base no valor da coluna VIAGENS TransformarLinhas = Table.TransformRows(FonteDeDados, (row) => if row[VIAGENS] = 0 then [VIAGENS = 0, KM = 0, PALLETS = 0, PESO_CARGA = 0, M3_PONDERADA = 0] else row ), // Converte a lista de registros transformados de volta para uma tabela TabelaFinal = Table.FromRecords(TransformarLinhas) in TabelaFinal
  14. Bom Diaaaa, poderia fornecer mais informações sobre a API? - Existe documentação? - Qual erro você está tendo no dataflow?
  15. Deixe eu ver pelo que eu entendi, ela está funcionando claramente dentro do power query e quando você publica e tenta conectar num dá certo? Experimente deixar os níveis de privacidade como organizacional!
  16. Bom dia! Abaixo estão os passos exemplificados para a conexão com uma das APIs: Documentação: https://developer.sankhya.com.br/reference/requisições-via-gateway Passo 1 - Criar parâmetros de autenticação: - App Key - Token - email - password Passo 2 - Criar função de autenticação: Desenvolva uma função que utilize os parâmetros acima para autenticar no sistema. No nosso caso chamaremos nossa função de ObterToken. let AutenticarAPI = () => let url = "https://api.sankhya.com.br/login", payload = "{}", headers = [ #"Appkey" = Appkey, #"Token" = Token, #"Username" = email, #"Password" = password ], options = [ Headers = headers, Content = Text.ToBinary(payload), IsRetry = false ], response = Web.Contents(url, options), jsonResponse = Json.Document(response), BearerToken = if Record.HasFields(jsonResponse, "bearerToken") then jsonResponse[bearerToken] else null in BearerToken in AutenticarAPI Passo 3 - Consultar uma tabela específica: Você pode fazer consultas em tabelas específicas conforme sua necessidade. Para cada consulta, utilize uma URL específica junto com um tipo de 'request body'. No exemplo a seguir, utilizamos a consulta à Tabela de Preços, conforme a documentação disponível em: https://developer.sankhya.com.br/reference/get_tabelapreco let // Obtém o token de acesso para autenticação na API. AcessToken = ObtemToken(), // Define a URL base da API para consulta de produtos. url = "https://api.sankhya.com.br/gateway/v1/mgecom/service.sbr?serviceName=ConsultaProdutosSP.consultaProdutos&outputType=json", // Prepara o corpo da requisição, definindo filtros e critérios para a consulta de produtos. requestBody = [ filtros = [ criterio = [ resourceID = "br.com.sankhya.com.cons.consultaProdutos", PERCDESC = "0", CODPROD = Record.FromList({"$"}, {"6"}) ], isPromocao = "false", isLiquidacao = "false" ] ], // Monta o payload final da requisição com o corpo preparado. payload = Json.FromValue([ serviceName = "ConsultaProdutosSP.consultaProdutos", requestBody = requestBody ]), // Configura os cabeçalhos da requisição, incluindo o tipo de conteúdo e a autorização. headers = [ #"Content-Type" = "application/json", #"Authorization" = "Bearer " & AcessToken ], // Define as opções da requisição, como cabeçalhos e conteúdo. options = [ Headers = headers, Content = payload, IsRetry = false ], // Executa a requisição à API e captura a resposta. response = Web.Contents(url, options), jsonResponse = Json.Document(response), responseBody = Record.Field(jsonResponse, "responseBody"), // Verifica se existe o campo 'responseBody' e converte para tabela, caso contrário retorna nulo. tabela = if Record.HasFields(jsonResponse, "responseBody") then Table.FromRecords({responseBody}) else null, // Expande colunas do registro 'produtos' para acessar detalhes específicos de cada produto. #"produtos Expandido" = Table.ExpandRecordColumn(tabela, "produtos", ["existemMaisRegistros", "maxregconsprod", "produto"], ["produtos.existemMaisRegistros", "produtos.maxregconsprod", "produtos.produto"]), #"produtos.produto Expandido" = Table.ExpandListColumn(#"produtos Expandido", "produtos.produto"), #"produtos.produto Expandido1" = Table.ExpandRecordColumn(#"produtos.produto Expandido", "produtos.produto", ["ISPROMOCAO", "ISLIQUIDACAO", "Cadastro_CODPROD", "Cadastro_DESCRPROD", "TIPCONTEST", "TIPLANCNOTA", "Preço_1", "DECQTD", "ORDEMMEDIDA", "CORSEMESTOQUE", "Estoque_1", "DECVLR", "CODVOL", "DESCRPROD", "CODPROD", "TEMIMAGEM", "PRECOBASE"], ["produtos.produto.ISPROMOCAO", "produtos.produto.ISLIQUIDACAO", "produtos.produto.Cadastro_CODPROD", "produtos.produto.Cadastro_DESCRPROD", "produtos.produto.TIPCONTEST", "produtos.produto.TIPLANCNOTA", "produtos.produto.Preço_1", "produtos.produto.DECQTD", "produtos.produto.ORDEMMEDIDA", "produtos.produto.CORSEMESTOQUE", "produtos.produto.Estoque_1", "produtos.produto.DECVLR", "produtos.produto.CODVOL", "produtos.produto.DESCRPROD", "produtos.produto.CODPROD", "produtos.produto.TEMIMAGEM", "produtos.produto.PRECOBASE"]), // Processo continua para cada coluna necessária com detalhes expandidos até alcançar o resultado final. in // Retorna a última tabela expandida com todos os detalhes de produtos. #"produtos.produto.DECVLR Expandido"
  17. Qual serviço de nuvem você está utilizando? Para criar não utilizar o gateway você pode criar um vNet, mas se não me engano é limitado em contas premium do power bi e somente via nuvem azure. De uma olhada na documentação: https://learn.microsoft.com/pt-br/data-integration/vnet/create-data-gateways
  18. Você chegou fazer um test no servidor onde instalado o gateway se está conseguindo conectar ao conjunto de dados? 1 - Faça teste em seu ambiente 2 - Veriques se as fontes estão como organizacio e nivel de privacidade habilitados 3 - Verique se você tem o driver de conexão do mysql em seu servidor!
  19. Experimente excluir o filtro e fazê - lo novamente do zero!
  20. Olá! Realmente, esse é um desafio que exige uma análise detalhada dos dados para fornecer uma resposta precisa. No entanto, eu sugiro que você explore no curso as aulas sobre modelagem de dados dimensionais, pois isso pode esclarecer muitas das suas dúvidas. Pelo que entendi, a tabela de Ordens de Produção atua como uma ponte entre as tabelas de Apontamentos de Produção e de Paradas. Uma abordagem possível seria integrar as informações relevantes da tabela de Ordens de Produção diretamente nas tabelas de Apontamentos, para simplificar o modelo e focar nas análises que você precisa realizar. Isso ajudaria a manter os dados mais acessíveis e talvez até melhore o desempenho do seu dashboard. É claro que é essencial estudar mais sobre o modelo atual e as regras de negócio para garantir que qualquer mudança seja benéfica e alinhada com as necessidades da sua análise. Espero ter ajudado 🙂
  21. Alex Pereira

    Listas

    Só complementando a resposta do bruno deve - se tomar cuido em fazer isso no python pq por padrão seu index começa no zero. Alguns comentários ajudar! # Python utiliza indexação baseada em zero, o que significa que o primeiro elemento de uma lista está no índice 0. # Portanto, ao especificar índices para remover elementos de uma lista, certifique-se de que os índices correspondam # aos elementos desejados, considerando que a contagem começa do zero. lista = [1, 2, 3, 4, 5, 6] print("Lista original: ", lista) # Definindo os índices dos elementos que desejamos remover. indices_a_remover = [0, 2, 4] # É importante remover os elementos de trás para frente quando iteramos diretamente sobre a lista, # isso evita problemas com o deslocamento de índices após cada operação de remoção. for indice in sorted(indices_a_remover, reverse=True): del lista[indice] print("Lista após remoções:", lista)
  22. Tem como fazer conexão via direct query ai você vai estar puxando dados direto banco. Contudo tudo tem suas limitações.
  23. Acredito que o o problema seja devido se usar uma fonte dinâmica dentro do seu conjunto de dados que no caso seria sua url, se não me engano isso não é permitido no power bi. Tente utilizar parâmetro de Query dentro da API. (optional ultCod as number, optional travelList as list) => let ultCode = if ultCod = null then 1 else ultCod, baseUrl = "https://tjgrm.begcloud.com/ws_rest/public/api/viagem", headers = [ #"Content-Type" = "application/json", #"Authorization" = "Basic V1NUSjpXUzQ1OFdT", #"X-APP-TRAFEUGS" = "9" ], // Correção: Definindo o parâmetro Query diretamente nas opções options = [ Headers = headers, Query = [#"UltCodigo" = Text.From(ultCode)] ], response = Json.Document(Web.Contents(baseUrl, options))[viagens], lastId = if List.IsEmpty(response) then -1 else List.Last(response)[viagemId], travels = if travelList = null then response else List.Combine({travelList, response}), out = if lastId = -1 then Table.FromRecords(travels) else @fRecursiveTravels(lastId, travels) in out
×
×
  • Criar Novo...