BUG na função Existem Registros do Maker
-
Prezados(as), estou reportanto um BUG de 7 dias atrás que é do MAKER e venho tentando trocar e-mails com o suporte, desde então.
O Maker é a ferramenta mais Bugada que encontrei na vida.Vamos ao problema:
Faço uma consulta usando Abrir Consulta para retornar uma única data de um campo Data na tabela e em seguida checo com a função Existem registros na figura de Decisão, passando a tabela para ver se retornou alguma coisa ou não. Em seguida, uso a função É Nulo ou Vazio para garantir que a tabela retornada não está nula. Quando não retorna nada, está sendo apresentada uma mensagem de erro Não é possível converter um valor nulo para uma data!
Significa que mesmo que a consulta não tenha retornando nada, essas validações estão sendo positivas, pois logo em seguida, uso a função Campo passando a tabela e solicitando o atributo de Data.Aqui estão os vídeos que gravei com intenção de enviar a equipe de suporte, demonstrando que a função Existem Registros tem BUG.
https://drive.google.com/drive/folders/1XjeuTZtenJDA1-G_0d37n-ICGyAEnmNv?usp=sharingPara susbstituir a função Existem Registros com BUG, fiz essa gambiarra que está me atendendo muito bem. Ela está demonstrada no vídeo 04 no link do driver logo acima.
-
Bom dia, @almedson!
O agregado que você está utilizando
MAX DISTINCT
, que você provavelmente colocou para trazer um registro com maior data, sempre trás um registro no ResultSet mesmo que não possua nenhuma tupla no banco de dados.Quem faz isso não é o Maker, é o próprio banco de dados. Se você pegar essa mesma consulta que você fez no Maker e rodar no gerenciador do seu banco, vai ver que vai te retornar um registro com o campo NULO.
Não tem nenhum problema na função Existem Registros ou qualquer outra função de banco do Maker. Verifique sua regra de negócio.
Atenciosamente,
-
Prezado @dngadelha,
Primeiramente quero agradecer pelo trabalho que você teve em analizar o meu problema.
Esse é o select que verdadeiramente gostaria de fazer e o Maker não permitiu:SELECT DISTINCT BLP_OPERADORAS.data FROM BLP_OPERADORAS WHERE DDD = 0
Se você executar, verá que não será retornado nenhum valor e portanto não teria problemas na minha regra de negócio com a função Existem Registros.
Não há no Wizard SQL a opção DISTINC pura, então fui obrigado a escolher uma das alternativas pré-definidas. Fui induzido ao erro pela ferramenta e pela falta de documentação.
Poderia haver a opção DISTINCT pura, porque não colocaram? A Max Distinct foi a que mais se aproximou da minha necessidade e ainda tentei apagar a palavra Max, mas o Maker coloca novamente.
Entretanto consegui agora fazer no Wizard SQL o seguinte SQL:
Select 'Distinct BLP_OPERADORAS.DATA' as Data From BLP_OPERADORAS Where BLP_OPERADORAS.DDD = 0
Com 'ASPAS'!! Mesmo sendo experiente em SQL, não sou obrigado a lembrar de certos detalhes, aliás, é impossível lembrar de tudo e por isso precisamos de estar consultando frequentente a documentação e a documentação tem que ser boa e de qualidade.
Grande parte da minha dificuldade no Maker está na falta de documentação ou na documentação que já existe e que é ruim e desorganizada, um documentação pobre.
Escrevi ao e-mail de suporte da softwell a seguinte frase: "O melhor suporte é aquele que não precisa ser consultado, pois significa que as etapas anteriores foram bem feitas"Esse post que você respondeu e obrigado por isso, também foi enviado ao e-mail de suporte da softwell e lá não obtive resposta nenhuma, nem a indicação de qualquer tipo de documentação. Existe documentação que me ajude a usar o Wizard SQL corretamente?
Pelo menos no que é possível fazer com ele? Se sim, ficarei grato se me enviar, pois até agora ninguém me enviou nada.O que fizeram foi tentar me vender consultoria e planos mais caros para suprir o básico que é obrigação da empresa, a documentação.
O Maker também impõe limitações e não permite fazermos qualquer SQL.
Esse SQL aqui tive que descartar na minha lógica de negócio porque o Maker não permite:
select distinct convert(varchar, getdate(), 11) 'DATA'
Até tentei fazer da seguinte forma e deu erro:
Não encontrei no Maker um editor de SQL manual onde também pudesse passar parâmetros. Se houver, peço por favor, que me indique.
A falta de uma documentação boa e de qualidade do Maker, me faz cometer erros bôbos. O pior que já passei, foi quando cometi um desses erros, através de tentativas e erros devido a falta de documentação, que o Maker deu pau e travou tudo e a equipe de suporte teve que acessar duas vezes o meu computador para apagar contexto, republicar, etc. E o BUG continua lá. Portanto tive que aprender a apagar contexto, republicar, que em realidade significa: "reinstalar a plicação para resolver um BUG na memória que a equipe de desenvolvimento não resolveu". Cara, nunca passei por isso com nenhuma outra linguagem ou ferramenta NoCode.
Sobre a sua afirmação: "Não tem nenhum problema na função Existem Registros ou qualquer outra função de banco do Maker." Discordo totalmente.
Peço uma demonstração de como posso executar no Maker esse select:
select distinct convert(varchar, getdate(), 11) 'DATA'
Deve ser possível, espero que seja, só que ninguém me enviou nenhuma documentação a esse respeito. E a opção gráfica SQL Texto, vai usar uma função de banco do Maker. Aí você me convence momentaneamente de que a sua afirmativa: "ou qualquer outra função de banco do Maker", está correta, me convencerá até o próximo erro aparecer.
Mas ainda irei te mostrar um outro erro do Maker aqui. E que é numa função de banco de dados:
Prestou bem atenção na imagem acima?
Isso daí já é prova suficiente que a sua afirmação não procede e lhe peço mil desculpas, não quero ser mal interpretado pela sua pessoa, que está caridosamente me atendendo ou por outros que leiam esse comentário, não é nada pessoal. Com sinceridade não quero ofender ninguém, ainda que minhas palavras possam soar duras em alguns momentos e é preciso fazê-lo.Uma breve aula sobre BUGs:
Exibir ao usuário uma string "Suceço" com Ç, consideramos que é BUG. BUG de nível ZERO, pois é um erro, está claro, mas vai provocar no máximo risadas no usuário. Não deixa de ser erro, portanto é BUG sim. Os BUGs não se resumem a exceptions. O erro que está nessa imagem acima, que é uma função de banco, é permitir que o usuário escolha uma opção que vai gerar um BUG de nível máximo. A aplicação vai travar de tal forma que nada mais irá funcionar e será necessário atualizar webrun, apagar contexto, republicar contexto, etc. Uma solução para resolver esse problema e que não foi feita, é desabilitar ou deixar invisível ao usuário a opção SQL Atualização quando a função Abrir Consulta estiver sendo construída. O ideal é desabilidar ou esconder, qualquer outra opção que não seja compatível com a função Abrir Consulta.E agora preciso ser duro mais uma vez, não com você meu amigo, mas sim com o dono da empresa ou com o Adriano Barbosa, Gerente Executivo da Softwell, que me escreveu dia 22 de Agosto, dizendo que queria marcar uma reunião comigo naquela semana e até hoje nada . Não existem desenvolvedores Sêniors dentro da Softwell. Se houvessem, a ferramenta já estaria em outro nível. As reclamações sobre o Maker no Reclame Aqui seriam outras, mais amenas, mais voltadas ao atendimento. A minha curva de aprendizado estaria sendo menos dolorosa e eu não precisaria estar escrevendo e-mails ao suporte, todos os dias em que uso o Maker. Se houver algum setor de Qualidade, aí sinto muito tenho que dar risada mesmo.
Para descontrair. Adoro esse même. Lógico que Sênior não é só sobre BUGs.
https://www.instagram.com/p/ChYBkOkLU2y/E aí, pela deficiência nos processos de desenvolvimento da empresa, pela má qualidade do software que é entregue(má qualidade sim), pela falta de uma documentação adequada. Ainda querem me vender treinamentos e consultorias, para suprir o básico que não fizeram, quando as únicas coisa que preciso é uma documentação bem escrita e completa e uma ferramenta sem BUGs. O básico que a Softwell, não fez bem feito.
No dia em que a equipe de desenvolvimento do Maker me entregar uma documentação completa e de qualidade, dificilmente precisarei ter que publicar alguma coisa nesse fórum.
E se precisar, tudo bem, tenho humildade suficiente para reconhecer minhas limitações, programação é um universo tão vasto que ninguém é alto suficiente, ninguém tem tudo na memória, ninguém sabe tudo.Atenciosamente,
Almedson -
Olá, @almedson!
O Assistente SQL do Maker tem a opção para você definir a cláusula DISTINCT sim. Para fazer isso, basta clicar com botão direito na área do Assistente SQL e clicar na opção Editar.
Vai abrir uma tela onde você pode especificar algumas propriedades da sua query, incluindo definir o DISTINCT.
Ao escolher essa opção, ele coloca o
SELECT DISTINCT
no seu comando SQL exatamente da forma que você espera:A respeito da documentação, já deu uma olhada em nosso manual? Lá está a documentação completa do Maker e do Webrun, explicando todos os processos, configurações, telas e funcionalidades.
Inclusive essa opção que você disse que não possui está lá descrita em nosso manual: https://manual.softwell.com.br/#/editando_o_tipo_de_select_da_consulta
Assim como toda a documentação da interface do Assistente SQL do Maker: https://manual.softwell.com.br/#/iniciando_com_o_assistente_sql
Espero ter te ajudado!
Atenciosamente, -
Prezado @dngadelha, esqueci de responder a sua pergunta. Sim, olhei o Manual e ele não está completo e foi o motivo de trocas de e-mails com o suporte. Também confesso que peguei aversão a esse Manual e confesso também que não procurei nele sobre o Wizard SQL. Estava me baseando pela aula do portal EAD.
Atenciosamente,
Almedson