
PROCESAMIENTO DE LOS DATOS.
ASIGNACION DE VALORES
- Asignación Simple: ej: v_cantidad2 = v_cantidad1.
- Sentencia MOVE: ej: MOVE v_cantidad1 TO v_cantidad2.
INICIALIZACION DE VARIABLES
- CLEAR: para la inicialización o borrado del contenido de las varables. Ej: CLEAR <variable>.
- IS INITIAL: se utiliza para saber si una variable es inicial es decir está vacia. Ej: IF v_campo IS INITIAL.
WRITE 'La variable esta vacia'.
ENDIF.
es muy útil cdo se trabaja con tablas internas.
OPERACIONES CON CARACTERES
- CONCATENATE: se utiliza para concatenar varios campos alfanuméricos en uno solo.
ej: CONCATENATE v_campo1 v_campo2 v_campo3 INTO v_campo SEPARATED BY '.'.
DATA: v_fecha_aux(10) type c,
v_fecha LIKE SY-DATUM.
START-OF-SELECTION.
v_fecha = SY-DATUM.
CLEAR v_fecha_aux.
CONCATENATE v_fecha+6(2) v_fecha+4(2) v_fecha+0(4)
INTO v_fecha_aux SEPARATED BY '/'.
Y la salida por pantalla será:
DD/MM/AAAA
La sentencia CONCATENATE es muy útil cdo se trabaja con fechas ya q las fechas en SAP son del formato AAAAMMDD y cdo se muestran en un listado se deben convertir a DD/MM/AAAA.
- TRANSLATE: se utiliza para convertir caracteres de mayúscula a minúscula o viceversa o para realizar sustituciones
de caracteres a través de ciertas reglas.
Ej: TRANSLATE v_texto TO UPPER CASE.
Convierte a mayúsculas el contenido de la variable V_TEXTO, siendo V_TEXTO de tipo caracter.
Ej: TRANSLATE v_texto TO LOWER CASE.
Aquí convertimos todas las letras mayúsculas existentes en c a minúsculas.
Veamos un ejemplo:
DATA: v_vocales(5) TYPE C.
MOVE 'aeiou' TO v_vocales.
TRANSLATE v_vocales TO UPPER CASE.
SALIDA: v_vocales contiene ahora 'AEIOU'.
- REPLACE: reemplaza cierta parte de una cadena de caracteres por otra cadena de caracteres o caracter.
Ej: REPLACE 'Hola' WITH 'Casa" INTO v_texto.
Esta sentencia es muy útil cdo se trabaja con importes.
Veamos un ejemplo de su utilización:
DATA: v_campo(10).
MOVE 'ABCB' TO v_campo.
REPLACE 'B' WITH 'string' INTO v_campo.
Nos devuelve:
v_campo = 'AstringCB', SY-SUBRC = 0
- SPLIT: divide a un campo alfanumérico en varios campos por un separador.
Ej: SPLIT v_texto_largo AT ',' INTO v_campo1 v_campo2 v_campo3 v_campo4.
La sentencia SPLIT es muy útil cdo se trabaja con textos largos y es necesario separarlos por algún
caracter especial.
- SHIFT: se utiliza para desplazar el contenido de un campo alfanumérico. Realiza el desplazamiento del contenido de
un campo hasta un string dado.
Ej: SHIFT v_alfabeto BY 5 places.
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 5 primeros.
Es muy útil cdo 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 utiliza para buscar una cadena de caracteres dentro de un campo alfanumérico.
Ej: SEARCH V_ALFABETO FOR 'ABC'.
Es muy útil cdo se trabaja con tablas internas y se busca la ocurrencia de una determinada cadena en
un campo de la tabla.
- CONDENSE: se utiliza para borrar espacios en blanco en campos alfanuméricos. Borra cualquier secuencia de
espacios en blanco, dejando solo uno que exista entre palabras existentes en el campo.
Los espacios en blanco por la izquierda también desaparecen.
Ej: CONDENSE wa_doctor.
Salida: 'Dr. Rafael Castro'.
Si agregamos la cláusula NO-GAPS al final de la sentencia, se eliminan todos los espacios en blanco.
Es muy útil en los reportes, cdo se quiere formatear la salida en pantalla de un campo determinado.
- Reporte estándar RSRSCAN1: para buscar una cadena de caracteres q puede estar compuestas por pal, sentencias, msg, etc, en uno o más programas ABAP.
Este reporte nos mostrara en pantalla la cantidad de ocurrencias de la palabra sentencia o msg.
OPERACIONES ARITMETICAS
En ABAP las 4 operaciones básicas (+,-,*,/) se pueden implementar de dos maneras obteniendo el mismo resultado.
Ej: v_campo1 = v_campo2 + v_campo3.
ó
COMPUTE v_campo1 = v_campo2 + v_campo3.
siendo el resultado el mismo en ambas formas.
También se utilizan:
ADD 1 TO v_numero.
SUBTRACT 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.