<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Mais um BUG no Maker]]></title><description><![CDATA[<p dir="auto">Esse é o BUG de hoje no Maker. <strong>O Maker é a ferramenta mais cheia de BUGs que conheci na minha trajetória profissional de mais de 20 anos em desenvolvimento de softwares.</strong><br />
Montei um JSON na camada cliente para ver se estava no formato ideal para o meu negócio e quando fui repetir na camada servidor, deu PAU.<br />
As duas funções utilizadas estão assinaladas pela ferramenta que podem ser utilizadas na camada cliente:<br />
<img src="/assets/uploads/files/1662136093805-screenshot_42.jpg" alt="Screenshot_42.jpg" class=" img-fluid img-markdown" /><br />
E também na camada Servidor:<br />
<img src="/assets/uploads/files/1662136074027-screenshot_43.jpg" alt="Screenshot_43.jpg" class=" img-fluid img-markdown" /></p>
<p dir="auto">Não irei mostrar toda a estrutura do JSON com imagens, mas apenas um dos processos na camada cliente ficou assim, com o valor obtido direto do componente:<br />
<img src="/assets/uploads/files/1662136469737-processocliente.jpg" alt="ProcessoCliente.jpg" class=" img-fluid img-markdown" /><br />
Na camada servidor esse mesmo processo ficou assim, com o valor passado por parâmetro do fluxo:<br />
<img src="/assets/uploads/files/1662136546235-processoservidor.jpg" alt="ProcessoServidor.jpg" class=" img-fluid img-markdown" /><br />
A estrutura é a mesma e de acordo com a documentação.<br />
Neste link do meu driver, vocês poderão ver o vídeo da aplicação sendo executada perfeitametne na camada cliente e dando <strong>PAU, BUG, ERRO</strong>, na camada servidor.<br />
<a href="https://drive.google.com/file/d/1hLRvBFQrLsJUPqdjCTvoZdQ_E7QJ-7Ya/view?usp=sharing" rel="nofollow ugc">https://drive.google.com/file/d/1hLRvBFQrLsJUPqdjCTvoZdQ_E7QJ-7Ya/view?usp=sharing</a><br />
Não importa se a variável de retorno é Variante ou Letras, vai dar PAU do mesmo jeito. Na camada cliente a variável de retorno usei Letras e funcionou. No mesmo sistema em que estou trabalhando, legado de um programador Maker, essas mesmas funções foram usadas na camada servidor e não está acontecendo erro, mas está acontecendo esse erro comigo e vocês podem checar no vídeo.</p>
<p dir="auto">Preciso que a equipe de <strong>desenvolvimento do Maker</strong> me ajude a resolver esse problema para poder continuar desenvolvendo e que esse <strong>BUG</strong> nunca mais apareça.</p>
<p dir="auto">Atenciosamente,<br />
Almedson</p>
]]></description><link>https://forum.softwell.com.br/topic/31607/mais-um-bug-no-maker</link><generator>RSS for Node</generator><lastBuildDate>Mon, 16 Mar 2026 05:42:28 GMT</lastBuildDate><atom:link href="https://forum.softwell.com.br/topic/31607.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Sep 2022 16:54:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mais um BUG no Maker on Fri, 02 Sep 2022 23:54:59 GMT]]></title><description><![CDATA[<p dir="auto">Prezado <a class="plugin-mentions-user plugin-mentions-a" href="/user/dngadelha">@<bdi>dngadelha</bdi></a> , tudo tranquilo obrigado.</p>
<p dir="auto">Contextualizando, a situação é o seguinte. Fui contratado para para dar continuidade no desenvolvimento de um software que foi feito em Maker. Então o antigo programador fez vários JSONs na camada servidor. E foi através dos fluxos dele que estou me espelhando. Então a mesma estrutura que ele utilizou está funcionando no fluxo dele, no servidor.<br />
Só que antes de passar para a camada servidor, fiz toda a funcionalidade na camada cliente, <strong>porque a documentação deixa claro que as funções funcionam em ambas as camadas</strong>.</p>
<p dir="auto">A documentação do Maker não ajuda. O que é que a documentação diz sobre a função JSON - Atualiza Valor:</p>
<p dir="auto">##############<br />
Essa função atualiza um elemento no objeto JSON passado no primeiro parâmetro.<br />
Caso a chave passada no segundo parâmetro não exista a mesma será criada.</p>
<p dir="auto">Parâmetros:</p>
<ol>
<li>Objeto JSON</li>
<li>Chave<br />
<strong>3. Valor</strong> &lt;Aqui não está dizendo o tipo de entrada do parâmetro.&gt;</li>
</ol>
<p dir="auto">FIM ##############</p>
<p dir="auto">O antigo programador usa a função JSON - Criar objeto no terceiro parâmetro na camada servidor.  Peguei a variável Valor e a converti para inteiro com a função <strong>Para Inteiro</strong> e funcionou.</p>
<p dir="auto"><img src="/assets/uploads/files/1662155420717-screenshot_45.jpg" alt="Screenshot_45.jpg" class=" img-fluid img-markdown" /></p>
<p dir="auto">Também funcionou com a conversão, mas sem a função JSON - Criar objeto:<br />
<img src="/assets/uploads/files/1662156568138-screenshot_47.jpg" alt="Screenshot_47.jpg" class=" img-fluid img-markdown" /></p>
<p dir="auto">Passei a variável pura sem conversão e também funcionou:<br />
<img src="/assets/uploads/files/1662155475730-screenshot_46.jpg" alt="Screenshot_46.jpg" class=" img-fluid img-markdown" /></p>
<p dir="auto">O que a documentação diz sobre a função JSON - Criar Objeto:<br />
##############<br />
Esta função recebe um texto JSON e retorna um objeto:</p>
<p dir="auto">Parâmetro:<br />
<strong>1. Texto em JSON.</strong>  &lt;Aqui não diz qual é o tipo de entrada, mas pela descrição podemos supor que recebe texto em JSON. Então aceitou um valor Integer, mas rejeitou uma String numérica na camada servidor. A String numérica foi aceita na camada cliente.&gt;</p>
<p dir="auto">Retorno:<br />
Objeto JSON.<br />
FIM###########</p>
<p dir="auto">Portanto meu caro, se a função é do Maker. Se o Maker usa ou não Javascript, se usa ou não Java, Scalla, C++, .NET, etc, é obrigação da equipe de desenvolvimento fazer com que a função Maker se comporte de acordo com a sua documentação independente se está no cliente ou no servidor. Sou programador Java desde a versão 1.8, lá pelo ano 2000.  É muito fácil em Java identificar o tipo ou verificar se uma conversão é possível ou não sem mostrar isso ao usuário. Portanto é muito fácil fazer em Java, na camada servidor, essa função se comportar da mesma forma que a camada cliente e portanto estar mais fiel a sua documentação.<br />
<img src="/assets/uploads/files/1662157487117-processoservidor.jpg" alt="ProcessoServidor.jpg" class=" img-fluid img-markdown" /></p>
<p dir="auto"><strong>Então no momento em que a documentação do Maker deixa "claro" que a mesma função pode ser usada no cliente ou no servidor, os comportamentos dessa mesma função devem ser idênticos em qualquer aspecto em ambas as camadas. Se há diferença, então é BUG</strong>.<br />
Se a equipe de desenvolvimento do Maker não consegue igualar os comportamentos da função tanto no cliente quanto no servidor, então é obrigação estarem descritas na documentação, as diferenças de comportamento.<br />
A documentação do Maker não é boa. Há uma função que não me recordo o nome(teria que pesquisar nos e-mails que enviei ao suporte), que tem tipo de retorno Variante, e o valor era uma String numérica. Tentei as duas formas, passar o valor para uma variável tipo Inteiro, deu PAU, e depois passei o valor para uma variável de tipo Letras, funcionou. Depois converti para Inteiro.<br />
Reportei o problema ao suporte, só do que deu erro e o suporte me disse que o retorno poderia ser Inteiro ou Letras. Inteiro deu pau, então há um BUG aí. Por essa e muitas outras dores de cabeça que tive com a documentação do Maker, que já inicio qualquer texto dizendo que <strong>o Maker é a ferramenta mais bugada que conheci na vida</strong>.</p>
<p dir="auto">Prezado <a class="plugin-mentions-user plugin-mentions-a" href="/user/dngadelha">@<bdi>dngadelha</bdi></a>, agradeço a sua ajuda. Tentei novas possibilidades em cima de um código que estudei de um outro programador, mas se a documentação afirma que a mesma função pode ser usada em ambas as camadas e há diferenças de comportamento entre essas camadas, então <strong>é erro da equipe de desenvolvimento</strong> , que poderia sim, converter para inteiro uma String numérica na camada servidor, igualando os comportamentos da função em ambas as camadas.</p>
<p dir="auto">Se na documentação estivesse claramente a descrição de que essas funções possuem comportamentos diferentes em ambas as camadas, com certeza não teria me esforçado em criar o meu primeiro BODY em JSON na camada cliente. Teria quebrado a cabeça só na camada servidor até conseguir. Fiz isso na camada cliente por culpa da documentação e pela comodidade dos parâmetros necessários para o JSON já estarem na camada cliente, depois era só transferir para a outra camada.</p>
<p dir="auto">Abraços meu caro, muito obrigado e se há comportamentos diferentes na mesma função e não está documentado, é BUG sim.</p>
]]></description><link>https://forum.softwell.com.br/post/42040</link><guid isPermaLink="true">https://forum.softwell.com.br/post/42040</guid><dc:creator><![CDATA[Almedson]]></dc:creator><pubDate>Fri, 02 Sep 2022 23:54:59 GMT</pubDate></item><item><title><![CDATA[Reply to Mais um BUG no Maker on Fri, 02 Sep 2022 20:49:25 GMT]]></title><description><![CDATA[<p dir="auto">Olá, <a class="plugin-mentions-user plugin-mentions-a" href="/user/almedson">@<bdi>almedson</bdi></a>! Tudo bom?</p>
<p dir="auto">O problema na sua regra está na sua chamada da função <strong>JSON - Atualizar Valor</strong> do processamento <strong>topupData</strong>, mais especificamente no <strong>3º parâmetro</strong> dessa função, onde acredito que você tenha se equivocado em chamar a função <strong>JSON - Criar Objeto</strong> passando o valor do componente. Assim como mostra no seu print:</p>
<p dir="auto"><img src="/assets/uploads/files/1662150427820-c7927572-e617-47e1-825f-b4d4965209fb-image.png" alt="c7927572-e617-47e1-825f-b4d4965209fb-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Basicamente o que você tentou fazer é:</p>
<p dir="auto"><img src="/assets/uploads/files/1662150262188-7f5f52ee-2c5a-488e-a409-2b15b8be2ae8-image.png" alt="7f5f52ee-2c5a-488e-a409-2b15b8be2ae8-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">A camada <strong>Cliente</strong> é meramente <strong>Javascript</strong> e, por natureza, ele é muito permissivo em muitas questões de sintaxe e funcionalidade.</p>
<p dir="auto">No console do navegador se você executar um <strong>JSON.parse</strong> da string <strong>"25"</strong> ele vai funcionar e te retornar o número inteiro, que você está associando a chave <strong>value</strong> do seu JSON.</p>
<p dir="auto"><img src="/assets/uploads/files/1662150504882-f45de9dc-c5e5-4e15-8003-68b5ae7b936d-image.png" alt="f45de9dc-c5e5-4e15-8003-68b5ae7b936d-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Esse tipo de abordagem <strong>é incorreta em qualquer camada</strong>. Uma string "25" (que é o valor do seu componente no vídeo apresentado) <strong>não é um JSON válido</strong>. Apenas funciona na camada cliente pela natureza do <strong>Javascript ser muito permissivo</strong>.</p>
<p dir="auto">Fiz uma regra que dá um <strong>console.log</strong> no resultado dessa função e me retornou exatamente o trecho do JSON que você espera:</p>
<p dir="auto"><img src="/assets/uploads/files/1662150980685-6134e1ff-8b8a-4558-aeae-a752e01f3b35-image.png" alt="6134e1ff-8b8a-4558-aeae-a752e01f3b35-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1662150933814-c9a1b438-8745-4fd9-9f2b-d07265b6f148-image.png" alt="c9a1b438-8745-4fd9-9f2b-d07265b6f148-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Entretanto a camada <strong>Servidor</strong> não é assim, o <strong>Java</strong> é <strong>muito mais rigoroso</strong> nesses aspectos.  Se você tentar dar um parse num JSON que não é válido, <strong>ele vai dar erro</strong>.</p>
<p dir="auto">Assim, ao colocar o mesmo fluxo na camada <strong>Servidor</strong> dá o erro que está ocorrendo com você:</p>
<p dir="auto"><img src="/assets/uploads/files/1662149753128-249bd7c8-f6e1-421f-b5d9-a5c945d0f5a9-image.png" alt="249bd7c8-f6e1-421f-b5d9-a5c945d0f5a9-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">O Maker deixa livre ao desenvolvedor fazer as regras da forma que bem entender e precisar, e ele tenta auxiliar e validar as coisas o máximo que ele puder. Mas esse tipo de situação é meramente erro de lógica de programação do desenvolvedor que está fazendo a regra, coisas essas que o Maker não tem como validar.</p>
<p dir="auto">Atenciosamente,<br />
Danilo Gadelha.</p>
]]></description><link>https://forum.softwell.com.br/post/42035</link><guid isPermaLink="true">https://forum.softwell.com.br/post/42035</guid><dc:creator><![CDATA[dngadelha]]></dc:creator><pubDate>Fri, 02 Sep 2022 20:49:25 GMT</pubDate></item></channel></rss>