
ASIGNACIÓN DE VALORES EN ABAP
Para asignar valores en ABAP existen dos posibilidades, usando la instrucción MOVE o el operador de asignación igual (=).
MOVE x TO y
y = x
En los dos casos el valor guardado en la variable x se copia en la variable y. Los contenidos de la variable x se copian byte a byte a la variable y. También se pueden asignar constantes o literales
MOVE 5 TO y
MOVE ‘hola’ TO y
El contenido de x y de y deben ser compatibles (tipo de variable, longitud del campo, número de decimales…). No es necesario que el tipo de las dos variables sea igual, también pueden ser convertibles, aunque la ejecución del programa va atardar más.
REGLAS DE CONVERSIÓN
Según el tipo de variable de destino se va a producir lo siguiente
Tipo c (character): Los caracteres se copian de izquierda aderecha. Cuando llegamos a final del campo se trunca. Los númerostambién se copian de izquierda a derecha y se truncan por la derechacuando se acaba el campo.
Tipo string: Se aplican las mismas reglas que para los de tipo c pero nunca se trunca el valor asignado.
Tipo n (numeric): Pese a su nombre es un campo de tipo carácterque sólo puede guardar dígitos. No se pueden copiar letras en estetipo de variables. Los dígitos se copian de derecha a izquierda hastael final del campo. Si no hay suficiente espacio se trunca por laizquierda.
Tipo d (dates): Si se asigna una cadena de caracteres debemos asegurarnos que es compatible con el formato de este tipo devariables, es decir año (4 caracteres) /mes (2 caracteres) /día (2caracteres). En caso contrario dará un error de compilación. Si se asigna un número, éste se interpreta como el número de días desde el 01/01/0001 y se pasa a formato fecha AAAA/MM/DD.
Tipo t (time): Si se asigna una cadena de caracteres debemos asegurarnos que es compatible con el formato de este tipo de variables, es decir horas (2 caracteres) :minutos (2caracteres) :segundos (2 caracteres). En caso contrario dará un error de compilación. Si se asigna un número, éste se interpreta como el número de segundos desde las 00:00:00 y se pasa a formato hora HH:MM:SS.
Tipos i (integer), p (packed), o f (float): Al ser todas estas variables numéricas sólo pueden almacenar números. Si se asigna una cadena de caracteres estos deben ser dígitos (12345…). En el caso en el que incluya decimales, el tipo i lo redondeará al enteromás próximo, y el tipo p al último decimal. En el caso de que la variable de destino sea de tipo f no se producirá redondeo.
Tipo x (hexadecimal): Los caracteres se interpretan como números hexadecimales (del 0 al F). Si la cadena de caracteres incluye otro carácter que no sea un dígito hexadecimal se trunca en ese punto. Los números reales se pasan a enteros y después se pasan a hexadecimal.
RESETEANDO EL VALOR DE UNA VARIABLE
Se entiende por resetear una variable a sustituir el valor que tiene asignado hasta ese momento por el valor que el sistema le asigna por defecto. En SAP el valor inicial de cualquier variable es cero excepto en el caso de las variables de tipo carácter que es un espacio en blanco. Las estructuras se descomponen en sus componentes individuales y estos se inicializan según el tipo de variable a que correspondan. Las referencias o punteros se inicializan a nulo, es decir que no apuntan a ningún sitio. Las tablas internas se resetean borrando todas sus líneas. Para resetear una variable, una estructura, un puntero o una tabla interna usamos la instrucción CLEAR.
ASIGNANDO ESTRUCTURAS EN ABAP
Una estructura puede asignarse a otra estructura siempre que sea compatible. Para ello se puede usar el operador de asignación.
estructura2 = estructura1
Según esta instrucción el contenido de la estructura1 se asigna a la estructura2. Para asignar un componente de una estructura a otra estructura se puede usar la instrucción MOVE.
MOVE estructura1-componente1 TO estructura2-componente2
También se pueden asignar componentes con el mismo nombre de una estructura a otra. Por supuesto no sólo deben tener el mismo nombre, sino que también deben de ser compatibles.
MOVE-CORRESPONDING estructura1 TO estructura2
Sin embargo se debe distinguir la asignación entre estructuras planas (flat) y estructuras profundas (deep). No olvidemos que estas últimas son las que incluyen otras estructuras (o incluso tablas) entre sus campos.
Calculos en ABAP.Operator.
La sentencia para realizar operaciones en ABAP, es la sentencia operator.
Calculos en ABAP.add, substract,multiply,divide.
Son calculos simples directos.
add v1 to v2
substract v1 to v2
multiply v1 to v2
divide v1 to v2