fluiggers / fluig-vscode-extension

Extensão do VS Code para facilitar o desenvolvimento na plataforma Fluig.
MIT License
32 stars 13 forks source link

[BUG] Parâmetros não são enviados ao consultar dataset #21

Closed msmosso closed 1 year ago

msmosso commented 1 year ago

Descreva o erro Quando é feita a consulta de um dataset informando os parâmetros antes da primeira execução, os mesmos não são enviados e, após a execução, apenas o parâmetro sqlLimit é listado.

Para reproduzir Etapas para reproduzir o comportamento:

  1. Clique no ícone da extensão
  2. Na lista de servidores, clique no ícone de consultar dataset
  3. Selecione o dataset e clique em Configurar Parâmetros
  4. Adicione ao menos um parâmetro e clique em Atualizar Consulta

Resultado esperado O resultado deveria considerar os parâmetros adicionados. Entretanto, após a execução, ao clicar em Configurar Parâmetros, é possível verificar que o parâmetro adicionado foi removido e apenas o parâmetro sqlLimit é exibido.

brunogasparetto commented 1 year ago

Esse comportamento é uma cópia do comportamento do plugin oficial de Eclipse. Nele só é possível definir parâmetros, campos e ordenação após executar o Dataset pela primeira vez. Afinal não tem como saber quais campos serão retornados pelo Dataset antes da primeira execução.

Talvez o ideal seja desabilitar o botão de "Configurar Parâmetros" e só o ativar após a primeira execução, igual ao plugin do Eclipse.

Outro motivo para "resetar" os parâmetros ao executar um Dataset diferente é justamente pra não ter que ficar limpando os parâmetros ao trocar de Dataset. Imagina que executou o dataset colleague e então resolva consultar o dataset AccessLog, para não ter que manualmente limpar os parâmetros o plugin já limpa todas as constraints, deixando a sqlLimit para evitar uma consulta inicial muito grande.

brunogasparetto commented 1 year ago

Agora quando o dataset dá erro na primeira consulta ele não exibe a opção de parametrizar.

Isso ocasiona problemas nos datasets que obrigam a ter alguma constraint e não foram implementados para responder com alguma mensagem de erro, dando simplesmente uma exceção.