✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
Las formas de ejecución de un programa ABAP:
En ABAP existen dos formas de ejecutar un programa
- Ejecución online: en donde el programa se ejecuta al momento de precionar la tacla F8 o el icono de ejecutar
- Ejecución batch o de fondo: consiste en la ejecución de un procveso o programa sin interacción con el usuario, es desir, que lanzamos el proceso y el SAP GUI nos devuelve el control, auque el programa no ha acabado de ejecutarse.
Veamos un ejemplo para analizar la dos formas de ejecucion disponibles en ABAP:
Tenemos el programa ABAP ZTEST_ONLINE, el cual imprime por pantalla el registro de la tabla base de datos de usuarios ZTABLA_USUARIOS, cuyo DNI se introdusca en el select-options del campo DNI de la pantalla de selección del programa .
Para ejecutar el programa precionamos la tecla F8 o hacemos clic en el icono ejecutar. A continuación vamos a visualizar la pantalla de selección y lista para que introduscamos valores en el campo DNI y ejecutamos.
Si vamos al menú Programa vamos a ver que tenemos dos formas diferentes de ejecutar el programa, la primera de forma online precionando la tecla F8 o el botón ejecutar de la barra de herramientas del pregrama y la segunda de fondo precionando la tecla F9 del teclado.
Si ejecutamos de forma online el programa, precionando la tecla F8, entonces vamos a visualizar el resultado de la ejecución del programa en pantalla
Si ejecutamos de fondo o batch el programa, precionando la tecla F9, entonces vamos a visualizar la ventana de dialogo 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 impreciones, entre otras configuraciones posibles. Vamos 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. Analizamos cada una de las opciones de inicio:
- Inmediato: como su nombre lo indica nos permite inicioar el programa de fondo en el momento de acabar su definición.
- Fecha/Hora: deberemos indicarle una fecha y una hora en la que queremos que comience la ejecución de fondo. Además podemos marcar como periódica, es desir, cada cierto periodo de tiempo se repetirrá su ejecución
- Tras job: podemos encadenar la ejecución de un programa de fondo con otro, es desir, indicaremos al proceso B que empiece a ejecutar cuando finalice el proceso A. También podemos especificar que solo comience cuando la finalización del proceso A sea correcta, en caso que el proceso A haya sido cancelado en mitad de la ejecución el proceso B no se ejecutará.
- Tras evento: la ejecución comenzará cuando se produzca en el sistema el evento que le indicaremos.
Vamos a seleccionar la opción Inmediato ya que deseamos que la ejecución comience inmediatamente y luego hacemos clic en el botón grabar. A continuacion vamos a visualizar en la barra de estado el mensaje Previsión de job creada por el programa ZTEST_ONLINE.
Ahora bien vamos a ir a buscar el resultado de la eljecución de fondo del programa ZTEST_ONLINE a la transacción estándar SM37.
transacción SM37: la utilizamos para visualizar los jobs procesados en el sistema SAP. De cada job podemos visualizar distintos datos.
jobs: son los programas o procesos ejecutados de fondo en el sistema SAP.
A continuación vamos a visualizar la ejecución de programa ZTEST_ONLINE, la cual se cuentra con estatus terminado. la tildamos y hacemos clic en SPOOL para visualizar la salida de la ejecución de fondo.
Ahora pasamos automaticamente a la transacción estándar SP01. Debido a que el proceso de fondo que ejecutamos genera una salida por pantalla entences visualizamos el icono de la Lista ABAP. vamos hacer clic en este icono para visualizar la salida por pantalla del programa.Y finalmente visualizamos la salida por pantalla de la ejecución de fondo del programa ZTEST_ONLINE.
Transacción SP01: conocida como "El Spool" administraremos todas las solicitudes de impresión que se genera en el sistema SAP.
LA CREACIÓN DE UNPROGRAMA ABAP DE FONDO:
Para ello vamos a crear el programa ZTEST_FONDO_B, el cual obtiene los registros de la tabla base de datos ZTABLA_USUARIOS y los imprime por pantalla.
Ahora vamos a crear el nuevo programa ABAP ZTST_FONDO el cual cumplirá el rol de programa padre del programa ZTEST_FONDO_B, es decir primero se va a ejecutar el programa ZTEST_FONDO y luego este llamará a la ejecución del programa ZTEST_FONDO_B. Analizamos cada una de las subrutinas que vemos en el evento START-OF-SELECTION del programa ZTEST_FONDO.
Lo primero que vamos a hacer es crear un job. Para esto le asignamos un nombre a la variabla V_JOBNAME y luego ejecutamos el módulo de funciones JOB_OPEN. para modularidar creamos la subrutina ABRIR_JOB . Lo que sigue es lanzar el job. Para esto vamos a crear la subrutina LANZAR_JOB que ejecutara 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 realizara de fondo.
SUBMIT: mediante la sentencia se pueden pasar parametros al programa llamado, los cuales deben existir en la pantalla de selecciónde é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. Cuado el programa llamado termina, se devuelve el control al programa llamador.
Finalmente cerramos el job mediante el módulo de funciones JOB_CLOSE. Para esto vamos a crear la subrutina CERRAR_JOB y por último mostramos el mensaje " Se lanzó el job, para visualizarlo ir a la Trx SM37".
Ahora vamos a ejecutar de forma online el programa ZPRUEBA_FONDO precionando la tecla F8 y veremos en la pantalla el mensaje " Se lanzó el job, para visualizarlo ir a la Trx SM37". Vamos a visualizar el resultado en la transacción SM37 alli presionamos la tecla F8 o hacemos clic en ejecutar. Identificamos nuestro proceso, lo tildamos y presionamos el botón SPOOL. Ahora visualizamos la orden de SPOOL correspondiente a nuestro programa ejecutando de fondo. vamos a seleccionar la orden de spool y hacemos clic en el botón visualizar de la barra de herramientas para ver el resultado del procesamiento, y finalmente visualizamos el resultado del programa del job.
 
 
 
Sobre el autor
Publicación académica de Javier Miguel Angel Barcelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Miguel Angel Barcelo
Profesión: Militar - Argentina - Legajo: DQ34X
✒️Autor de: 107 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: PartTime
Certificación Académica de Javier Angel