Está en la página 1de 17

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 tres 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, TOP-OF-PAGE, etc. Control: sentencias de control de flujo de programa. Ej.: IF, WHILE, DO, etc. Operativas: realizan funciones segn la palabra clave. Ej.: WRITE, MOVE, etc.

Generalmente la estructura de un reporte va a ser de la siguiente manera:

Existen dos formas de utilizar los comentarios en un programa Abap: Con un asterisco en la primera columna de la fila. Con comillas dobles en cualquier posicin de la lnea.

2|

Eventos de un programa Abap

Como dijimos anteriormente, la programacin Abap es orientada a eventos. Los principales eventos que pueden ocurrir dentro de un programa son: INITIALIZATION Es el primer evento que se ejecuta. Nos permite inicializar los campos de la pantalla de seleccin de un programa o cualquier otra variable. AT SELECTION-SCREEN Permite formatear necesidades. la pantalla de seleccin segn nuestras

START-OF SELECTION Si no es precedido por otro evento, el sistema inserta este evento antes de la primera lnea de cdigo ejecutable. 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 usariamos los eventos en un programa Abap. Para ello nos loguemos 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:

Si ejecutamos este programa produciramos la siguiente salida:

No importa el orden en el que se escriban los eventos dentro de un programa.

3|

Utilizando el debugguer

Es muy importante saber utilizar el debugguer ya que en programacin las cosas solo funcionan si y solo si son perfectas osea sin errores. Algunos errores se detectan a simple vista pero para resolver otros vamos a necesitar ejecutar nuestro programa y saber exactamente cuales son los valores que van tomando las variables internas del mismo. Para esto existe el debugguer. Veamos como debaguear el programa Z_PRUEBA_EVENTOS que acabamos de crear. Para ello, visualizamos el programa a travs de la transaccin SE38 y colocamos un breakpoint luego de la declaracin de las variables presionando el botn para breakpoints de sesin que durarn mientras la sesin este abierta o para breakpoints externos.

Luego ejecutaremos el programa y veremos en debugguer en accin.

Presionando el botn Single step a paso osea sentencia a sentencia.

o la tecla F5, ejecutaremos paso

Presionando el botn Execute o la tecla F6, ejecutaremos subrutina a subrutina sin entrar en el contenido de cada una. Ms adelante veremos el concepto de subrutina en detalle. Presionando el botn Return o la tecla F7, retornaremos a la rutina de nivel superior de la rutina actual en ejecucin.

Presionando el botn Run o la tecla F8, continuaremos la ejecucin hasta el final del programa. En la parte inferior de la pantalla del debugguer podemos ingresar el nombre de cualquiera de las variables del programa para saber cual es su contenido en cualquier momento del mismo. Tambin podemos modificar el contenido de una variable para saber cual sera el resultado del programa con esta modificacin.

Tipos de datos Abap


Los principales tipos de datos que se utilizan en Abap son:

Tambin existen los Tipos STRING que se utiliza para cadenas de longitud variable y XSTRING que se utiliza 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.

Con el agregado de VALUE, inicializamos con un valor determinado a una variable.

Cuando declaramos variables de tipo caracter (TYPE c) debemos especificar la longitud de la cadena. De lo contrario el sistema asumir que su longitud es 1 caracter. 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_CLIENTE que es del mismo tipo que el campo KUNNR de la tabla Maestro de Clientes.

2|

Estructuras de datos

Una estructura es un conjunto de campos relacionados. Los componentes pueden ser simples campos, otras estructuras o inclusive tablas. Existen tres formas de definir una estructura: La primera es utilizando la palabra clave DATA. En el siguiente ejemplo creamos una estructura de clientes que tendra los mismos campos que la tabla de clientes KNA1.

En la segunda forma tambin utilizamos la palabra clave DATA pero vamos a crear una estructura de clientes solo con ciertos campos.

La tercera forma es utilizando TIPOS, que son formatos de estructuras que pueden ser utilizados por cualquier otra estructura sin necesidad de reescribir el cdigo. Para esto se utiliza la palabra reservada TYPES.

3|

Constantes

Una constante es una variable que se declara dentro de un programa cuyo valor permenecer tal como lo indica su nombre constante a la largo del programa. Para su declaracin se utiliza la palabra reservada CONSTANTS.

La utilizacin de constantes ayuda a que el mantenimiento de las aplicacines Abap sea ms sencillo.

4|

Include de datos

Un include es un objeto abap que se utiliza entre otras cosa para modularizar la declaracin de los datos de manera que el programa Abap resulte ms legible y mantenible. Para su creacin se utiliza la palabra clave INCLUDE seguida del nombre del include.

La utilizacin de INCLUDES es considerada una buena prctica de programacin.

5|

Variables del sistema

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. 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 usadas son: SY-SUBRC: cdigo de retorno posterior a la ejecucin de una sentencia Abap. Si la ejecucin fue correcta, 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.

Asignacin de valores

Existen dos formas bsicas para asignar un valor a una variable. La primera consiste en la asignacin simple.

La segunda forma es mediante la sentencia MOVE.

2|

Inicializacin de variables

Para la inicializacion de las variables utilizamos la sentencia CLEAR. Si inicializamos las variables que declaramos a continuacion:

El contenido de los campos sera el siguiente:

