Contenido
4. Function Group o Function pool
Los programas en ABAP son objetos de repositorio. Al igual que los demás objetos, como tablas o pantallas del diccionario ABAP, su mantenimiento se realiza mediante la herramienta ABAP Workbench, en este caso el Editor ABAP.
- El nombre de un programa ABAP puede tener entre 1 y 30 caracteres.
- Los símbolos de punto(.), coma (,), espacio, paréntesis (), apóstrofe (‘), comillas (“), igual (=), asterisco (*), porcentaje (%), guion (–).
Cuando se ejecuta un programa ABAP, se llaman sus bloques de procesamiento en una secuencia u orden especifico. Todo esto se controla fuera del programa, por los procesadores. Entonces al ejecutar un programa ABAP, el control pasa entre varios procesadores.
El entorno de tiempo de ejecución cuenta con una variedad de patrones de control, que llaman pantallas y procesan bloques en cierto orden.
Conocer el tipo del programa, permite determinar cómo se ejecuta un programa ABAP.
Todos los tipos de programas no se crean directamente desde el Editor de ABAP, también se usan herramientas especiales como “Function Builder” para grupos de funciones o “Class Builder” para grupo de clases.
Cada programa tiene un “tipo de programa” que se determina en los atributos de este, a la hora de crearlo. En este artículo, hablaremos sobre los 7 tipos de programas executable program, include program, module pool, function group, subroutine pool, interface pool, class pool y conoceremos cómo diferenciarlos.
El tipo de programa que asignemos definirá los atributos técnicos básicos de un programa, así se conocerán los bloques de procesamiento que puede contener el programa, también cómo el entorno de tiempo de ejecución ABAP manejará y ejecutará el programa y si podrá funcionar con sus propias pantallas.
Contenido
1. Executable program
Este tipo de programas los podemos identificar porque inician siempre con la palabra clave o instrucción “REPORT”.
La creación se realiza directamente usando la herramienta “ABAP Editor” o desde el entorno de Eclipse.
SAP GUI
Eclipse
Este tipo de programas pueden contener todos los bloques de procesamiento compatibles con ABAP.
Son los únicos que se pueden iniciar con “SUBMIT” que es la declaración ABAP que se encuentra detrás de la transacción “SA38 – ABAP Program Execution”. Con “SUBMIT” se inicia un proceso de generación de reportes en el entorno de tiempo de ejecución ABAP.
Este proceso desencadena una secuencia de eventos, como por ejemplo “INITIALIZATION”, “STAR-OF-SELECTION” entre otros.
El flujo del proceso permite al usuario ingresar parámetros de selección en una Pantalla de selección. Posteriormente, los datos se seleccionan de la base de datos y se procesan y finalmente se muestra una salida.
En ningún momento el programador tiene que definir sus propias pantallas y las acciones del usuario final en las pantallas, pueden desencadenar mas bloques de procesamiento.
En conclusión, el flujo del programa ejecutable está orientado a la generación de informes, sus tareas principales son, leer datos de la base de datos, procesarlos y mostrar los resultados. Por esto la ejecución de un programa ejecutable generalmente se le denomina “REPORTS” o informes.
2. Include program
A diferencia de los demás tipos de programas, los “Include programs” no representan unidades de compilación independientes con un área de memoria propia. Los “Include programs” no se pueden ejecutar, simplemente funcionan como una biblioteca para el código fuente en ABAP.
Con la instrucción “INCLUDE” se incluye el programa en una posición específica del código fuente, es decir, estos programas se pueden insertar en cualquier lugar en otros programas ABAP.
Cuando el compilador ABAP realiza la verificación del código y la generación del programa, la aplicación se reemplaza por el código fuente del programa a incluir.
Y, por último, se crean utilizando el “Editor ABAP”.
1. Module pool
Este tipo de programa ABAP, normalmente contiene pantallas y módulos de dialogo y se inicia utilizando códigos de transacción.
La instrucción “PROGRAM” comienza un conjunto módulos o un conjunto de subrutinas. Es decir, esta es la primera sentencia de un programa independente, después de la activación de posibles programas Include.
Los Module pools se crean directamente mediante el “Editor ABAP”.
Durante su ejecución se pueden desencadenar todos los eventos del entorno de tiempo de ejecución ABAP.
El atributo técnico más importante de un programa Module pool es que solo se puede controlar mediante la lógica de flujo de pantalla. Deben iniciarse utilizando una transacción vinculada al programa y a una de sus pantallas.
En este tipo de programas, se deben definir las pantallas propias en el “Screen Painter”, aunque, la pantalla inicial puede ser una pantalla de selección.
Y cuando se inicia un programa utilizando un código de transacción, el entorno de tiempo de ejecución inicia al procesador que llama a la pantalla inicial y esto, posteriormente llama a un módulo de dialogo en el programa ABAP correspondiente.
En conclusión, es apropiado usar programas Modules pool cuando se escriben programas orientados a diálogos usando una gran cantidad de pantallas cuya lógica de flujo, determina en gran mediad el flujo del programa de las secuencias de pantalla.
2. Function Group o Function pool
Es el único tipo de programas que puede contener módulos de funciones estos son procedimientos especiales que se pueden llamar desde cualquier programa externo ABAP.
Se introduce con la declaración “FUNCTION-POOL”.
También, se pueden ejecutar utilizando transacciones, pero por lo general se cargan al llamar a sus módulos de funciones. Los programas Function Group pueden contener todos los bloques de procesamiento admitidos en ABAP a excepción de los bloques de eventos de reports.
Los grupos de funciones se actualizan con la herramienta “Function Builder” del ABAP Workbench.
Al igual que los executable programas y module pools, los function group pueden contener sus propias pantallas, incluidas pantallas de selección. Las pantallas se llaman dentro de los módulos de funciones del grupo. Un grupo de funciones o function group que contiene pantallas y un solo modulo de funciones, permite modularizar los flujos de pantalla.
3. Subroutine pool
Este tipo de programa ABAP por lo general contiene SUBRUTINAS, las cuales son llamadas desde otros programas ABAP. No admite sus propias dynpros.
Se crean utilizando el Editor ABAP y también se introducen con la instrucción “PROGRAM”. No pueden contener pantallas propias.
Solo puede utilizar el bloque del evento “LOAD-OF-PROGRAM” y también usar subrutinas como bloques de procesamiento.
Las subrutinas pueden definirse en todos los programas ABAP (excepto en los type pools, class pools y interface pools), solo fuera de las clases. Estas son obsoletas en ABAP, se comienzan con la palabra clave “FORM” y se finalizan con “ENDFORM”.
4. Interface pool
Este tipo de programa contiene la definición de una interfaz global y se activa utilizando la interfaz. Los Interface pools no tienen sentencias ejecutables, contiene la definición de la interfaz que puede ser implementada por clases globales o locales.
Cuando se implementa una interface en una clase, esta definición quedaría incluida en la definición de la clase, implícitamente.
La instrucción “INTERFACE-POOL” inicia este tipo de programas. Se editan solo con la herramienta de “Class Builder” en ABAP Workbench y se genera un programa para una interfase global.
Un Interface pool, no soporta ninguna pantalla propia.
La parte de declaraciones globales de los programas interface pool solo pueden contener la declaración de “types groups” y la declaración de la interfaz global. La parte de implementación siempre está vacía.
5. Class pool
Este tipo de programas no pueden contener pantallas propias ni bloques de procesamiento, excepto métodos.
Un programa Class pool se inicia utilizando la instrucción “CLASS-POOL”, esas declaraciones son generadas también por la herramienta en ABAP Workbench “Class Builder” y se utilizan exclusivamente como contenedor para una clase global y tantas clases locales como sea necesario.
Los programas Class pool se cargan utilizando su clase global. A partir de la versión 6.10, es posible vincular códigos de transacciones a métodos de clases globales para crear implícitamente un objeto de la clase cuando se utilicen.
Un programa general para una clase global y los programas Includes asociados son generados automáticamente.
Los class pool y los Interface pools son los programas ABAP en la biblioteca de clases.
Además de la declaración de la clase global, un conjunto de clases solo puede contener declaraciones como:
- Declaración con “TYPES” de tipos de datos locales
- Declaración con “n” de constantes locales
- Declaración con “INTERFACE/ ENDINTERFACE” de interfaces locales
- Declaración e implementación de clases locales utilizando “CLASS/ENDCLASS”.
Como cualquier otro programa ABAP, los programas Class pool e Interface pool cuentan de una parte de declaración global para las declaraciones y una parte de implementación para los procedimientos.
“Class builder” organiza las diversas declaraciones e implementaciones de un Class pool o un Interface pool en los programas includes. Una función en Class Builder permite que los programas includes asociados se abran y editen en el ABAP Editor.
en la transacción SA38 en el campo p_group en el reporte y en la SUIM directamente esta este valor ‘ ‘ las comillas. mi pregunta es esas comillas que acción ejecuta en el sistema sap ?