![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
![ABAP La ejecución de fondo ABAP La ejecución de fondo](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/303.jpg)
Lección: Batch
1) Ejecución de Fondo
Existen dos formas de ejecutar un programa en ABAP: Online y Batch. En la ejecución Online el programa se ejecuta al momento de presionar F8 y los resultados de la ejecución se producen de manera inmediata. Esta forma de ejecución es conveniente para los programas donde se requiere interacción con el usuario o cuando el tiempo de ejecución es muy poco
Pero en ciertos otros casos, especialmente hablando en un ambiente real de trabajo, el tiempo de procesamiento de un programa podría ser muy alto. Esto se puede deber a que el programa tiene muchos accesos a base de datos, que tienen millones de regisstros, a la ejecución de múltiples transacciones o a otras varias razones
Para estos casos que acabamos de mencionar, va a ser conveniente la ejecución Batch o de fondo. Ej de como ejecutar un programa de fondo
Supongamos que tenemos el programa ABA APRUEBA_FONDO_B que obtiene los registros de la tabla ZTABLA_USUARIOS y los imprime por pantalla
Ahora vamos a crear el nuevo programa ABAP ZPRUEBA_FONDO el cual cumplirá el rol de programa padre del programa ZPRUEBA_FONDO_B
Lo primero que debemos hacer es crear un Job. Para esto le asignamos un nombre a la variable V_JOBNAME y luego ejecutamos la función JOB OPEN . Para modularizar vamos a crear la subrutina ABRIR_JOB que tendrá el código
Lo que sigue es lanzar el Job. Para esto vamos a crear la subrutina LANZAR_JOB , que ejecutará la sentencia SUBMIT, la cual se utiliza para ejecutar un programa dentro de otro programa y con el agregado de la cláusula VIA JOB NUMBER la ejecución del programa se realizará de fondo.
Mediante la sentencia SUBMIT se pueden pasar parámetros al programa llamado, los cuales deben existir en la pantalla de selección de éste.
Con el agregado de la cláusula AND RETURN el programa llamador permanece en espera mientras se ejecuta el programa llamado. Cuando el programa llamado termina, se devuelve el control al programa llamador
Luego debemos cerrar el Job mediante la función JOB CLOSE. Para esto vamos a crear la subrutina CERRAR_JOB
Por último, después de cerrar el Job, imprimimos por pantalla el mensaje " Se lanzo el Job, para visualizarlo ir a la Trx SM37"
Ahora vamos a ejecutar Online el programa ZPRUEBA_FONDO presionando F8. Veremos en la pantalla el mensaje " Se lanzo el Job, para visualizarlo ir a la Trx SM37" , por lo tanto vamos a ir a buscar el resultado a la transacción SM37. Allí presionamos F8 o Ejecutar.
Transacción SM37: Utilizaremos la transacción estándar SM37 para visualizar los jobs procesados en el sistema SAP. De cada job podremos visualizar distintos datos tales como el ID, el usuario SAP que lo ejecutó, el status (planeado, liberado, listo, activo, terminado o cancelado ) ,la fecha y hora de inicio, la duración y el retraso.
Identificamos nuestro proceso, lo tildamos y presionamos el botón Spool
Ahora vemos el pedido del Job correspondiente a nuestro programa
Finalmente, presionamos el botón de visualización y vemos el resultado del procesamiento
 
 
 
Sobre el autor
Publicación académica de Aida Cortina Fernandez, en su ámbito de estudios para la Carrera Consultor ABAP.
Aida Cortina Fernandez
Profesión: Consultor Junior - España - Legajo: MK87X
✒️Autor de: 74 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Certificación Académica de Aida Cortina