Conceptos Básicos ABAP

A continuación se enumeran algunos conceptos básicos para poder comprender mejor al sistema SAP R/3 así como al lenguaje ABAP.

Transacciones

El modo normal de ejecutar código ABAP es mediante transacciones, que pueden ser accedidas desde el menú de usuario de manera definida por el sistema o por el usuario, o ingresando el código de la transacción (un mnemónico de hasta 20 caracteres) en la línea de comandos.

Las transacciones también pueden ser invocadas dentro de un programa, mediante las sentencias CALL TRANSACTION o LEAVE TO TRANSACTION.

En este contexto, "transacción" sólo es una forma de ejecutar un programa ABAP, y no implica el concepto de Operación Indivisible en Datos que debe ejecutarse completa o no ejecutarse y realizar un rollback para asegurar la consistencia de datos. Este concepto existe en SAP y es llamado LUW (Logical Unit of Work, o Unidad Lógica de Trabajo). En una misma transacción puede haber más de una LUW.

Existen diferentes tipos de transacciones

Transacciones de Diálogo

Son las transacciones más comunes dentro del estándar de SAP. Estas transacciones están ligadas a una Dynpro (pantalla) de un programa ABAP. Al llamar a estas transacciones, se carga el programa ABAP y se llama a la Dynpro. De esta manera, una transacción de diálogo llama a una secuencia de pantallas más que a un programa. Sólo durante la lógica de las pantallas se llaman efectivamente los módulos de diálogo del programa. De hecho, se pueden asignar diferentes transacciones de diálogo al mismo programa.

Transacciones de Parámetros

Estas transacciones son llamadas a otras transacciones existentes con parámetros de entrada. Es decir que son llamadas a transacciones con parámetros definidos, pudiendo omitir la pantalla inicial de la transacción original.

Transacciones de Variantes

Son transacciones ya existentes llamadas con una variante anteriormente creada. Al acceder a una transacción de variante, se ejecuta la transacción subyacente con la variante en cuestión. En las variantes se pueden definir valores para los diferentes valores de las diferentes pantallas, cambiar los atributos de los elementos de pantalla, etc. Las transacciones de variante se mantienen con la transacción SHD0.

Transacciones de Reporte

Son transacciones que llaman a un Reporte ABAP. La transacción se debe mapear con la pantalla de selección de un programa ejecutable. Internamente, cuando se llama a este tipo de transacciones el sistema ejecuta un SUBMIT al programa ejecutable.

Transacciones Orientadas a Objetos (OO Transactions)

Este tipo de transacciones apareció en la versión 6.10 de SAP. La transacción está linkeada a un método de una clase local o global. Cuando se llama a la transacción se carga el programa correspondiente.

Tipos de Programas ABAP

Básicamente existen dos tipos de programas ABAP.

Report Programs

Estos programas siguen una lógica relativamente simple, que se puede analizar directamente en el código del programa. El usuario ejecuta la programa (mediante una transacción, o directamente) con los parámetros deseados y el programa devuelve un resultado. Este resultado no necesariamente es estático, sino que el usuario puede obtener más detalle sobre el mismo con estructuras definidas en el programa. Por ejemplo, el usuario puede incovar a otro programa o transacción con un click en un objeto determinado.

Online Programs

Este tipo de programas, también llamado "Programas de Diálogo" o Modulpool son diferentes al anterior porque no producen un resultado directo en pantalla, sino que más bien están compuestos por un flujo de pantallas en los que se muestra información, se cargan datos y este flujo depende de la entrada del usuario. Cada pantalla contiene además una "Lógica de Fliujo"; esto se refiere a los módulos llamados durante la ejecución de la pantalla. Báscamente, el PBO (Process Before Output, proceso antes de la salida) y PAI (Process After Input, proceso luego de la salida). Esto es llamado Dynpro en SAP (DINamic PROgram, programa dinámico). Una Dynpro incluye el flujo de pantallas y la lógica de las mismas.

Para ejecutar este tipo de programas, es necesario crear una transacción de diálogo.