You are on page 1of 9

OPERADORES LGICOS E RELACIONAIS UDERSON LUIS

Sumario:

Este artigo descreve a manipulao dos dados de operadores lgicos relacionais, descrevendo a utilizao destes operadores.

Sobre o Autor: Uderson Luis Fermino, formado em Cincias da Computao pela Faculdade de Pesquisa e Ensino IPEP, atua no mercado a 2 anos como desenvolvedor Java nas plataformas: (J2SE, J2EE e J2ME), com participao em grandes projetos envolvendo estas tecnologias. consultor ABAP com experincias em REPORT, IDOC, ALV (GRID, LIST, BLOCK, OO, TREE,

HIERARQUICK),

ALE,

ONLINE,

SAPSCRIPT,

SMARTFORM,

NETWEAVER (JCO, BSP, WebDynpro). Email: Uderson@gmail.com

tudo posso naquele que me fortalece (Filipenses 4:13).

Pgina 1

OPERADORES LGICOS E RELACIONAIS UDERSON LUIS

Operadores Condicionais Lgicos e Relacionais Operador condicional e relacional, como o prprio nome indutivo, servem para resoluo de operaes lgicas, est podem ser IF, IFELSE, WHERE . Estes operadores servem para realizar verificaes de expresses regulares e lgicas. Ser neste post ser descritos os operadores condicionai disponveis no ABAP.

CA Contains ANY Contm Qualquer Este operador condicional realiza verificaes mltiplas em condies lgicas, muitas das vezes necessrio verificar se uma condio contm mltiplos valores, como por exemplo, verificar se a literal ABAP NO ULTIMO contm literais Numricos 0123456789, este operador condicional no usa expresso regular, pois ele procura as condies independente da ordem. Exemplo 1 IF ABAP NO ULTIMO CA 0123456789. WRITE ESTA LITERAL CONTM LITERAIS NUMERICOS. ELSE. WRITE ESTA LITERAL NO CONTM LITERAIS NUMERICOS. ENDIF. Neste exemplo verificado se a literal ABAP NO ULTIMO literais numricos, veja a tabela de exemplo: EXP<1> ABAP NO ULTIMO ABAP NO ULT3IMO ABAP N8O ULTIMO CA CA CA EXP<2> 0123456789. 0123456789. 0123456789. RESULTADO FALSE TRUE TRUE contm

NA Not Any - No Contm Este operador condicional o inverso do operador CA, pois ele nega tudo o que o CA aprova, por exemplo, enquanto o CA aprova que ABAP NO ULT3IMO CA 0123456789, onde existe um literal numrico especificado em EXP<2> na EXP<1> o NA reprova pois como se traduzisse para: ABAP NO ULT3IMO no contm 0123456789 o retorno ser false, pois a literal contm literais numricos. tudo posso naquele que me fortalece (Filipenses 4:13). Pgina 2

OPERADORES LGICOS E RELACIONAIS UDERSON LUIS

Uma alternativa utilizar o CA com o comando NOT. IF NOT exp<1> CA exp<2>, aqui negamos tudo que o operador CA faz, negado ficando: FALSE = TRUE TRUE = FALSE EXP<1> ABAP NO ULTIMO ABAP NO ULT3IMO ABAP N8O ULTIMO N A N A N A EXP<1> 012345678 9. 012345678 9. 012345678 9. RESULTADO TRUE FALSE FALSE

CO Contains Only Contm Somente Este operador Condicional realiza verificaes de uma expresso, verificando se a expresso contm apenas/somente a expresso verificada. Como por exemplo, verificar se a expresso EXP<1> que contm a literal ABAP NO ULTIMO contm a penas as literais ABAP NO ULTIMO Exemplo 1 IF ABAP NO ULTIMO CA ABAP NO ULTIMO . WRITE ESTA LITERAL CONTM LITERAIS. ELSE. WRITE ESTA LITERAL NO CONTM LITERAIS. ENDIF. Neste exemplo verificado se a literal ABAP NO ULTIMO contm somente os literais ABAP NO ULTIMO, veja a tabela de exemplo: EXP<1> ABAP NO ULTIMO ABAP NO ULTIMO ABAP NO ULTIMO CA CA CA EXP<2> ABAP NO ULTIMO ABAP ULTIMO RESULTADO TRUE FALSE FALSE

