Comando IF | ABAP Warrior

Comando IF

Quem nunca ouviu alguém concluir dizendo: "então é só colocar um IF que vai funcionar!!!"
Na verdade ainda ouço de vez em quando... rsrsrs

Algumas pessoas acham que programação se resume em IFs. Pensam que se abrir o código fonte de um programa só verão IFs. A explicação sobre isso é que o IF é o comando mais popular no mundo da programação e também no mundo fora dela.


Vamos falar sobre o IF dentro do mundo ABAP.
Essa é a primeira postagem da série COMANDOS.




O que é um IF ?


IF é um comando utilizado para causar um desvio de comportamento em um programa. Especificamente serve para fazer com que o programa execute um determinado trecho do código apenas SE cumprir uma ou mais determinações. Não é por acaso que se chama IF, é a exata tradução de SE.

Como funciona o IF ?


Acredito que o IF é um dos comandos mais básicos e fáceis de se executar em qualquer linguagem de programação, e em ABAP não poderia ser diferente. Basta escrever IF em seu código e em seguida escrever qual é a condição e terminar com ponto. Em seguida escrever a programação desejada. Em seguida precisa fechar o comando com um ENDIF e mais um ponto.

Em um exemplo simples ficaria assim:
  IF l_variavel EQ 'MEU VALOR'.
    WRITE 'Entrou no IF'.
  ENDIF.

No exemplo acima estou verificando se o valor da variável L_VARIAVEL é igual a "MEU VALOR". Se atender as condições, o programa entra no bloco do IF e executa o comando WRITE. Depois o bloco do IF é fechado com ENDIF.

O comando IF também funciona com duas ou mais condições. A sintaxe é a mesma ficando apenas o detalhe para o operador entre as condições.

Exemplo de IF com duas condições usando operador E (AND):
  IF l_variavel1 EQ 'VALOR1' AND l_variavel2 EQ 'VALOR2'.
    WRITE 'Entrou no IF'.
  ENDIF.

No exemplo acima estou verificando se o valor da variável L_VARIAVEL1 é igual a "VALOR1" e se o valor da variável L_VARIAVEL2 é igual a "VALOR2". Se atender as condições, o programa entra no bloco do IF e executa o comando WRITE. Depois o bloco do IF é fechado com ENDIF.

Existem, ainda, alguns complementos do comando IF que podem ajudar a criar lógicas mais específicas. O primeiro, e mais comum, é o ELSE. Ele serve como negação das condições do IF. A tradução também já é auto-explicativa, significa "SE NÃO".

Exemplo de IF com ELSE.
  IF l_variavel EQ 'MEU VALOR'.
    WRITE 'Entrou no IF'.
  ELSE.
    EXIT.
  ENDIF.

No exemplo acima estou verificando se o valor da variável L_VARIAVEL é igual a "MEU VALOR". Se atender as condições, o programa entra no bloco do IF e executa o comando WRITE. Se não atender as condições, o programa entre no bloco do ELSE e executa o comando EXIT. Depois do bloco do IF e do bloco do ELSE o comando é fechado com ENDIF.

O outro complemento, e último, é o ELSEIF. Ele serve para fazer outras verificações além da primeira, e podem haver quantas forem necessárias. É muito útil quando existem comportamentos diferentes para condições diferentes.

Exemplo de IF com ELSEIF:
  IF l_variavel EQ 'VALOR1'.
    WRITE 'Entrou no IF'.
  ELSEIF l_variavel EQ 'VALOR2'.
    CALL TRANSACTION 'Z_EXEMPLO'.
  ENDIF.

No exemplo acima estou verificando se o valor da variável L_VARIAVEL é igual a "VALOR1". Se atender as primeiras condições, o programa entra no bloco do IF e executa o comando WRITE. Se não atender as primeiras condições, então verifica se o valor da variável L_VARIAVEL é igual a "VALOR2". Se atender estas condições, o programa entre no bloco do ELSEIF e executa o comando CALL TRANSACTION. Depois do bloco do IF e do bloco do ELSEIF o comando é fechado com ENDIF.

Por fim, os complementos ELSEIF e ELSE e podem ser usados juntos. Neste caso o ELSE serve como negação a todas as condições anteriores. Se não atender a nenhuma das condições anteriores, com certeza entrará no ELSE.

Exemplo de IF com ELSEIF e ELSE:
  IF l_variavel EQ 'VALOR1'.
    WRITE 'Entrou no IF'.
  ELSEIF l_variavel EQ 'VALOR2'.
    CALL TRANSACTION 'Z_EXEMPLO'.
  ELSE.
    EXIT.
  ENDIF.

No exemplo acima estou verificando se o valor da variável L_VARIAVEL é igual a "VALOR1". Se atender as primeiras condições, o programa entra no bloco do IF e executa o comando WRITE. Se não atender as primeiras condições, então verifica se o valor da variável L_VARIAVEL é igual a "VALOR2". Se atender estas condições, o programa entre no bloco do ELSEIF e executa o comando CALL TRANSACTION. Se não atender a nenhuma das condições, o programa entre no bloco do ELSE e executa o comando EXIT. Depois do bloco do IF, do bloco do ELSEIF e do bloco ELSE o comando é fechado com ENDIF.

Não se engane com este comando. Ele parece simples, mas pode causar um grande impacto. Da mesma forma que um IF pode ser a solução de um programa, também pode causar a parada de um ambiente produtivo. Por isso, por mais simples que possa parecer, toda lógica deve ser testada com todos os cenários possíveis.

Veja todas as postagens da série COMANDOS.
Um grande abraço e até a próxima!!!
2016-01-09T15:49:00-02:00 2017-04-09T15:19:57Z
Nenhum comentário:
Related Posts Plugin for WordPress, Blogger...