Una sentencia muy importante a la hora de consultar el contenido de las variables que declaramos en nuestros programas es IS INITIAL. En la siguiente imagen vemos un ejemplo de su utilizacin.

La sentencia IS INITIAL es muy til cuando se trabaja con tablas internas (concepto que veremos ms adelante en el curso). Para ms ayuda presionar F1 sobre la sentencia.

4|

Operaciones Aritmticas

En Abap las cuatro operaciones bsicas ( +, -, * , / ) se pueden implementar de dos maneras obteniendo el mismo resultado.

Siendo el resultado el mismo de ambas formas. Tambin se utilizan las siguientes sentencias para operar aritmeticamente con datos:

1|

Condiciones

Las condiciones en Abap se pueden representar de dos formas. Una es utilizando la palabra clave IF-ENDIF.

Si ninguna de las condiciones es valida, el sistema ejecutar las declaraciones que estn debajo del ELSE. La otra forma es mediante CASE-ENDCASE.

Si ninguna de las condiciones es valida, el sistema ejecutar las declaraciones que estn debajo del WHEN OTHERS. En ambas formas se utilizan los siguientes operadores lgicos.

Si en cada condicin, se chequea que la variable sea igual a determinado valor, y la cantidad de condiciones es alta, sera aconsejable utilizar CASE-ENDCASE.

2|

Bucles

Los bucles en Abap se puede pueden representar de tres formas. La primera es mediante la palabra clave LOOP-ENDLOOP.

En el ejemplo anterior, Tabla es una tabla interna (Concepto que veremos en detalle ms adelante). Con el agregado de la clasula WHERE se puede restringir el nmero de lneas a leer ya que se producir la iteracin siempre y cuando se cumpla la condicin. Para ms informacin presionar F1 sobre la sentencia. La utilizacin de la clasula WHERE siempre y cuando sea posible es una buena prctica de programacin. Otra forma es mediante la palabra clave DO-ENDDO.

La iteracin se ejecutar solo si la condicin es verdadera.

3|

Sentencias de Control

Las sentencias de control se utilizan para terminar el procesamiento de un blucle, de un proceso o de un programa. Ellas son: CHECK <CONDICION>: verifica si la condicin es verdadera. Si la condicin es falsa, y la sentencia est dentro de un bucle, se saltearn todas las sentencias siguientes que estn dentro del bucle y se continuar con la siguiente iteracin. Fuera de un bucle se saltearn todas las sentencias hasta el final del evento o del programa en proceso.

EXIT: dentro de un bucle saldr del bucle, dentro de una subrutina saldr de la misma y fuera de un bucle saldr del programa.

CONTINUE: se utiliza solo dentro de bucle. Luego de la ejecucin de la sentencia el sistema continua con la siguiente iteracin.

STOP: se finaliza el programa en ejecucin pero antes se ejecuta el evento END-OF-SELECTION.

LEAVE: se finaliza el programa en ejecucin pero no se ejecutar el evento END-OF-SELECTION.

1|

Parmetros de seleccin

Si queremos introducir algunas delimitaciones a nuestro programa de modo que nuestro reporte solo se ejecute para ciertos datos que el usuario deber introducir en la pantalla entonces deberemos crear una pantalla de seleccin.

PANTALLA DE SELECCIN. Es un rea dentro de los reportes en donde se especifican los parmetros de seleccin por los cuales se va a ejecutar el programa. Sirve para restringir el procesamiento y la salida de los datos. Por lo general se coloca despus de la declaracin de datos. Dentro de una pantalla de seleccin se pueden declarar dos tipos de objetos: PARAMETER en los cuales el usuario podr ingresar valores individuales y SELECT-OPTIONS en donde el usuario podr ingresar rangos de valores. En el siguiente ejemplo declaramos los parmetros P_FECHA y P_NOMBRE.

La longitud mxima que puede tener el nombre de un parmetro es de 8 posiciones. El agregado de la clasula OBLIGATORY hace que el parmetro sea obligatorio. El agregado de la clasula DEFAULT asigna un valor por defecto al parmetro. Si ejecutamos nuestro Reporte veremos lo siguiente:

Lo que vemos es que al ejecutar nuestro reporte nos aparece la pantalla de seleccin que acabamos de crear. Vemos que a la derecha de la fecha nos aparece el icono . Si presionamos sobre el cono o presionamos F4 dentro del campo fecha, se abrir la siguiente ventana:

Aqu estamos viendo la Ayuda de bsqueda asociada al campo SYDATUM el cual es el tipo de nuestro parmetro. El tema de las ayudas de bsqueda lo veremos en detalle en la prxima unidad. Ahora vamos a cambiar las descripciones de los parmetros que aparecen en pantalla. Para esto vamos a ir a:

Y ingresamos las descripciones que mejor se adapten a nuestro propsito.

Tambin se pueden crear parmetros tipo Checkbox en donde el usuario puede tildar las opcines que prefiera o tipo Radiobutton donde el usuario selecciona una de las opciones entre todas las existentes. Veamos un ejemplo de estos dos tipos de parmetros:

Los cuales se visualizarn de la siguiente manera en pantalla:

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.

De nuevo, si ejecutamos el reporte, a la derecha del campo Clave de pas nos aparece el icono , si lo presionamos vemos la ayuda de busqueda correspondiente al tipo LAND1_GP que es un tipo de la tabla KNA1

También podría gustarte