✒️ABAP El procesamiento de los datos
ABAP El procesamiento de los datos
Procesamiento de los Datos
1-Asignación de valores: 2 formas básicas para asignar un valor a una variable.
La primera consiste en la asignación simple. Ej: v_cantidad = v_cantiad1. "Asigno v_cantidad1 a v_cantidad2
La segunda forma es mediante la sentencia Move: Ej.: MOVE v_cantidad1 TO v_cantidad2. "Asigno v_cantidad1 a V_cantidad2
2- Inicialización de variables: para ello utilizamos la sentencia CLEAR <variable>.
Ver ejemplo de imagen 2.2 Declaración de variables a inicializar el resultado de los campos sería el que muestra la imagen 3.3 . Una sentencia muy importante para consultar el contenido de las variables declarados en nuestros programas es IS INITIAL (esta sentencia es muy útil cuando se trabaja con tablas internas).
Ej.
IF v_campo IS INITIAL.
WRITE 'La variable está vacía'.
END IF
3- Operaciones con caracteres: Algunas funciones muy útiles son:
- CONCATENATE: utilizada para concatenar varios campos alfanuméricos en uno solo. Es muy útil cuando se trabaja con fechas en SAP son del formato AAAAMMDD y cuando se muestran en un listado se deben convertir a DD.MM.AAAA. (ayuda F1)
- TRASLATE: utilizada para convertir caracteres de mayúscula a minúscula o viceversa, o para realizar sustituciones de caracteres a través de ciertas reglas. Ej, TRASLATE v_texto TO UPPEP CASE. esta sentencia convierte a mayúsculas el contenido de la variable V_TEXTO. Siendo V_TEXTO de tipo caracter.
Infotips: La sentencia TRASLATE es muy útil para la conversión de texto a mayúscula o minúscula (ayuda F1)
- 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 reemplaza el contenido de la variable V_TEXTO que es 'Hola' por el texto 'Casa'
Infotips: La sentencia REPLACE es muy útil cuando se trabaja con importes (mas ayuda F1)
- 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. (esta sentencia utiliza el separador ',' para dividir el contenido del campo V_TEXTO_LARGO en las variables v_campo1, v_campo2. v-campo3, v_campo4 que son de tipo de carácter (TYPE c).
Infotips: La sentencia SPLIT es útil cuando se trabaja con textos largos hy es necesario separarlos por alcún carácter especial (mas ayuda F1 sobre la sentencia)
- SHIFT utilizada para desplazar el contenido de un campo alfanumérico, hasta un STRING dado. Ej.:
SHIFT v_alfabetico BY 5 places. (esta sentencia realiza el desplazamiento del camo V_ALFABETO hasta la quinta posición, quedando el resto de los caracteres que componen a V_ALFABETO en la variable eliminando los cinco primeros.
Infotips: La sentencia SHIFT es muy útil 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 (mas ayuda F1 sobre la sentencia).
- SEARCH: utilizada para buscar una cadena de caracteres dentro de un campo alfanumérico. Util cuando se trabaja con tablas internas y se busca la ocurrencia de una determinada cadena de un campo de la tabla. Ej.:
SEARCH V_ALFABETO FOR 'ABC'.
- 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. (la sentencia sería 'Dr. Rafael Castro'. 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 también se eliminan los espacios existentes entre las palabras.
Infotips: La sentencia CONDENSE es muy útil en los reportes, cuando se quiere formatear la salida en pantalla de un campo determinado (para mas ayuda f! sobre la sentencia).
Audio Tips: si deseamos buscar un STREAM, es decir una cadena de caracteres que pueden estar compuesta por palabras, sentencias, mensajes, etc, en uno o mas programamas ABAP, podemos utilizar el reporte estándar RSR SCAN1 que nos mostrará en pantalla la cantidad de ocurrencia de la palabra sentencias o mensajes.
4- Operaciones aritméticas: en ABAP hay 4 operaciones clásicas (suma, resta, multiplicación y división), se pueden implementar de dos maneras obteniendo el mismo resultado. Ej.
v_campo1 = v_campo2 + v_campo3.
o
COMPUTE v_campo1 = v_campo2 + v_campo3
También se utilizan 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.
Ejercicio:
- Código fuente del ejemplo
*&---------------------------------------------------------------------* *& Report Z_PRUEBA_ABAP2_5 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT z_prueba_abap2_5. * Declaración de variables DATA: v_cantidad1 TYPE i VALUE 50, v_cantidad2 TYPE i. 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. DATA: v_campo1(5) TYPE c, v_campo2(5) TYPE c, v_campo3(5) TYPE c, v_campo4(5) TYPE c, v_campo(17) TYPE c. *---------------------------------------------------------------------* START-OF-SELECTION. *---------------------------------------------------------------------* v_cantidad2 = v_cantidad1. "Asigno v_cantidad1 a v_cantidad2 MOVE v_cantidad1 TO v_cantidad2. "Asigno v_cantidad1 a v_cantidad2 CLEAR: v_texto, v_numero, wa_usuario. WRITE v_texto. WRITE v_numero. WRITE wa_usuario-nombre. WRITE wa_usuario-tel. WRITE wa_usuario-cod_postal. CONCATENATE v_campo1 v_campo2 v_campo3 INTO v_campo SEPARATED BY '.'. IF v_campo IS INITIAL. WRITE 'La variable esta vacia'. ENDIF. TRANSLATE v_texto TO UPPER CASE. REPLACE 'Hola' WITH 'Casa' INTO v_texto. SPLIT v_texto_largo AT ',' INTO v_campo1 v_campo2 v_campo3 v_campo4. SHIFT v_alfabeto BY 5 PLACES. SEARCH v_alfabeto FOR 'ABC'. CONDENSE wa_doctor. CLEAR: v_campo1, v_campo2, v_campo3. v_campo1 = v_campo2 + v_campo3. COMPUTE v_campo1 = v_campo2 + v_campo3. ADD 1 TO v_numero. "Suma 1 a la variable 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. "Divide por 2 a la variable V_NUMERO. - Ejercicio de práctica: *&---------------------------------------------------------------------* *& Report ZABAP_FECHA_ACTUAL *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zabap_fecha_actual. DATA: v_fecha(10) TYPE c, v_fecha_actual(10) TYPE c. START-OF-SELECTION. CLEAR: v_fecha, v_fecha_actual. v_fecha = sy-datum. CONCATENATE v_fecha+6(2) v_fecha+4(2) v_fecha+0(4) INTO v_fecha_actual SEPARATED BY '/'. WRITE:/ 'La Fecha actual del sistema es:' , v_fecha_actual.
 
 
 
Sobre el autor
Publicación académica de Claudio Marcelo Dario Haikel, en su ámbito de estudios para la Carrera Consultor ABAP.
Claudio Marcelo Dario Haikel
Profesión: Funcional Sap - Argentina - Legajo: HM94J
✒️Autor de: 58 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Claudio Haikel