SAP ABAP - Operadores

ABAP fornece um rico conjunto de operadores para manipular variáveis. Todos os operadores ABAP são classificados em quatro categorias -

  • Operadores aritméticos
  • Operadores de comparação
  • Operadores bit a bit
  • Operadores de string de caracteres

Operadores aritméticos

Operadores aritméticos são usados ​​em expressões matemáticas da mesma forma que são usados ​​em álgebra. A lista a seguir descreve os operadores aritméticos. Suponha que a variável inteira A tenha 20 e a variável B tenha 40.

S.No. Operador aritmético e descrição
1

+ (Addition)

Adiciona valores em qualquer lado do operador. Exemplo: A + B resultará em 60.

2

− (Subtraction)

Subtrai o operando direito do operando esquerdo. Exemplo: A - B dará -20.

3

* (Multiplication)

Multiplica os valores em ambos os lados do operador. Exemplo: A * B dará 800.

4

/ (Division)

Divide operando esquerdo pelo operando direito. Exemplo: B / A dará 2.

5

MOD (Modulus)

Divide o operando à esquerda pelo operando à direita e retorna o restante. Exemplo: B MOD A dará 0.

Exemplo

REPORT YS_SEP_08. 
DATA: A TYPE I VALUE 150, 
B TYPE I VALUE 50, 
Result TYPE I. 
Result =  A / B. 
WRITE / Result.

O código acima produz a seguinte saída -

3

Operadores de comparação

Vamos discutir os vários tipos de operadores de comparação para diferentes operandos.

S.No. Operador de comparação e descrição
1

= (equality test). Alternate form is EQ.

Verifica se os valores dos dois operandos são iguais ou não, se sim a condição torna-se verdadeira. O exemplo (A = B) não é verdadeiro.

2

<> (Inequality test). Alternate form is NE.

Verifica se os valores de dois operandos são iguais ou não. Se os valores não forem iguais, a condição se torna verdadeira. O exemplo (A <> B) é verdadeiro.

3

> (Greater than test). Alternate form is GT.

Verifica se o valor do operando esquerdo é maior que o valor do operando direito. Se sim, a condição se torna verdadeira. O exemplo (A> B) não é verdadeiro.

4

< (Less than test). Alternate form is LT.

Verifica se o valor do operando esquerdo é menor que o valor do operando direito. Se sim, a condição se torna verdadeira. Exemplo (A <B) é verdadeiro.

5

>= (Greater than or equals) Alternate form is GE.

Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito. Se sim, a condição se torna verdadeira. O exemplo (A> = B) não é verdadeiro.

6

<= (Less than or equals test). Alternate form is LE.

Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito. Se sim, a condição se torna verdadeira. Exemplo (A <= B) é verdadeiro.

7

a1 BETWEEN a2 AND a3 (Interval test)

Verifica se a1 está entre a2 e a3 (inclusive). Se sim, então a condição se torna verdadeira. O exemplo (A BETWEEN B AND C) é verdadeiro.

8

IS INITIAL

A condição torna-se verdadeira se o conteúdo da variável não tiver mudado e seu valor inicial tiver sido atribuído automaticamente. Exemplo (A IS INITIAL) não é verdadeiro

9

IS NOT INITIAL

A condição se torna verdadeira se o conteúdo da variável mudou. Exemplo (A NÃO É INICIAL) é verdadeiro.

Note- Se o tipo de dados ou comprimento das variáveis ​​não corresponderem, a conversão automática será realizada. O ajuste automático de tipo é executado para um ou ambos os valores ao comparar dois valores de diferentes tipos de dados. O tipo de conversão é decidido pelo tipo de dados e a ordem de preferência do tipo de dados.

A seguir está a ordem de preferência -

  • Se um campo for do tipo I, o outro será convertido para o tipo I.

  • Se um campo for do tipo P, o outro será convertido para o tipo P.

  • Se um campo for do tipo D, o outro será convertido para o tipo D. Mas os tipos C e N não são convertidos e são comparados diretamente. Semelhante é o caso do tipo T.

  • Se um campo for do tipo N e o outro for do tipo C ou X, ambos os campos serão convertidos para o tipo P.

  • Se um campo for do tipo C e o outro for do tipo X, o tipo X será convertido para o tipo C.

Exemplo 1

REPORT YS_SEP_08. 

DATA: A TYPE I VALUE 115,
      B TYPE I VALUE 119.
      IF A LT B.
      WRITE: / 'A is less than B'.
      ENDIF

O código acima produz a seguinte saída -

A is less than B

Exemplo 2

REPORT YS_SEP_08. 

DATA: A TYPE I.
      IF A IS INITIAL.
      WRITE: / 'A is assigned'.
      ENDIF.

O código acima produz a seguinte saída -

A is assigned.

Operadores bit a bit

ABAP também fornece uma série de operadores lógicos bit a bit que podem ser usados ​​para construir expressões algébricas booleanas. Os operadores bit a bit podem ser combinados em expressões complexas usando parênteses e assim por diante.

S.No. Operador bit a bit e descrição
1

BIT-NOT

Operador unário que inverte todos os bits em um número hexadecimal para o valor oposto. Por exemplo, aplicar este operador a um número hexadecimal com o valor de nível de bit 10101010 (por exemplo, 'AA') resultaria em 01010101.

2

BIT-AND

Este operador binário compara cada campo bit a bit usando o operador booleano AND.

3

BIT-XOR

Operador binário que compara cada campo bit a bit usando o operador Boolean XOR (OR exclusivo).

4

BIT-OR

Operador binário que compara cada campo bit a bit usando o operador booleano OR.

Por exemplo, a seguir está a tabela verdade que mostra os valores gerados ao aplicar os operadores booleanos AND, OR ou XOR aos dois valores de bits contidos no campo A e no campo B.

Campo A Campo B E OU XOR
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

Operadores de string de caracteres

A seguir está uma lista de operadores de string de caracteres -

S.No. Operador de string de caracteres e descrição
1

CO (Contains Only)

Verifica se A é composto exclusivamente pelos caracteres de B.

2

CN (Not Contains ONLY)

Verifica se A contém caracteres que não estão em B.

3

CA (Contains ANY)

Verifica se A contém pelo menos um caractere de B.

4

NA (NOT Contains Any)

Verifica se A não contém nenhum caractere de B.

5

CS (Contains a String)

Verifica se A contém a cadeia de caracteres B.

6

NS (NOT Contains a String)

Verifica se A não contém a cadeia de caracteres B.

7

CP (Contains a Pattern)

Ele verifica se A contém o padrão em B.

8

NP (NOT Contains a Pattern)

Ele verifica se A não contém o padrão em B.

Exemplo

REPORT YS_SEP_08. 
DATA: P(10) TYPE C VALUE 'APPLE',
      Q(10) TYPE C VALUE 'CHAIR'.
      IF P CA Q.
	
      WRITE: / 'P contains at least one character of Q'.
      ENDIF.

O código acima produz a seguinte saída -

P contains at least one character of Q.