tudo posso naquele que me fortalece (Filipenses 4:13).

Pgina 3

OPERADORES LGICOS E RELACIONAIS UDERSON LUIS

CN Contains Not - No Contm Este operador condicional o inverso do operador CO, pois ele nega tudo o que o CA aprova, por exemplo, enquanto o CO aprova que ABAP NO ULTIMO CO ABAP NO ULTIMO, onde existe somente o literal especificado em EXP<2> na EXP<1> o CN: ABAP NO ULTIMO no contm somente ABAP NO ULTIMO , o retorno ser true. Uma alternativa utilizar o CO com o comando NOT. IF NOT exp<1> CO exp<2>, aqui negamos tudo que o operador CO aprova, negado ficando: FALSE = TRUE TRUE = FALSE EXP<1> ABAP NO ULTIMO ABAP NO ULTIMO ABAP N8O ULTIMO EXP<1> 0123456789. 0123456789. 0123456789. RESULTADO TRUE FALSE FALSE

CN CN

CS Contains String Contm String Este operador como o prprio nome diz, serve para verificar se uma expresso contm uma determinada string, lembrando que uma string pode ser parte ou toda a literal verificada. Por exemplo a literal ABAP NO ULTIMO contm a string ABAP, NO, ULTIMO, U, UL, TIM, TIMO, porm no contm est literais por exemplo: ABAPE, NO A ULTEMO.

Exemplo: IF ABAP NO ULTIMO CS ABAP. WRITE ESTA LITERAL CONTM ABAP. ELSE. WRITE ESTA LITERAL NO CONTM ABAP. ENDIF.

tudo posso naquele que me fortalece (Filipenses 4:13).

Pgina 4

OPERADORES LGICOS E RELACIONAIS UDERSON LUIS

A ordem que a string est no importa, o importante se existe ou no a string na literal.

NS Not String No contm String Conforme o operador condicional NA, o operador NS, onde negado tudo que for verdadeiro em CS e aprovado tudo que for negado em CS. CP Contains No Pattner Este operador condicional um operador que usa expresso regulares para resolver as condies lgicas, muito interessante, pois possvel montar uma expresso lgica para resolver problemas complexos. Este operador se entrada mais para construo de compiladores, analisadores sintticos e regulares. Como funciona: * + = = 0 (zero) ou mais caractere 1 (um) ou mais caractere

Exemplo: listar um diretrio e verificar se o arquivo termina com txt, para isso basta usarmos a expresso regular *.txt significando que pode existir zero ou mais caractere mais dever terminar com .txt, no importando o que esta antes. Exemplo: DATA: VALOR TYPE C LENGTH 255 VALUE 'caracter.txt'. IF VALOR CP '*.txt'. WRITE: 'ESTE arquivo valido'. ENDIF.

Verificar se uma literal comea com abap e termina com sap usamos a expresso regular abap*sap o significado desta expresso regular : Deve iniciar com a, que ser procedido por b, que ser procedido por a, que ser procedido por p, que ser procedido de qualquer coisa, que ser procedido por s, que ser procedido por a, que ser procedido por p. Exemplo: tudo posso naquele que me fortalece (Filipenses 4:13). Pgina 5

OPERADORES LGICOS E RELACIONAIS UDERSON LUIS

DATA: VALOR TYPE C LENGTH 255 VALUE 'Programao abap Sap'. IF VALOR CP 'abap*sap'. WRITE: 'ESTE arquivo valido'. ENDIF. Este operador limitado ele no aceita todas as expresses regulares que o abap aceita, mais da para realizar muitas condies complexas. Vejamos outro exemplo DATA: TEXTO TYPE STRING VALUE 'ABAP UMA LINGUAGEM FACIL E AINDA TEM EXPRESSO REGULAR DIFICIL'. IF TEXTO CP 'ABAP*LINGUAGEM+*'. WRITE: 'Este texto contm as palavras REGULAR'. ENDIF.

