¿QUÉ ES UN JOB?
Un job es una herramienta que nos sirve para lanzar un programa o transacción sin nuestra intervención directa. A esto también lo llamamos lanzar un programa o transacción en proceso de fondo.
VENTAJAS DE LOS JOBS O ¿POR QUÉ DDEBEMOS LANZAR UN PROGRAMA EN PROCESO DE FONDO?
- Podemos ejecutar nuestro programa a una fecha y hora en la cual no vamos a estar delante de nuestro ordenador.
- No bloqueamos ningún proceso de diálogo ya que los procesos de fondo sólo utilizan procesos BTC. Por lo tanto, el resto de usuarios que trabajan en diálogo no se ven ” afectados.
- Si el tiempo de ejecución de nuestro programa es muy largo SAP no nos vuelve a lanzar fuera con un mensaje de timeout. Es decir, podemos ejecutar programas de horas y horas de duración y vamos a poder ver los resultados igualmente.
FORMAS DE LANZAR LOS JOBS
- Directamente desde el programa o transacción
- Jobs programados a través de la transacción SM36
LANZAR UN JOB DIRECTAMENTE DESDE UN PROGRAMA O TRANSACCIÓN
Solamente podemos crear jobs en aquellos programas o transacciones que soporten la funcionalidad Ejecutar en proceso de fondo. En principio, todos los reports pueden ser lanzados en proceso de fondo.
En este caso vamos a ir a la transacción AFAB (utilizada para contabilizar amortizaciones de AF).
Preparamos los datos que queremos ejecutar:
Para lanzar este programa en proceso de fondo nos dirigimos a:
Nos aparecerá un popup o pantalla de ‘Parámetros para impresión de fondo:
Aquí podemos informar el dispositivo de salida, es decir, la impresora sobre la que queremos que se imprima el resultado en el campo Dispositivo de salida.
Si queremos especificar atributos adicionales en la impresión pulsamos en ‘Atributos’:
Podemos indicar, por ejemplo, que cuando el job termine se imprima directamente o bien que nos lo deje en nuestra lista de SPOOL, darle un título… entre muchas otras opciones. En este ejemplo, no tocaremos nada, así que pulsamos aceptar y navegaremos a otra pantalla:
En esta pantalla de ‘Fecha de inicio’ podemos indicar como queremos que se lance el job:
- Inmediatamente: El job se lanzará en el mismo momento en que verifiquemos.
- Especificar una fecha y hora en concreto: Podremos especificar el momento exacto en que queremos que se ejecute nuestro job.
- Tras un job: Podemos indicar que se ejecute exactamente justo al finalizar ‘x’ job. Incluso podremos indicar que solo se ejecute en caso de que el job predecesor tenga status ‘Finalizado con éxito’.
- Según calendario: Podemos lanzar el job según ciertas características preestablecidas en nuestros calendarios (os dejo link de configuración de calendarios)
Una vez definido la forma de lanzamiento grabamos y el job se lanzará o se programará.
En este caso lo lanzaremos de forma inmediata:
Para revisar como ha ido la ejecución del job ingresaremos en la transacción SM37, en dónde nos encontramos con la siguiente pantalla:
En esta pantalla podemos buscar Jobs por los siguientes conceptos:
- Job: Nombre del job.
- Nombre usuario: Nombre del usuario propietario del job.
- Status del job: Previsto / Liberado / Prep. / Activo / Terminado / Cancelado.
- Por fechas y hora.
- Tras evento: Nombre del evento del que depende o está concatenado el job o Jobs que buscamos.
- Programa ABAP: Programa que está ejecutando o ha ejecutado el job que estamos buscando.
En este caso filtraremos únicamente por fecha y nombre usuario y este es el resultado:
Como veis el job ha sido terminado con éxito:
Podemos ahora ir al log del job:
Y nos mostrará lo siguiente:
Como veis nos aparece un mensaje de ‘No existen datos…’ esto es debido a que no tengo configurados Activos Fijos para la sociedad ‘COIT’.
PROGRAMAR UN JOB DESDE LA TRANSACCIÓN SM36
Accedemos a la transacción SM36 y nos aparece la siguiente pantalla:
Lo primero que debemos hacer es darle nombre a nuestro job:
Ahora pulsamos en el botón ‘Paso’:
Y accedemos a esta pantalla:
Aquí lo que debemos hacer es definir:
- Usuario:
- Nombre del programa: Programa que queremos ejecutar. En este caso RAPOST2000 (Transacción AFAB)
- Variante: con la que queremos ejecutar en proceso de fondo dicho programa.
- Idioma.
En este caso:
Al final de este manual veremos cómo crear variantes.
Verificamos y guardamos:
Ya tenemos el primer paso de nuestro job creado:
Para introducir un segundo paso pulsamos en crear:
Se nos abre la misma pantalla que en el paso anterior e informaremos lo siguiente:
Si os fijáis estamos ejecutando el mismo programa, pero con una variante distinta. Podríamos poner como segundo paso un programa distinto al del primer paso, pero en este ejemplo utilizaremos el mismo programa. La variante ‘COIT-1’ está lanzando la transacción AFAB para la sociedad COIT a periodo 1 y la transacción ‘COIT-2’ está lanzando la AFAB para la sociedad COIT a periodo 2.
Verificamos y guardamos:
Y ya tenemos dos pasos creados para nuestro job:
Ahora solo nos faltaría volver para atrás y configurar la condición de Inicio:
Accedemos a la siguiente pantalla:
En este caso lo que vamos a hacer es programar el job de forma diferente:
Como veis fijamos condición ‘Fecha/Hora’ y configuramos el inicio a 06/11/2021 a las 21:20:00h. Además, seleccionamos el check de ‘Ejecutar job periódicamente’ (para ejecutar este mismo job cada ‘x’ tiempo).
Para programar cada cuanto tiempo debe lanzarse este job pulsamos en ‘valores de período’:
Y establecemos que se ejecute cada mes.
Verificamos y guardamos y ya tenemos nuestro job creado.
Ahora accedemos a la transacción SM37 y filtramos con el siguiente filtro de selección:
Corroboramos que el job está creado y en estado liberado:
Si vamos a los detalles:
Corroboramos que está previsto para el 06/11/2021 a las 21:20:
Esperamos a la fecha y hora fijada y volvemos a ver el status del job:
Como veis el job se ha ejecutado a las 21:20:49 y está en ‘status’ terminado.
Accedemos al log del job:
Aunque no existen datos correspondientes a la selección (como hemos comentado anteriormente, en la sociedad COIT no tenemos configurados AF) los 2 pasos del job se han lanzado consecutivamente con las variantes seleccionadas.
Ahora si recordáis habíamos fijado este job para que se ejecutase mensualmente, vamos a ver como esta previsto el job, para ello volvemos a la pantalla inicial de la transacción SM37 y filtramos:
Resultado:
Este job se ejecutará cada mes a día 6 y hora 21:20:00.
CREAR VARIANTES
Cuando hablamos de variantes nos referimos a una imagen fija de la pantalla de selección de una transacción o programa de modo que podemos introducir los valores (o filtrados) en dicha pantalla y grabar dicha disposición para no tener que volver a establecerlos en cada ejecución.
Para crear una variante accedemos a la transacción SE38:
Introducimos el programa sobre el que queremos crear o modificar una variante y pulsamos en ‘variantes’:
Navegaremos a la siguiente pantalla:
Aquí debemos darle un nombre a la variante y pulsar en ‘crear’:
Navegaremos a la pantalla de selección del programa/transacción:
En donde simplemente tendremos que rellenar los criterios de selección y grabar la variante:
Esperamos que os haya sido de utilidad, en un futuro entraremos en detalles más concretos y avanzados de la configuración de Jobs.
Para ver más posts de SAP, consulta nuestro listado completo aquí.
Para acceder a nuestros cursos de SAP, podéis consultar este listado.
Para descargar los mejores manuales de SAP, acceder al siguiente enlace.
También os dejamos nuestro canal de Youtube en el que podréis encontrar más contenido.
Great post