Guias

Published on August 31st, 2011 | by Mauricio Cruz

3

ABAPZombie Guide to ABAP – Parte 27 – CHECK

Bom, eu estou com um problema chato porque estou sem acesso ao meu ambiente Trial do Netweaver, fiz o favor de destruir a Virtual Machine tentando convertê-la para usá-la em um outro software. Mas como ninguém se importa com isso ( 🙁 ), vamos analisar mais um comando, o CHECK!

Síntaxe do comando: CHECK <expressão lógica>, e só. “Mas ué, não tem um ENDCHECK?” Não.. até porque se tivesse seria igual ao IF, mas é exatamente por não tem um ENDCHECK que a coisa começa a complicar…

O CHECK é um comando mutável, isto é, seu funcionamento muda dependendo de onde ele estiver, sem alteração nenhuma em sua síntaxe.

Se você colocar um CHECK dentro de um laço, como este:

Sempre que um CHECK estiver dentro de um laço e a expressão lógica que você estiver checkando for falsa o programa irá voltar para o início do laço e seguir para o próximo registro(loop/select) ou para o próximo passo do laço (do, while).

No caso acima, a mensagem Será que o mundo vai acabar? seria impressa 10 vezes.

Porém, se você colocar um CHECK fora do laço de repetição, ele vai abortar o processamento do bloco onde o CHECK estiver, seja este bloco um FORM..ENDFORM, uma Função, um Método de uma Classe, ou até mesmo um Report.

Exemplo:

No caso acima, o programa não vai escrever nada na tela.

E é aí que mora o perigo… Se você estiver no meio de um programa gigantesco e que não esteja muito bem estruturado, colocar um CHECK e o CHECK retornar falso você pode abortar o programa INTEIRO. Portanto, muito cuidado crianças! 😀

Isso cobre os usos mais comuns do CHECK!

Abraços à todos que já destruiram uma execução do Standard colocando um CHECK no meio de uma include perdida dentro de uma EXIT. Vocês não estão sozinhos, acreditem! 😀 😀

Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePrint this page

Tags: ,


About the Author

é pasteleiro há alguns anos e criou o ABAPZombie junto com o Mauro em 2010. Gosta de filosofar sobre fundamentos básicos da programação e assuntos polêmicos. Músicas estranhas, artes marciais e games indies são legais. Zumbis não. Converse comigo no twitter e conheça o meu livro de ABAP!



3 Responses to ABAPZombie Guide to ABAP – Parte 27 – CHECK

  1. Marcelo says:

    Já cansei de ver casos dentro de EXIT's onde temos o nosso código e chega um espertinho e insere um CHECK no início da EXIT que só deveria ser válida para seu processamento, mas que acaba pulando todo o código posterior, no caso o meu que deveria ser processado! Putz!

    • Uma vez colocaram um check dentro de uma macro no inicia de uma exit maluca, e eu, junior como era na época, não entendia NEM A PAU porque o programa não passava na minha exit 🙁

      ahhaha

  2. RICARDO MELO DOS SANTOS says:

    Você pode me ajudar nesse exercício ?

    Por favor

    Faça a divisão de um valor sucessiva por 2 até chegar a 0,01. Coloque um parameter para inserção do
    valor na tela. Utilize o DO/ENDDO. O Valor deverá ter a precisão de 4 digitos e 2 casas decimais.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to Top ↑