Por: Marco Peres – Desenvolvedor OutSystems na add
Uma das realidades mais fantásticas e “descabelantes” na área de TI, é o fato de que cada desenvolvedor resolve problemas de formas diferentes, com lógica própria e elementos técnicos distintos (às vezes, com uma criatividade desconcertante).
Vamos entender melhor?
Imagine a seguinte solicitação: “Crie uma Action que receba número (referente ao mês) e retorne um string (referente ao nome do mês em português)”.
Bom, se você está habituado com a plataforma low code OutSystems, temos quatro alternativas básicas como solução:
- Utilizar uma estrutura lógica com “If”;
- Utilizar uma estrutura “Switch”;
- Correr para “Forge” e torcer para achar alguma dica ou solução pronta;
- Fugir para as montanhas.
Partindo do princípio que você optou por construir a solução, assim como eu, utilizaremos o
‘Switch” conforme a action “getNameMonth”.
O que é action “getNameMonth”?
É uma “Action” simples que recebe um número e retorna um string com seu equivalente baseado nos 12 meses do ano (essa parte não muda, afinal teremos inexoravelmente 12 meses no ano!). O “otherwise” serve para você devolver um “Mês não definido!”.
Podemos resolver a mesma solicitação utilizando uma estrutura “If”? Com certeza, mas o código ficaria um pouco mais extenso.
Se você reparar, temos “getNameWeek”, onde utilizo a mesma lógica com “Switch”.
Tá, mas… O que isso tem a ver com Javascript?
Calma meu pequeno “Padwan”. É justamente aí que a trama se desenvolve.
Vamos a outra solicitação: “Desenvolva uma Action que receba dois números inteiros e retorne o intervalo de números entre eles.”
Bom, desenvolvedores… temos em um pensamento clássico a solução de criação desta Action
OutSystems utilizando as estruturas “ForEach e If”, mas se você já analisou esta solicitação e
tentou resolver usando “ForEach e IF”, já deve ter entendido onde quero chegar.
Porque não utilizar JavaScript?
Eu realmente adoro desenvolver em OutSystems, e parte deste sentimento está justamente em poder utilizar elementos como CSS, Javascript, C# e Java como complemento ou base de solicitações.
Uma das soluções em código JavaScript pode ser esta:
Código Javascript
Ok… mas a Action está devolvendo apenas o intervalo entre dois números em um string?
Sim, é isso mesmo! O Javascript apenas resolveu uma parte, digamos “complicada”, de forma simples e que pode ser reutilizada para obter quaisquer intervalos inteiros: dias do mês, meses do ano ou mesmo intervalo entre anos (ex: 2010 a 2021).
Como solução para seleção de dias ou mesmo meses, posso utilizar da seguinte forma:
- Passo os dois valores inicial e final para para Action “intervalReturn”;
- Recebo o string (com o resultado delimitado por vírgula);
- Utilizo “String Split” para transforma este string em uma lista;
- Utilizo “Foreach” para percorrer esta lista;
- E finalmente, incremento minha estrutura de list definitiva com a lista obtida pelo “String list” para que possa ser utilizado em “DropDown” ou qualquer outra necessidade.
Outra dica: se você quiser obter intervalo de dias do mês (já que os dias do mês podem variar), utilize as funções.
Espero que este artigo tenha colaborado!