IF TEXTO

CP

ABAP*LINGUAGEM+*

Aqui feito a seguinte verificao: Dentro da varivel Texto que contm ABAP UMA LINGUAGEM FACIL E AINDA TEM EXPRESSO REGULAR DIFICIL se a varivel inicial com as literais seqncias A, B, A, P aps ests seqncia pode ter ou no (* zero ou mais) seqncias literais de qualquer coisa alfanumrico, e deve-se sucedido das seqncias literais L I N G U A G E M tendo esta seqncia uma ou mais vezes podendo ter ou no seqncias literais (alfanumricos) aps est seqncia. Exemplos validos: ABAPLINGUAGEM ABAP DASDASDA LINGUAGEM ABAP DASDASDA LINGUAGEM LINGUAGEM ABAP DASDASDA LINGUAGEM LINGUAGEM TERTTSDFSDFS

Bsicos tudo posso naquele que me fortalece (Filipenses 4:13). Pgina 6

OPERADORES LGICOS E RELACIONAIS UDERSON LUIS

EQ - Equal Como o prprio nome diz, serve para verificar se existe igualdade entre a expresso, e equivalente ao operador =. Exemplo;

A EQ B = false A EQ A = true Este operador idntico com o operador = Exemplo Abap: DATA: VALOR TYPE C LENGTH 255 VALUE '10/12/2000'. IF VALOR EQ '10/12/2000'. WRITE: 'Data valida'. ENDIF. NE Not Equals - No igual Este operador com o prprio nome diz, serve para verificar se uma sentena diferente, ao contrario de EQ que verifica se igual, e equivalente ao operador <>. Exemplo: A NE B A NE A = = True False

Exemplo ABAP. DATA: VALOR TYPE I VALUE '10'. IF VALOR NE 11. WRITE: 'Valor diferente'. ENDIF.

LT Lower Than - Menor tudo posso naquele que me fortalece (Filipenses 4:13). Pgina 7

OPERADORES LGICOS E RELACIONAIS UDERSON LUIS

Este operador serve para verificar se a expresso EXP<1> menor do que a EXP<2>, e equivalente ao operador <

Exemplo: 10 11 LT LT 11 = True 10 = False

Exemplo ABAP DATA: VALOR TYPE I VALUE '10'. IF VALOR LT 11. WRITE: 'Valor menor'. ENDIF.

GT Greater Than Maior Este operador serve para verificar se a expresso EXP<1> maior do que a EXP<2>, e equivalente ao operador >

Exemplo: 11 10 GT GT 10 = True 11 = False

Exemplo ABAP DATA: VALOR TYPE I VALUE '11'. IF VALOR GT 10. WRITE: 'Valor maior'. ENDIF.

LE Lower Equal Menor igual tudo posso naquele que me fortalece (Filipenses 4:13). Pgina 8

OPERADORES LGICOS E RELACIONAIS UDERSON LUIS

Este operador serve para verificar se a expresso EXP<1> menor ou igual ae a EXP<2>, e equivalente ao operador <=

Exemplo: 11 10 GT GT 10 = True 11 = False

Exemplo ABAP DATA: VALOR TYPE I VALUE '11'. IF VALOR GT 10. WRITE: 'Valor maior'. ENDIF. GE Greater Equal Maior igual Este operador serve para verificar se a expresso EXP<1> maior ou igual a EXP<2>, e equivalente ao operador >=

Exemplo: 11 10 GT GT 10 = True 11 = False

Exemplo ABAP DATA: VALOR TYPE I VALUE '11'. IF VALOR GT 10.

tudo posso naquele que me fortalece (Filipenses 4:13).

Pgina 9

You might also like