SAP: Expresiones Logicas en ABAP

5
EXPRESIONES LÓGICAS Las expresiones lógicas devuelven como resultado 'verdadero' of 'falso'. En una expresión lógica se comparan dos objetos mediante uno de los siguientes operadores: = o EQ igual que <> o NE distinto a < o LT menor que <= o LT menor o igual que > o GT mayor que >= o GE mayor o igual que Al no haber una variable de tipo booleano no podemos usar este tipo de operadores en instrucciones de asignación. Así lo siguiente NO sería correcto x = 2 NE 2. El uso de expresiones lógicas en ABAP es sobre todo para instrucciones de control del tipo IF a EQ b, .... ENDIF. Para encadenar varias expresiones lógicas usamos los operadores AND y OR. Recordemos que verdadero AND verdadero es igual a verdadero verdadero AND falso es igual a falso 1

description

Tutorial sobre el uso de las expresiones lógicas en ABAP

Transcript of SAP: Expresiones Logicas en ABAP

Page 1: SAP: Expresiones Logicas en ABAP

EXPRESIONES LÓGICAS

• Las expresiones lógicas devuelven como resultado 'verdadero' of'falso'.

• En una expresión lógica se comparan dos objetos mediante uno delos siguientes operadores:

= o EQ igual que<> o NE distinto a< o LT menor que<= o LT menor o igual que> o GT mayor que>= o GE mayor o igual que

• Al no haber una variable de tipo booleano no podemos usar estetipo de operadores en instrucciones de asignación. Así lo siguienteNO sería correcto

x = 2 NE 2.

• El uso de expresiones lógicas en ABAP es sobre todo parainstrucciones de control del tipo

IF a EQ b,....

ENDIF.

• Para encadenar varias expresiones lógicas usamos los operadoresAND y OR. Recordemos que

verdadero AND verdadero es igual a verdaderoverdadero AND falso es igual a falso

1

Page 2: SAP: Expresiones Logicas en ABAP

falso AND verdadero es igual a falsofalso AND falso es igual a falso

verdadero OR verdadero es igual a verdaderoverdadero OR falso es igual a verdaderofalso OR verdadero es igual a verdaderofalso OR falso es igual a falso

• Asi 2 = 2 OR 3 = 2 es verdadero y 2 = 2 AND 2 = 3 es falso.

• El operador NOT es el operador de negación y tiene precedenciasobre los demás. Por ejemplo, lo siguiente es falso

2 = 2 AND NOT 2 = 2

• AND tiene precedencia sobre OR.

• ABAP procesa las expresiones lógicas de izquierda a derecha.

• Si detecta que una expresión es falsa (o verdadera) ya no sigueevaluando más. Así en las siguientes expresiónes sólo evalúa laprimera ya que siendo la primera expresión falsa es imposible queel conjunto sea verdadero (y al contrario).

2 EQ 3 AND 2 EQ 22 < 3 OR 2 = 3

COMPARANDO CARACTERES:

• Los caracteres se comparan según su precedencia alfabética, así 'a'< 'b' es cierto.

2

Page 3: SAP: Expresiones Logicas en ABAP

• El primer carácter que sea distinto en dos cadenas determina cuáles mayor, así lo siguiente es cierto: 'abc' < 'abd'.

• Si comparamos fechas la fecha posterior es mayor, así lo siguientees cierto

'20100101' > '20090101'

• Si comparamos horas la hora posterior es la mayor, así lo siguientees cierto

'200000' > '190000'

• Si comparamos variables con distinta longitud la longitud delmenor se iguala a la del mayor, así lo siguiente es cierto

'abc ' = 'abc'

• Si comparamos una variable de tipo carácter con una variablenumérica, la primera se convierte en la segunda. Así lo siguiente escierto

'123' = 123.

• Dos punteros son iguales si apuntan al mismo objeto. Si apuntan ados objetos distintos NO son iguales, aunque el contenido de losobjetos sí sea igual.

• Dos estructuras son iguales si todos sun componentes son iguales.Si no son iguales, el primer componente que difiera determina quéestructura es la mayor de las dos.

• Al comparar tablas internas el primer criterio es el número delíneas. La tabla con mayor número de líneas es la mayor de lasdos.

3

Page 4: SAP: Expresiones Logicas en ABAP

• Si dos tablas tienen el mismo número de líneas se comparan loscomponentes.

• Si hay tablas anidadas se comparan los componentes de formarecursiva. La comparación termina en el momento que que doscomponentes difieren. Ese componente es el que determina quétabla es la mayor de las dos.

• La instrucción IS sirve para comprobar si algo es cierto o no, porejemplo

IF <f> IS ASSIGNED,WRITE 'El field symbol ha sido asignado',ENDIF.

• La instrucción BETWEEN sirve para comparar si un valor está entreun rango, por ejemplo

DATA x TYPE i VALUE 2.IF x BETWEEN 0 AND 3,WRITE 'x vale entre 0 y 5',ENDIF.

TABLAS DE SELECCIÓN (Selection tables):

• Una selection table es una tabla interna que contiene en cada líneauna expresión lógica individual.

• Para crear una selection table llamada s para el campo f usamos lasiguiente expresión

SELECT-OPTIONS s FOR f.

• o bien usando la instucción RANGE OF, por ejemplo

DATA s LIKE RANGE OF f.

4

Page 5: SAP: Expresiones Logicas en ABAP

• Para comprobar si un valor está dentro de una tabla de selección(selection table) usamos la instrucción IN. Por ejemplo,

IF f IN s ....

5