Segunda parte del curso de ABAP donde se verán las sentencias que se usan en el sistema SAP y las operaciones matemáticas mas usadas. Las típicas de suma, resta, división, multiplicación y algunas cosas mas.
Introducción
En esta sección, aprenderá a rellenar con datos los objetos de datos elementales y a realizar cálculos en ABAP. También verá una introducción a las construcciones que puede utilizar para controlar el flujo del programa dependiendo del contenido de los objetos de datos.
Al iniciar el programa, se carga el contexto del programa en una memoria del servidor de aplicación, y se pone la memoria a disposición de los objetos de datos definidos en el programa. Cada objeto de datos elemental se preasigna al valor inicial específico del tipo, excepto si se ha fijado un valor distinto mediante el suplemento VALUE.
Puede utilizar el suplemento MOVE para transferir el contenido de un objeto de datos a otro objeto de datos. Las dos variantes de sintaxis siguientes tienen el mismo efecto:
- MOVE gv_var1 TO gv_var2.
- gv_var2 = gv_var1.
Si ambos objetos de datos, gv_var1 y gv_var2, son de tipos distintos, existe un conflicto de tipo. En este caso, si existe una regla de conversión, se realiza automáticamente una conversión de tipo de datos. Para obtener información detallada acerca de las copias y las reglas de conversión, consulte la documentación de palabras clave de la sentencia MOVE.
La sentencia CLEAR reinicializa el contenido de un objeto de datos al valor inicial ligado al tipo. Para obtener información detallada acerca de los valores iniciales de un tipo en particular, consulte la documentación de palabras clave de la sentencia CLEAR.
Cálculos y expresiones aritméticas
Veamos el siguiente ejemplo:
La palabra clave COMPUTE es opcional. En ABAP, puede programar expresiones aritméticas hasta cualquier nivel de anidamiento.
Las operaciones válidas incluyen:
+ Suma
Para sumar en ABAP podemos utilizar el carácter + o la palabra clave ADD. Con las dos posibilidades se obtiene el mismo resultado de la operación. Podemos sumar variables de tipo numéricos enteros o con decimales.
- Suma un valor al contenido de un campo.
- ADD <valor> TO <campo>.
- También se puede utilizar el operador ‘+’.
- <campo> = <campo> + <valor>.
– Resta
Para restar en ABAP podemos utilizar el carácter – o la palabra clave SUBTRACT. Con las dos posibilidades se obtiene el mismo resultado de la operación. Podemos utilizar variables de tipo numéricos enteros o con decimales.
- Resta un valor al contenido de un campo:
- SUBTRACT <valor> FROM <campo>.
- También se puede utilizar el operador ‘-’:
- <campo> = <campo> – <valor>.
* Multiplicación
Para multiplicar en ABAP podemos utilizar el carácter * o la palabra clave MULTIPLY. Con las dos posibilidades se obtiene el mismo resultado de la operación. Podemos utilizar variables de tipo numéricos enteros o con decimales.
- Multiplica por un valor el contenido de un campo:
- MULTIPLY <campo> BY <valor>.
- También se puede utilizar el operador ‘*’:
- <campo> = <campo> * <valor>.
/ División
Para dividir en ABAP podemos utilizar el carácter / o la palabra clave
DIVIDE. Con las dos posibilidades se obtiene el mismo resultado de la operación. Podemos utilizar variables de tipo numéricos enteros o con decimales. La operación devuelve el cociente con decimales.
- Divide por un valor el contenido de un campo:
- DIVIDE <campo> BY <valor>.
- También se puede utilizar el operador ‘/’:
- <campo> = <valor1> / <valor2>.
DIV – División sin resto
La palabra clave DIV devuelve el cociente de una división entera.
- <campo> = <valor1> DIV <valor2>.
MOD – Resto de la división
La palabra clave MOD devuelve el resto de una división entera.
- <campo> = <valor1> MOD <valor2>.
** Exponenciación
El operador ** aplicado sobre una base y un exponente devuelve el resultado de exponenciación.
Ejemplos:
- El cuadrado: <campo> = <valor1> ** 2.
- El cubo: <campo> = <valor1> ** 3.
Sentencia SQRT
Devuelve la raíz cuadrada de un valor.
- <campo> = SQRT( <valor> ).
Los paréntesis y los operadores son palabras claves ABAP y, por este motivo, se deben separar de otras palabras por un espacio.