![](/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/373.jpg)
Las formas de ejecución de un programa ABAP
Existen 2 formas.
Ejecución online: el programa se ejecuta al momento de presionar F8 o el icono de ejecutar y los resultados de la ejecución se producen de manera inmediata, ya sea mostrándolos por pantalla o modificando las tablas BD de SAP.
Esta ejecución e conveniente cuando los programas requieren interacción con el usuario, es decir requieren en algún momento que el usuario presione una tecla o haga clic en un botón. También es recomendable cuando el tiempo de ejecución es poco.
Ejecución batch o de fondo: es la ejecución de un programa o proceso sin interacción con el usuario. Es decir que lanzamos el proceso y el SAP GUI nos devuelve el control, aunque el programa todavía este en ejecución.
Se usa cuando el tiempo de ejecución es muy alto. por muchos accesos a las tablas de BD, que tienen millones de registros, a la ejecución de múltiples transacciones o a otras varias razones.
Los resultados no se visualizan en la misma pantalla de ejecución del programa tal como sucede en la ejecución online, sino que debemos ir a buscar los resultados de la ejecución a otra transacción de SAP.
Si ejecutamos de forma online o F8 el programa, entonces vamos a visualizar el resultado de ejecución del programa en la pantalla.
Si ejecutamos en proceso de fondo o batch el programa, presionando la tecla F9, observamos la siguiente ventana.
Presionamos la tilde y obtenemos.
Analicemos cada una de las opciones de inicio:
Inmediato: inicia el programa de fondo en el momento de acabar su definición.
Fecha/Hora: se indica un día y una hora en la que queremos que inicie la ejecución de fondo. Además se puede marcar como periódica, es decir, que se repita cada cierto período de tiempo.
Tras job: se puede encadenar la ejecución de un programa de fondo con otro, es decir, indicamos al proceso B que inicie cuando el proceso A finalice. Se le puede indicar que inicie si A termina bien.
Tras evento: la ejecución comenzara cuando se produzca en el sistema el evento que le indiquemos. Un evento es un suceso que se produce automáticamente en el sistema SAP o que podemos provocar manual. Previamente el evento debe estar definido en la correspondiente tabla BD. SAP viene con una serie de eventos predefinidos como puede ser, el arranque o parada de las instancias, el cambio de modo de operación de nocturno a diurno, etc.
Seleccionamos inmediato.
Ahora vamos a la transacción SM37 a buscar el resultado de la ejecución de fondo del programa.
Transacción SM37: se usa para visualizar los jobs procesados en el sistema SAP.
De cada job podemos visualizar distintos datos tales como el ID, el usuario SAP que lo ejecutó, el status (previsto, liberado, preparado, activo, terminado o cancelado), la fecha y hora de inicio, la duración y el retraso.
Jobs: son los programas o procesos ejecutados de fondo en el sistema SAP.
Vamos a dejar los campos de la pantalla inicial de la transacción SM37 cargados tal como vienen por defecto y ejecutamos la transacción haciendo clic en el botón ejecutar o presionando F8.
Ahora pasamos automáticamente a la transacción SP01. Debido a que el proceso de fondo que ejecutamos genera una salida por pantalla entonces visualizamos el icono de la lista ABAP.
Transacción SP01: conocida como "El Spool" administramos todas las solicitudes de impresión que se generen en el sistema SAP.
La creación de un programa ABAP de fondo
Como indicamos antes un programa ABAP puede ejecutarse de forma online o de fondo.
Si sabemos desde el inicio que un programa ABAP, debido a las características del requerimiento y del sistema, el programa debe ejecutarse exclusivamente de fondo, entonces el diseño y el desarrollo del programa será completamente diferente a que dicho programa se ejecuta de forma online.
Analicemos cada una de las subrutinas del evento START-OF-SELECTION del programa ZTEST_FONDO.
Vamos a crear el job.
A continuación lanzamos el job. En esta se ejecuta la sentencia SUBMIT, la cual se usa para ejecutar un programa dentro de otro programa y con el agregado de la cláusula VIA JOB NUMBER.
Con SUBMIT se pueden pasar parámetros al programa llamado, los cuales deben existir en la pantalla de selección de este.
Con el agregado de la cláusula END RETURN en la sentencia SUBMIT, el programa llamador permanece en espera mientras se ejecuta el programa llamado. Cuando el llamado termino, devuelve el control al programa llamador.
Por último cerramos el job, mediante el módulo de funciones JOB_CLOSE.
Ahora vamos a ejecutar el programa.
Ahora vamos a la transacción SM37.
Identificamos el botón Spool.
Ahora visualizamos la orden de spool.
Y ahora vemos el resultado.
 
 
 
Sobre el autor
Publicación académica de Lisimaco Prieto Herrera, en su ámbito de estudios para la Carrera Consultor ABAP.
Lisimaco Prieto Herrera
Profesión: Ingeniero de Sistemas - Colombia - Legajo: DV67X
✒️Autor de: 96 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Ingeniero de sistemas con amplia experiencia en el desarrollo de software para el sistema sap r/3 en lenguaje de programación abap.
Certificación Académica de Lisimaco Prieto