✒️ABAP El procesamiento de los datos
ABAP El procesamiento de los datos
Asignacion de valores
Hay dos formas básicas para asignar un valor a una variable:
-Asignación simple:
v_cantidad2 = v_cantidad1. "Asigno v_cantidad1 a v_cantidad2"
-Asignación mediante la sentencia MOVE.
MOVE v_cantidad1 TO v_cantidad2. "Asigno v_cantidad1 a v_cantidad2"
Inicializacion de variables
Para la inicializacion o borrado del contenido de las variables usamos la sentencia CLEAR.
CLEAR <variable>.
Si inicializamos las variables que declaramos a continuación:
*Declaracion de variables
DATA: v_texto(4) TYPE c VALUE 'Hola',
v_numero TYPE i VALUE 12345,
v_texto_largo (30) TYPE c VALUE 'John, Paul, Ringo, George',
v_alfabeto (10) TYPE c VALUE 'ABCDEFGHIJ',
Estructura para usuarios
BEGIN OF wa_usuario,
nombre (15) TYPE c VALUE 'Ricardo',
tel (8) TYPE n VALUE '49818567',
cod_postal TYPE p VALUE 1405,
END OF wa_usuario,
Estructura para doctores
BEGIN OF wa_doctor,
titulo (10) TYPE c VALUE 'Dr.',
nombre (10) TYPE c VALUE 'Rafael',
apellido (10) TYPE c VALUE 'Castro',
END OF wa_doctor.
El contenido de los campos sería el siguiente:
v_texto = ' '.
v_numero = 0.
v_texto = ' '.
v_texto_largo = ' '.
wa_usuario-nombre = ' '.
wa_usuario-cod_postal = 0.
wa_doctor-titulo = ' '.
wa_doctor-nombre = ' '.
wa_doctor-apellido =' '.
Sentencia IS INITIAL.
Es una sentencia muy importante a la hora de consultar el contenido de las variables que declaramos en nuestros programas.
Ejemplo:
IF v_campo IS INITIAL.
WRITE 'La variable esta vacia'.
ENDIF.
Esta sentencia es muy util cuando se trabaja con tablas internas.
Operaciones con caracteres
Las funciones mas utiles para tratar con caracteres son:
-CONCATENATE: se usa para concatenar varios campos alfanuméricos en uno solo. Ejemplo:
CONCATENATE v_campo1 v_campo2 v_campo3 INTO v_campo SEPARATED BY '.'.
En este ejemplo esta sentencia concatenalos campos V_CAMPO1, V_CAMPO2 Y V_CAMPO3 en la variable V_CAMPO. Todos estos campos son de tipo caracter. Con la cláusula SEPARATED BY se puede especificar un campo alfanumerico que se usará como separador entre los campos V_CAMPO1, V_CAMPO2 Y V_CAMPO3.
La sentencia CONCATENATE es muy util cuando se trabaja con fechas ya que las fechas en SAP son del formato AAAAMMDD y cuando se muestran en un listado se deben convertir en DD.MM.AAAA.
-TRANSLATE: se usa para convertir caracteres de mayuscula a minuscula o viceversa, o para hacer sustituciones de caracteres a través de ciertas reglas. Ejemplo:
TRANSLATE v_texto TO UPPER CASE
Esta sentencia convierte a mayúsculas el contenido de la variable V_TEXTO, siendo V_TEXTO de tipo caracter
-REPLACE: reemplaza cierta parte de una cadena de caracteres por otra cadena de caracteres o caracter, es muy util cuando se trabaja con importes.
REPLACE 'Hola' WITH 'Casa' INTO v_texto.
Esta sentencia reemplaza el contenido de la variable V_TEXTO que es ´Hola' por el texto 'Casa'.
-SPLIT: divide a un campo alfanumerico en varios campos por un separador.
SPLIT v_texto_largo AT ' , ' INTO v_campo1 v_campo2 v_campo3 v_campo4.
Esta sentencia usa el separador ' , ' para dividir el contenido del campo V_TEXTO_LARGO en las variables V_CAMPO1, V_CAMPO2, V_CAMPO3 y V_CAMPO4 que son de tipo caracter (TYPE c).
Si todos los campos destino son lo suficientemente grandes para almacenar las partes del campo V_TEXTO_LARGO, SY-SUBRC valdr{a 0, caso contrario valdrá 4.
La sentencia SPLIT es muy util cuando se trabaja con textos largos y es necesario separarlos por algun caracter especial.
-SHIFT: se usa para desplazar el contenido de un campo alfanumerico. Realiza el desplazamiento del contenido de un campo hasta un string dado.
SHIFT v_alfabeto BY 5 places.
Esta sentencia realiza el desplazamiento del campo V_ALFABETO hasta la quinta posición, quedando el resto de los caracteres que componen a V_ALFABETO en la variable y eliminando los cinco primeros.
Esta sentencia es muy util cuando se trabaja con números de documentos o cualquier otro número que haya sido grabado en tablas SAP con ceros a la izquierda.
-SEARCH: se usa para buscar una cadena de caracteres dentro de un campo alfanumérico. Ejemplo:
SEARCH V_ALFABETO FOR 'ABC'.
Esta sentencia busca en el campo V_ALFABETO la secuencia de caracteres 'ABC'. Como la secuencia existe, devolverá SY-SUBRC igual a 0. Caso contrario, si no existiera, sería distinto igual a 4.
La sentencia SEARCH es muy útil cuando se trabaja con tablas internas y se busca la ocurrencia de una determinada cadena en un campo de la tabla.
-CONDENSE: se usa para borrar espacios en blanco en campos alfanuméricos. Borra cualquier secuencia de espacios en blanco dejando solo uno que exista ente palabras existentes en el campo. Los espacios en blanco por la izquierda también desaparecen. Ejemplo:
CONDENSE wa_doctor.
En este ejemplo la salida en pantalla sería 'Dr.Rafael Cstro'. Con el agregado de la cláusula NO-GAPS al final de la sentencia se eliminarán todos los espacios en blanco, es decir que tambien se eliminan los espacios existentes entre las palabras.
Esta sentencia es muy util en los reportes cuando se quiere formatear la salida en pantalla de un campo determinado.
Si deseamos buscar un string (una cadena de caracteres que pueden estar compuestas por palabras, sentencias, mensajes, etc) en uno o mas programas ABAP podemos utilizar el reporte estándar RSR SCAN1. Este reporte nos mostrará en pantalla la cantidad de ocurrencias de la palabra, sentencia o mensaje.
Operaciones Aritméticas
En ABAP las cuatro operaciones básicas ( suma, resta, multiplicación y división) se pueden implementar de dos maneras obteniendo el mismo resultado. Ejemplo:
v_campo1 = v_campo2 v_campo3.
COMPUTE v_campo1 = v_campo2 v_campo3.
El resultado es el mismo de ambas formas.
También se usan las siguientes sentencias para operar aritmeticamente con datos:
ADD 1 TO v_numero. "Suma 1 a la variable V_NUMERO
SUBSTRACT 1 FROM v_numero. "Resta 1 a la variable V_NUMERO
MULTIPLY v_numero BY 2. "Multiplica por 2 a la variable V_NUMERO
DIVIDE v_numero BY 2. "Divide por 2 a la variable V_NUMERO
 
 
 
Sobre el autor
Publicación académica de Diamela Serignese, en su ámbito de estudios para la Carrera Consultor ABAP.
Diamela Serignese
Profesión: Consultor Sap Crm / Solman - Argentina - Legajo: AA51D
✒️Autor de: 38 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Diamela Serignese