Académique Documents
Professionnel Documents
Culture Documents
1|
Aplicaciones ABAP
Dentro del mundo ABAP se pueden crear distintos tipos de objetos. Los ms
comunes de ellos son:
Reporte, Reporte interactivo y Reporte ALV
Programa de Dialogo
Formularios
Batch Input
User exists
Field exits
Funciones y RFC
A medida que avanza el curso vamos a ir viendo en detalle cada uno de ellos.
Ahora nos vamos a ocupar de los llamados Reportes Clsicos o simplemente
Reportes.
REPORTE: Es un programa que consiste en una serie de instrucciones y
palabras clave cuyo objetivo es procesar datos de entrada o datos que se
obtienen de las tablas del sistema y mostrar los resultados del
procesamiento por pantalla.
Existen cuatro tipos de palabras claves:
Declarativas: se utilizan para declarar datos que vamos a usar dentro
del programa. Ej.: DATA, TABLES y CONSTANT.
Eventos: que ocurren en el programa. Ej.: START-OF-SELECTION, TOPOF-PAGE, etc.
2|
END-OF-SELECTION
Contiene las ultimas sentencias que se ejecutarn en el programa.
AT LINE-SELECTION
Permite al usuario seleccionar una lnea de un listado y realizar alguna accin. Se
utiliza en los reportes interactivos.
AT USER-COMMAND
Se ejecuta cuando el usuario presiona un botn del men en un reporte.
TOP-OF-PAGE
Ejecuta las instrucciones al inicio de la pgina (encabezados).
END-OF-PAGE
Ejecuta la instrucciones al final de la pgina (Pie de Pgina).
Veamos un ejemplo de como usaramos los eventos en un programa ABAP. Para
ello nos logueamos a SAP, ingresamos a la transaccin SE38 y creamos el
programa Z_PRUEBA_EVENTOS que lo grabamos como programa ejecutable y
como objeto local con el siguiente cdigo:
3|
Utilizando el debugger
1|
Tambin existen los Tipos STRING que se utilizan para cadenas de longitud
variable y XSTRING que se utilizan como un string hexadecimal para cadenas de
caracteres muy grandes.
Para declarar una variable utilizaremos la palabras clave DATA y TYPE tal como
vemos en el siguiente ejemplo.
Tambin podemos declarar variables que sean de igual tipo que otras ya creadas
en el sistema. Para esto utilizamos la sentencia LIKE. En el siguiente caso,
creamos la variable V_CARRID que es del mismo tipo que el campo CARRID de la
tabla de Vuelos de SAP.
2|
Estructuras de datos
En la segunda forma tambin utilizamos la palabra clave DATA pero vamos a crear
una estructura de vuelos solo con ciertos campos.
3|
Constantes
4|
Include de datos
INCLUDE. Es un objeto ABAP que se utiliza para modularizar los
programas de manera que estos resulten ms legibles y mantenibles.
Luego veremos la ventana de dilogo que nos muestra el objeto que ser creado.
Aqu simplemente presionamos el botn Grabar.
5|
A parte de las variables que define el programador, existen otras que han sido
definidas por el sistema y que son de gran utilidad dentro de los programas ABAP.
Estas se encuentran en la tabla SYST y contienen informacin que va desde la
hora del sistema a saber si se ejecuto correctamente una sentencia ABAP o una
actualizacin a una base de datos. Su contenido no puede ser modificado en los
programas sino que cambia simplemente con la ejecucin de los mismos.
Las ms comnmente utilizadas son:
SY-SUBRC: cdigo de retorno posterior a la ejecucin de una sentencia ABAP. Si
el resultado de la ejecucin fue exitoso, entonces es 0, sino es distinto de cero.
SY-DATUM: contiene la fecha del sistema.
SY-UZEIT: contiene la hora del sistema.
SY-INDEX: contiene la cantidad de repeticiones de los bucles.
Leccin 5: Procesamiento de los Datos
1|
Asignacin de valores
Existen dos formas bsicas para asignar un valor a una variable. La primera
consiste en la asignacin simple.
2|
Inicializacin de variables
3|
Existen algunas funciones que se utilizan para tratar caracteres que son muy
tiles en el trabajo diario de un programador ABAP. Ellas son:
CONCATENATE: se utiliza para concatenar varios campos alfanumricos en
uno solo.
La sentencia anterior utiliza 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 0, caso contrario valdr 4.
La sentencia SPLIT es muy til cuando se trabaja con textos largos y es
necesario separarlos por algn caracter especial. Para ms ayuda
presionar F1 sobre la sentencia.
CONDENSE: se
utiliza
para
borrar
espacios
en
blanco
en
campos alfanumricos. 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 tambin desaparecen.
4|
Operaciones Aritmticas
Condiciones
2|
Bucles
3|
Sentencias de Control
EXIT: dentro de un bucle saldr del bucle, dentro de una subrutina saldr
de la misma y fuera de un bucle saldr del programa.
Existen muchos comandos adicionales a WRITE que se utilizan para producir una
salida por pantalla determinada. Algunos de ellos son:
Left-justified
Centered
Salida Centrada
no-gap
no-sign
decimals n
round n
dd/mm/yyyy
Para dejar una lnea en blanco se utiliza la sentencia SKIP y para escribir una
lnea horizontal se utiliza la sentencia ULINE.
2|
Formatos de Pgina
Parmetros de seleccin
Los SELECT-OPTIONS son iguales a los PARAMETER salvo que en ellos se puede
ingresar rangos de valores a parte de valores individuales. En el siguiente
ejemplo, declaramos el SELECT-OPTIONS S_CLAVEP.
2|
Clases de Mensajes
Una vez que ingresamos todos los parmetros de nuestro reporte y ejecutamos el
programa, lo que vamos a querer es que dependiendo de los parmetros
introducidos se produzcan determinadas acciones.
Para analizar el contenido de los parmetros existe el evento AT SELECTIONSCREEN. En este evento es donde se validan los valores ingresados en la pantalla
de seleccin.
Supongamos que queremos que la fecha ingresada por pantalla sea mayor o igual
a la fecha actual y que si no es as se emita un mensaje en la pantalla advirtiendo
que el valor introducido es incorrecto. Para esto vamos a tener que crear
una Clase de mensajes a travs de la transaccin SE91 tal como vemos a
continuacin:
Significado del
Comportamiento
mensaje
El mensaje
aparece en
Status
la lnea de
status
Informacin
El programa continua
despus de la interrupcin
una ventana
de dialogo
Warning
Barra de
status
Error
Barra de
status
Terminacin
El programa termina
despus de un cuadro de
dialogo
una ventana
de dialogo
Dump
Error en tiempo de
ejecucin tipo X
un dump