OPERADORES LÓGICOS E RELACIONAIS
UDERSON LUIS
Sumario:
Este artigo descreve a manipulação dos dados de operadores lógicos
relacionais, descrevendo a utilização destes operadores.
Sobre o Autor:
Uderson Luis Fermino, formado em Ciências da Computação pela
Faculdade de Pesquisa e Ensino IPEP, atua no mercado a 2 anos como
desenvolvedor Java nas plataformas: (J2SE, J2EE e J2ME), com participação
em grandes projetos envolvendo estas tecnologias. É consultor ABAP com
experiências
em
HIERARQUICK),
REPORT,
IDOC,
ALV
ALE,
(GRID,
ONLINE,
LIST,
BLOCK,
SAPSCRIPT,
OO,
TREE,
SMARTFORM,
NETWEAVER (JCO, BSP, WebDynpro).
Email:
[email protected]
“tudo posso naquele que me fortalece” (Filipenses 4:13).
Página 1
OPERADORES LÓGICOS E RELACIONAIS
UDERSON LUIS
Operadores Condicionais Lógicos e Relacionais
Operador condicional e relacional, como o próprio nome é indutivo,
servem para resolução de operações lógicas, está podem ser IF, IFELSE,
WHERE . Estes operadores servem para realizar verificações de expressões
regulares e lógicas. Será neste post será descritos os operadores condicionai
disponíveis no ABAP.
CA – Contains ANY – Contém Qualquer
Este operador condicional realiza verificações múltiplas em condições
lógicas, muitas das vezes é necessário verificar se uma condição contém
múltiplos valores, como por exemplo, verificar se a literal “ABAP NO ULTIMO”
contém literais Numéricos “0123456789”, este operador condicional não usa
expressão regular, pois ele procura as condições independente da ordem.
Exemplo 1
IF ‘ABAP NO ULTIMO’ CA “0123456789”.
WRITE ‘ESTA LITERAL CONTÉM LITERAIS NUMERICOS’.
ELSE.
WRITE ‘ESTA LITERAL NÃO CONTÉM LITERAIS NUMERICOS’.
ENDIF.
Neste exemplo é verificado se a literal ‘ABAP NO ULTIMO’
literais numéricos, veja a tabela de exemplo:
EXP<1>
‘ABAP NO ULTIMO’
‘ABAP NO ULT3IMO’
‘ABAP N8O ULTIMO’
CA
CA
CA
EXP<2>
RESULTADO
“0123456789”.
“0123456789”.
“0123456789”.
FALSE
TRUE
TRUE
contém
NA – Not Any - Não Contém
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 numérico especificado em
“EXP<2>” na “EXP<1>” o NA reprova pois é como se traduzisse para:
‘ABAP NO ULT3IMO’ não contém “0123456789” o retorno será false,
pois a literal contém literais numéricos.
“tudo posso naquele que me fortalece” (Filipenses 4:13).
Página 2
OPERADORES LÓGICOS 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’
N
A
N
A
N
A
‘ABAP NO ULT3IMO’
‘ABAP N8O ULTIMO’
EXP<1>
RESULTADO
“012345678
9”.
“012345678
9”.
“012345678
9”.
TRUE
FALSE
FALSE
CO – Contains Only – Contém Somente
Este operador Condicional realiza verificações de uma expressão,
verificando se a expressão contém apenas/somente a expressão verificada.
Como por exemplo, verificar se a expressão EXP<1> que contém a literal
“ABAP NO ULTIMO” contém a penas as literais “ABAP NO ULTIMO”
Exemplo 1
IF ‘ABAP NO ULTIMO’ CA ‘ABAP NO ULTIMO’ ’.
WRITE ‘ESTA LITERAL CONTÉM LITERAIS’.
ELSE.
WRITE ‘ESTA LITERAL NÃO CONTÉM LITERAIS’.
ENDIF.
Neste exemplo é verificado se a literal ‘ABAP NO ULTIMO’ contém
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>
RESULTADO
‘ABAP NO ULTIMO’
ABAP
ULTIMO
TRUE
FALSE
FALSE
“tudo posso naquele que me fortalece” (Filipenses 4:13).
Página 3
OPERADORES LÓGICOS E RELACIONAIS
UDERSON LUIS
CN – Contains Not - Não Contém
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’ não contém 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>
EXP<1>
RESULTADO
‘ABAP NO ULTIMO’
‘ABAP NO ULTIMO’
‘ABAP N8O ULTIMO’
“0123456789”.
“0123456789”.
“0123456789”.
TRUE
FALSE
FALSE
CN
CN
CS – Contains String – Contém String
Este operador como o próprio nome diz, serve para verificar se uma
expressão contém uma determinada string, lembrando que uma string pode ser
parte ou toda a literal verificada. Por exemplo a literal “ABAP NO ULTIMO”
contém a string “ABAP”, “NO”, “ULTIMO”, “U, “UL”, “TIM”, “TIMO”, porém não
contém está literais por exemplo: “ABAPE”, “NO A” “ULTEMO”.
Exemplo:
IF ‘ABAP NO ULTIMO’ CS ‘ABAP’.
WRITE ‘ESTA LITERAL CONTÉM ‘ABAP’’.
ELSE.
WRITE ‘ESTA LITERAL NÃO CONTÉM ABAP’.
ENDIF.
“tudo posso naquele que me fortalece” (Filipenses 4:13).
Página 4
OPERADORES LÓGICOS E RELACIONAIS
UDERSON LUIS
A ordem que a string está não importa, o importante é se existe ou não a
string na literal.
NS – Not String – Não contém 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 expressão regulares
para resolver as condições lógicas, é muito interessante, pois é possível
montar uma expressão lógica para resolver problemas complexos. Este
operador se entrada mais para construção de compiladores, analisadores
sintáticos e regulares.
Como funciona:
*
+
=
=
0 (zero) ou mais caractere
1 (um) ou mais caractere
Exemplo: listar um diretório e verificar se o arquivo termina com “txt”, para isso
basta usarmos a expressão regular “*.txt” significando que pode existir zero ou
mais caractere mais dever terminar com “.txt”, não 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 começa com “abap” e termina com “sap” usamos
a expressão regular
“abap*sap” o significado desta expressão 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).
Página 5
OPERADORES LÓGICOS E RELACIONAIS
UDERSON LUIS
DATA: VALOR TYPE C LENGTH 255 VALUE 'Programação abap Sap'.
IF VALOR CP 'abap*sap'.
WRITE: 'ESTE arquivo é valido'.
ENDIF.
Este operador é limitado ele não aceita todas as expressões regulares
que o abap aceita, mais da para realizar muitas condições complexas. Vejamos
outro exemplo
DATA: TEXTO TYPE STRING VALUE 'ABAP É UMA LINGUAGEM FACIL E
AINDA TEM EXPRESSÃO REGULAR DIFICIL'.
IF TEXTO CP 'ABAP*LINGUAGEM+*'.
WRITE: 'Este texto contém as palavras REGULAR'.
ENDIF.
IF TEXTO
CP
“ABAP*LINGUAGEM+*”
Aqui é feito a seguinte verificação:
Dentro da variável Texto que contém “ABAP É UMA LINGUAGEM
FACIL E AINDA TEM EXPRESSÃO REGULAR DIFICIL” se a variável inicial
com as literais seqüências “A”, “B”, “A”, “P” após estás seqüência pode ter ou
não (* zero ou mais) seqüências literais de qualquer coisa alfanumérico, e
deve-se sucedido das seqüências literais “L” “I” “N” “G” “U” “A” “G” E” “M” tendo
esta seqüência uma ou mais vezes podendo ter ou não seqüências literais
(alfanuméricos) após está seqüência.
Exemplos validos:
ABAPLINGUAGEM
ABAP DASDASDA LINGUAGEM
ABAP DASDASDA LINGUAGEM LINGUAGEM
ABAP DASDASDA LINGUAGEM LINGUAGEM TERTTSDFSDFS
Básicos
“tudo posso naquele que me fortalece” (Filipenses 4:13).
Página 6
OPERADORES LÓGICOS E RELACIONAIS
UDERSON LUIS
EQ - Equal
Como o próprio nome diz, serve para verificar se existe igualdade entre
a expressão, e é equivalente ao operador “=”.
Exemplo;
‘A’ EQ ‘B’ = false
‘A’ EQ ‘A’ = true
Este operador é idêntico 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 - Não é igual
Este operador com o próprio nome diz, serve para verificar se uma
sentença é 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).
Página 7
OPERADORES LÓGICOS E RELACIONAIS
UDERSON LUIS
Este operador serve para verificar se a expressão 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 expressão 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).
Página 8
OPERADORES LÓGICOS E RELACIONAIS
UDERSON LUIS
Este operador serve para verificar se a expressão 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 expressão 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).
Página 9
Download

OPERADORES LÓGICOS E RELACIONAIS UDERSON LUIS “tudo