
4.7.1. - Ejecución de fondo
Es un modo de procesamiento donde se planifica cuando va a realizarse la ejecución de un programa. Se utiliza cuando el tiempo de procesamiento es muy alto debido a diferentes razones, como accesos a base de datos críticas o para procesos que corren periódicamente. Está condicionado para aquellos procesos que no requieran la interacción del usuario.
****Existen dos formas de ejecutar un programa ABAP
1. Online
a. Se ejecuta al pulsar F8.
b. Resultados de ejecución de manera inmediata.
c. Es conveniente para:
i. Programas donde se requiere interacción con el usuario.
ii. Cuando el tiempo de ejecución es muy poco.
2. Batch
a. Tiempos de procesamiento muy altos.
b. Accesos múltiples a bases de datos.
c. Ejecución de múltiples transacciones.
d. Carga masiva de datos en sistema.
Para realizar la implementación de un JOB, se procede a detallar un ejemplo
En el que el programa “ZPRUEBA_FONDO_B” obtiene los registros de la tabla “ZTABLA_USUARIOS” y los imprime por pantalla.
En un programa padre, “ZPRUEBA_FONDO”, se creará un “JOB”. Se asigna un nombre a la variable “V_JOBNAME” y se ejecuta la función “JOB_OPEN”. Para modularizarlo, se crea la subrutina “ABRIR_JOB”.
Posteriormente, hay que lanzar el Job. Hay que crear una nueva subrutina “LANZAR_JOB”, que se ejecutará con la sentencia “SUBMIT”, que se utiliza para ejecutar un programa dentro de otro programa, y con el añadido de la cláusula “VIA JOB NUMBER”, la ejecución del programa se realizará de fondo.
Añadiendo la cláusula “AND RETURN”, el programa llamador permanece a la espera mientras se ejecuta el programa llamado. Cuando el programa llamado termina, se devuelve el control al programa llamador.
Después, hay que cerrar el Job mediante la función “JOB_CLOSE”. Se crea una nueva subrutina, en este caso “CERRAR_JOB”.
Después de cerrar el Job, imprimir por pantalla el mensaje “Se lanzó el Job. Para visualizarlo ir a la Trx SM37”.
Se ejecuta el programa “ZPRUEBA_FONDO” y aparecerá el mensaje indicado anteriormente. Para ver el resultado, hay que acceder a la transacción SM37, donde habrá que pulsar el botón de ejecutar.
Seleccionar el JOB que se ha lanzado y pulsar el botón “Spool”. Dentro de la pantalla, se verá el pedido del job. Pulsando el botón de visualización, se pueden ver los resultados del procesamiento.