✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
La ejecuciòn de fondo
Formas de ejecuciòn de un programa ABAP
Hay dos formas de ejecutar un programa en ABAP:
Ejecuciòn online: en donde el programa se ejecuta al momento de presionar la tecla F8 o el ìcono de ejecutar y los resultados de la ejecuciòn se producen de manera inmediata, ya sea mostràndonos por pantalla o modificando las tablas bases de datos de SAP.
La ejecuciòn online es conveniente para los programas en donde se requiere interacciòn con el usuario, es decir para poder continuar con el procesamiento del programa se espera que el usuario presione una tecla o haga clic en un botòn. Tambien es adecuada su utilizaciòn cuando el tiempo de procesamiento del programa es poco.
Ejecuciòn batch o de fondo: consiste en la ejecuciòn de un proceso o programa 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 no ha acabado de ejecutarse.
Se utiliza cuando el tiempo de procesamiento de un programa es muy alto. Esto se puede deber a que el programa tiene muchos accesos a las tablas de la base de datos, que tienen millones de registros, o a otros razones.
Los resultados de la ejecuciòn de fondo de un programa ABAP 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.
En el menù Programa vamos a ver que tenemos dos formas diferentes de ejecutar el programa, la primera de forma online presionando la tecla F8 del teclado o el botòn ejecutar de la barra de herramientas del programa y la segunda presionando la tecla F9 del teclado.
Si ejecutamos de forma online el programa, presionando la tecla F8, vamos a visualizar el resultado de la ejecuciòn del programa en pantalla.
Si ejecutamos de fondo o batch el programa, presionando F9, visualizaremos la ventana de diàlogo de paràmetros para impresiòn de fondo, en donde podemos modificar distintos paràmetros de la salida como ser el dispositivo de salida, la impresora de Windows, la cantidad de impresones, entre otras configuraciones.
Vamos a hacer clic en el botòn de la tilde verde para continuar y en la siguiente pantalla vamos a ver que podemos planificar la fecha de inicio de la ejecuciòn del programa de fondo.
Anàlisis de las opciones de inicio
Inmediato: nos permite iniciar el programa de fondo en el momento de acabar su definiciòn.
Fecha/hora: deberemos indicarle un dìa y una hora en la que queramos que comience la ejecuciòn de fondo. Ademàs, podemos marcar la ejecuciòn como periòdica, que se repetirà cada cierto perìodo de tiempo.
Tras job: con esta indicaciòn de comienzo podemos encadenar la ejecuciòn de un programa de fondo con otro, es decir, indicaremos al proceso B que empiece a ejecutarse cuando finalice el proceso A. Tambièn podemos especificar que sòlo comience cuando la finalizaciòn del proceso A sea correcta, en caso de que el proceso A haya sido cancelado en mitadd de su ejecuciòn el proceso B no se ejecutarà.
Tras evento: la ejecuciòn comenzarà cuando se produzca en el sistema el evento que le indiquemos. Un eventoo es un suceso que se produce automàticamente en el sistema SAP o que podemos provocar manualmente. Previamente, el evento debe estar definido en la correspondiente tabla base de datos. SAP viene con una serie de eventos predefinidos.
Jobs: Programas o procesos ejecutados de fondo en el sistema SAP
Transacciòn SM37: Es usada 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, (previsto, liberado, preparado, activo, terminado o cancelado), fecha y hora de inicio, la duraciòn y el retraso.
Ejecutamos la transaccion SM37 presionando tecla F8.
Se visualiza la ejecuciòn del programa ZTEST_ONLINE, la cual se encuentra con status terminado. La tildamos y hacemos clic en SPOOL para visualizar la salida de la ejecuciòn de fondo.
Ahora pasamos a la transacciòn estàndar SP01. Hacemos luego clic en el ìcono de la Lista ABAP para visualizar la salida por pantalla del programa.
La transacciòn estàndar SP01 conocida como el "Spool" administra todas las solicitudes de impresiòn que se generen en el sistema SAP.
Y finalmente se visualiza por pantalla la salida de la ejecuciòn de fondo del programa ZTEST_ONLINE.
La creaciòn de un programa ABAP de fondo
Si el programa debe ejecutarse exclusivamente de fondo, entonces el diseño y el desarrollo del programa serà completamente diferente a que si dicho programa se ejecuta de forma online.
Crearemos un programa ZTEST_FONDO que cumplirà un rol de programa pade del programa ZTEST_FONDO_B, es decir primero se va a ejecutar el programa ZTEST_FONDO y luego este llamarà a la ejecuiòn del programa ZTEST_FONDO_B.
Crearemos un job. Le asignaremos un nombre a la variable V_JOBNAME y luego ejecutamos el mòdulo de funciones JOB_OPEN. Para modularizar creamos la subrutina ABRIR_JOB.
Luego hay que lanzar el job. Para esto crearemos 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 en la sentencia SUBMIT, el programa llamador permanece en espera mientras se ejecuta el programa llamado. Cuando el programa llamado termina, se devuelve el control al programa llamador.
Finalmente cerrarmos el Job mediante el mòdulo de funciones JOB_CLOSE. Para esto vamos a crear la subrutina CERRAR_JOB.
Ahora ejecutamos de forma online el programa ZPRUEBA_FONDO presionando la tecla F8 y veremos en la pantalla el mensaje "Se lanzò el Job, para visualizarlo ir a la Trx SM37".
El resultado lo visualizamos en la transacciòn SM37, allì presionamos la tecla F8.
Identificamos nuestro proceso, lo tildamos y presionamos el botòn Spool.
Ahora visualizamos la orden de spool correspondiente a nuestro programa ejecutado de fondo. Seleccionaremos la orden de spool y hacemos clic en el botòn visualizar de la barra de herramientas para ver el resultado del procesamiento.
Y al final vemos el resultado del procesamiento del job.
Tambien es posible crear un job por la transacciòn estàndar SM36.
 
 
 
Sobre el autor
Publicación académica de Ariel Martucci, en su ámbito de estudios para la Carrera Consultor ABAP.
Ariel Martucci
Profesión: Contador Publico - Argentina - Legajo: PJ45S
✒️Autor de: 78 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Un contador público de mediana edad con ganas de seguir aprendiendo carreras nuevas. estudiante avanzado de inglés, preparando mi first certificate, y al mismo tiempo involucrándome en programación.
Certificación Académica de Ariel Martucci