✒️ABAP La ejecución de fondo
ABAP La ejecución de fondo
BATCH
1 Ejecución de Fondo
Existen dos formas de ejecutar un programa en ABAP: Online y Batch. En la ejecución Online o de Diálogo, 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 corto.
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 tiene gran cantidad de registros, a la ejecución de múltiples transacciones o a otras varias razones.
Para estos casos mencionados, será conveniente la ejecución Batch o de fondo.
Audio: Es sumamente importante analizar previamente a la realización de la programación de un requermiento en ABAP, si el programa que debemos realizar se ejecutará de forma online o bien de fondo o batch. Esto se debe a que cambiará no solo la forma de ejecución del programa, sino también en la forma en la cual este será programado. Por ejemplo, en ABAP se utilizan los BATCH-INPUT que es una técnica muy utilizada para realizar cargas de datos en el sistema. SI la ejecución se va a realizar en batch o de fondo, entonces las sentencias que se ejecutarán difieren totalmente de las sentencias que serán necesarias para ejecutar el mismo proceso de forma online.
Otro ejemplo de esto son los programas de reportes. 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 reportes como las ALV, las cuales le brindan al usuario la oportunidad de interactuar con las herramientas en los distintos listados, ya que no podrá interactuar con ellas, por lo tanto la programación cambiará totalmente.
Como consejo, es muy recomendable dedicarle el tiempo necesario de análisis previo al 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 tras haber realizado y probado el requerimiento.
Vemos paso a paso cómo ejecutar un programa de fondo. Supongamos que tenemos el programa ABAP ZPRUEBA_FONDO_B que obtiene los registros de la tabla ZTABLA_USUARIOS y los imprime por tantalla.
<< imagen 1.1 >>
A continuación creamos un nuevo programa ABAP ZPRUEBA_FONDO el cuál 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:
<< imagen 1.2 >>
Lo siguiente es lanzar el Job. Para esto creamos la subrutina LANZAR_JOB que ejecutará la sentencia SUBMIT, la cual se utiliza para ejecutar un programa dentro de otro progama, y con el agregado de la cláusula VIA JOB NUMBER la ejecución del programa se realizará de fondo:
<< imagen 1.3 >>
Con 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.
=> Mediante la sentencia SUBMIT se pueden pasar parámetros al programa llamado, los cuáles deben existir en la pantalla de selección de este.
A continuación crear la subrutina CERRAR_JOB, la cual se encargará de cerrar el Job mediante la función JOB_CLOSE:
<< imagen 1.4 >>
Después de cerrar el Job, imprimimos por pantalla el mensaje: "Se lanzó el Job, para visualizarlo ir al a transacción SM37".
Al ejecutar de forma online el programa ZPRUEBA_FONDO, veremos en la pantalla el mensaje que nos indica que se lanzó el job y que lo revisemos en la transacción SM37,
Accedemos por tanto a la transacción SM37, y indicando nuestro usuario y la fecha de lanzamiento del job, pulsamos el botón "Ejecutar".
<< imagen 1.5 >>
La transacción SM37 se utiliza para visualizar los jobs procesados en el sistema SAP. De cada job se pueden visualizar diferentes datos 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.
<< imagen 1.6 >>
Localizamos el job que hemos lanzado y pulsamos el botón de SPOOL para ver la salida de nuestro programa:
<< imagen 1.7 >>
Si pulsamos el botón de visualización, veremos el resultado del procesamiento, de forma que nos mostrará la salida generada por el programa, imprimiendo los datos de los usuarios de la tabla ztabla_usuarios.
Nota: En el código de ejemplo de esta unidad, podemos ver como se encadenan las llamadas a las subrutinas y la definición de variables correspondientes.
Audio: Como programadores nos puede suceder que nos soliciten el desarrollo de un programa ABAP que se ejecute tanto de forma oline como de fondo, dependiendo de las necesidades del momendo del usuario. En este caso la solución óptima al requerimiento que nos están solicitando, 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 Radiobuttons, uno para ejecución online y otro para ejecución de fondo, y le permitiremos al usuaurio del programa que elija el modo de procesamiento según sus necesidades.
 
 
 
Favorito:
Está publicación ha sido agregada a sus favoritos por: Lorena Amoretti
Sobre el autor
Publicación académica de Jos? Antonio Saavedra Rodr?guez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jos? Antonio Saavedra Rodr?guez
El Salvador - Legajo: SX28V
✒️Autor de: 166 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial