✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
Unidad 4: Subrutinas, Funciones y Batch.
Lección 7: Batch.
1.- Ejecución en fondo.
Hasta ahora hemos ejecutado los programas online. Este tipo de ejecución genera los resultados de manera inmediata siendo esto útil en aquellos programas en que hay una interacción con el usuario o el tiempo de ejecución es rápido.
Esto no siempre es así en un sistema real por diferentes circunstancias. Entre ellas un gran volumen de datos a tratar o ejecución de múltiples transacciones. En estos casos hay que proceder a la ejecución Batch o en fondo del programa.
Hay que analizar con detenimiento que forma de ejecución interesa para el programa pues hay muchos elementos de la programación del mismo que varían. Por ejemplo es inútil programar elementos de interactividad en un programa de ejecución batch.
En la programación batch siempre hay un programa lanzador del job asociado y un programa que realiza la tarea deseada. El procedimiento sera siempre el mismo:
- Creamos un programa lanzador.
En el mismo tendremos una variable en que almacenaremos el nombre que determinemos para nuestro job a efectos de identificarlo luego. Tendremos en dicho programa una subrutina en la que se llamara a la función estándar JOB_OPEN. Esta subrutina creeará el job.
- Una vez creado el job hay que lanzarlo usando para ello la sentencia SUBMIT <nombre programa hijo> VIA JOB <nombre job> NUMBER <variable contador> AND RETURN.
Mediante la cláusula AND RETURN el programa llamador permanece en espera de respuesta. Es decir del final de la ejecución del programa llamado.
La sentencia SUBMIT puede pasar parámetros al programa llamado. Los parámetros que se pasen deben estar definidos correctamente en la pantalla de selección de datos del programa llamado.
- Una vez recuperado el control por el programa llamador debemos cerrar el job. Para ello crearemos en el programa llamador una subrutina que llamará a la función JOB_CLOSE. Si todo ha ido bien enviaremos un mensaje indicando que podemos ver el resultado mediante la transacción SM37. Si no daremos un mensaje de error.
- En la transacción SM37. Podemos buscar nuestro job por el nombre que le dimos y/o el usuario que lo ejecutó. En muchos casos este usuario es un usuario de sistema fijado por los administradores del mismo. También podemos filtrar por el status del job (planeado, liberado, listo, activo, terminado o cancelado.
Identificado el job que nos ocupa lo marcamos i pulsamos el botón SPOOL. Donde veremos una entrada el el spool correspondiente a la ejecución de nuestro programa. Marcándolo y pulsando el icono de visualizar podremos ver el resultado de la ejecución.
Si el programa debe ejecutarse tanto online como batch según las circunstancias. En estos casos generaremos un solo programa tenga en su pantalla de selección un radio butón con las opciones batch y online y en función de la opción marcada se ejecutara de un modo u otro.
 
 
 
Sobre el autor
Publicación académica de Francisco Compte Sanchez, en su ámbito de estudios para la Carrera Consultor ABAP.
Francisco Compte Sanchez
Profesión: Sap Business&integration Architect - España - Legajo: QQ38S
✒️Autor de: 105 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Consultor sap mm y sd con algún conocimiento abap a nivel de debug. quiero consolidar conocimientos técnicos para reforzar mi perfil profesional.
Certificación Académica de Francisco Compte