
La ejecucion de fondo
1 Las formas de ejecución de un programa ABAP
En ABAP existen dos formas principales de ejecutar un programa:
-
Ejecución online:
-
Se realiza al presionar la tecla F8 o hacer clic en el botón de ejecutar.
-
Es útil cuando se requiere interacción con el usuario, ya que permite introducir datos en pantalla y ver los resultados de inmediato.
-
Adecuada para programas con bajo tiempo de procesamiento.
-
Ejecución batch o de fondo:
-
Se activa presionando F9.
-
Se utiliza cuando el tiempo de procesamiento es alto, como por ejemplo al trabajar con grandes volúmenes de datos o múltiples transacciones.
-
No requiere intervención del usuario y permite planificar su ejecución, por ejemplo, definiendo fecha/hora o repetición periódica.
-
Los resultados no se muestran en pantalla directamente, sino que deben consultarse desde transacciones como SM37 (monitoreo de jobs).
Cada modalidad tiene sus ventajas y se elige según la necesidad del proceso que se desea ejecutar.
2 La creación de un programa ABAP de fondo.
La creación de un programa ABAP para ejecución en segundo plano (batch) implica una estructura de desarrollo distinta a la de un programa que se ejecuta online. En este enfoque se diseñan dos programas: uno “padre” y otro “hijo”.
-
Programa hijo (ZTEST_FONDO_B): realiza la tarea principal, como obtener datos de una tabla y generar la salida.
-
Programa padre (ZTEST_FONDO): se encarga de gestionar la ejecución de fondo del programa hijo.
Este programa padre realiza tres pasos clave:
-
Abrir un Job: usando el módulo de funciones JOB_OPEN, se inicia un nuevo job con un nombre definido.
-
Lanzar el Job: se llama al programa hijo mediante la sentencia SUBMIT ... VIA JOB ..., asegurando su ejecución en segundo plano.
-
Cerrar el Job: con el módulo JOB_CLOSE, se finaliza la configuración y se activa el job.
La visualización de resultados se realiza mediante la transacción SM37, y la salida impresa a través del spool se administra con SP01. Este enfoque es ideal cuando el tiempo de ejecución es prolongado o no requiere interacción con el usuario.