![](/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/246.jpg)
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 registros, 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. Veamos un ejemplo paso a paso de como ejecutar un programa de fondo.
AUDIO TIPS 1: Es sumamente importante analizar previamente a la realización de la programación de un requerimiento en ABAP si el programa que debemos realizará se ejecurará en forma ONLINE o de fondo o Batch. Esto se debe a que cambiará no solo la forma de ejecución del programa sino también la forma en la que se programa dicho programa. Por ejemplo en ABAP se utiliza lo que se conoce como Batch Input, es decir, es una técnica empleada muy conmunmente para realizar la carga masiva de los datos en los sistemas. Si la ejecución se va a realizar en forma Batch o de fondo, entonces las sentencias que se utilizarán, difieren totalmente a las que se utilizan para ejecutar el mismo proceso en forma ONLINE. Otro ejemplo de esto son los programas llamados REPORTES en ABAP. Si nos solicitan crear un reporte que se ejecutará de fondo o Batch entonces debemos tener en cuenta que no tiene sentido utilizar técnicas de reporte como el ALV las cuales le brindan al usuario la posibilidad de interactuar con la herramienta en los distintos listados, ya que no podrá interactuar con ellas por lo tanto la programación cambiará totalmente. Como consejo es muy recomendable el tiempo suficiente al análisis previo del programa que nos solicitan realizar ya que una corrección en la etapa de diseño es muchísimo menos costosa que una corrección luego de realizado y probado el requerimiento.
Supongamos que tenemos el programa ABAP ZPRUEBA_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 siguiente 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.
INFOTIPS: Mediante la sentencia SUBMIT se pueden pasar parámetros al programa llamado, los cuales deben existir en la pantalla de selección de éste. Para más información sobre la sentencia, presionar F1.
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 como vemos a continuación.
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.
TRANSACCIONES: 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.
AUDIO TIPS 2: Como programadores nos puede suceder que nos soliciten desarrollo de un programa ABAP que se ejecute tanto en forma ONLINE como de fondo dependiendo de las necesidades del momento del usuario en este caso, la solución óptima del requerimiento que nos están realizando será desarrollar un único programa ABAP que presente en la pantalla de selección la posibilidad de elegir el modo de procesamiento es decir, colocaremos dos radio buttons, uno para ejecución ONLINE y otro para ejecución de fondo y le permitiremos al usuario del programa que elija el modo de procesamiento según sus necesidades.
 
 
 
Sobre el autor
Publicación académica de Vismark Eyner Sevillano Moreno, en su ámbito de estudios para la Carrera Consultor ABAP.
Vismark Eyner Sevillano Moreno
Profesión: Tecnologo en Sistemas - Colombia - Legajo: KN43C
✒️Autor de: 62 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Aprender todo lo relacionado con programación sap abap, para desenvolverme en el área laboral en el sector de programación abap.
Certificación Académica de Vismark Sevillano