Definición y creación de Jobs en SAP

martes, mayo 29, 2012 Publicado por: Oscar Meza



Definición de jobs
Un job es un conjunto de uno o más programas que se lanzan consecutivamente en proceso de fondo. Para crear un job utilizaremos la transacción SM36, a la que se llega a través del menú: 

Herramientas / CCMS / Jobs / Definición

Aquí se nos muestra la pantalla de jobs. La definición de un job tiene tres áreas principales:
  • Información general
  • Hora de inicio / Evento de ejecución
  • Pasos

Guía para crear el job
Información general
La información general conforma la base de la definición del job.
Primero debemos darle un nombre que defina el propósito que tiene. Este nombre no es único, lo que significa que podemos crear varios jobs que se llamen igual. Esto se produce porque SAP asigna un número interno a cada job, con el que diferencia a unos de otros, pero para nosotros esa clave es desconocida y sólo podremos referirnos al job por su nombre.
Otro dato de información general es la clase de job, que indica a SAP la prioridad de ejecución de los procesos que le enviamos y, en función de ello, asigna los recursos adecuadamente. Las clases posibles son:

A) La más alta prioridad. Se utiliza para procesos que son críticos para el funcionamiento del sistema (no se aconseja su utilización indiscriminada).
B) Prioridad media. Para procesos periódicos que aseguran el mantenimiento del sistema.
C) Prioridad normal. Es la clase normal que se asigna a los jobs de usuario.
El administrador del sistema puede decidir reservar colas de BTC específicas para los jobs de clase A de manera que nunca tenga que esperar un proceso de este tipo a que haya recursos libres para su ejecución.
Por último, tenemos la posibilidad de determinar específicamente el servidor de aplicaciones que dará curso a nuestra petición de proceso de fondo. Si no indicamos ninguna instancia por la que deba ejecutarse, entonces el sistema elegirá la primera disponible.

Hora de inicio o evento
Una vez definidas la características generales del job, tenemos que indicar cuándo debe ejecutarse. Esta indicación puede hacerse de diversas formas:
Ejecución inmediata. Como su propio nombre indica, nos permite iniciar el job en el momento de acabar su definición. 

Ejecución por fecha/hora. Deberemos indicarle un día y una hora en la que queramos que comience el job. Además podemos marcar el job como periódico, es decir, que se repetirá su ejecución cada cierto periodo de tiempo (cada día, cada 35 minutos,... ). Esta opción es muy útil para la planificación de jobs de mantenimiento o de recolección de estadísticas, de hecho, al instalar SAP, ya existen una serie de jobs de estas características.

Por job. Con esta indicación de comienzo podemos encadenar unos jobs con otros, es decir, indicaremos al job B que empiece a ejecutarse cuando acabe el job A. También podemos especificar que sólo comience cuando la finalización del job A sea correcta; en caso de que el job A haya sido cancelado en mitad de su ejecución, el job B no se ejecutará. 

Por evento. El job comenzará cuando se produzca en el sistema el evento que le indiquemos.

Pasos
Tras definir cómo y cuándo queremos que se procese el job, por último, vamos a decirle qué es lo que queremos que haga. Los pasos de un job los componen los diferentes programas que queremos que se ejecuten. Estos programas pueden ser de tres tipos:
Un programa ABAP estándar o creado por nosotros al que le indicaremos una variante que contenga los parámetros de selección de ese programa. 

Un comando externo que se ejecutará en el sistema operativo donde esté el servidor de aplicaciones que procesa el job. Este tipo de pasos son dependientes del sistema operativo, no sirven los mismos comandos para Unix que para Windows. Un ejemplo clásico es la ordenación de un fichero que ha creado un programa en un paso previo y que lo necesita otro programa de un paso posterior. 

Un programa externo que reside en otro sistema distinto a R/3. Se utiliza cuando tenemos otros sistemas de gestión distintos a SAP y necesitamos tener interfases entre ellos.
Los pasos de un job constituyen un proceso unificado, esto implica que si el primero de un job de tres pasos sufre una cancelación, ninguno de los otros dos pasos restantes se procesará. Es como si creáramos tres jobs encadenados con dependencia de status con un paso cada uno.
Lanzamiento por evento
Un evento es un suceso que se produce automáticamente en el sistema R/3 o que podemos provocar manualmente. Previamente, el evento debe estar definido en la correspondiente tabla. SAP viene con una serie de eventos predefinidos como pueden ser el arranque o parada de las instancias, el cambio de modo de operación de nocturno a diurno, etc. El administrador o los desarrolladores pueden crear otros eventos a conveniencia. Estos pueden dispararse desde programas en ejecución o pueden lanzarse manualmente a través del menú Herramientas --> CCMS --> Jobs --> Lanzar evento.


4 comentarios:

  1. Si necesitamos ejecutar el programa ABAP que ejecuta una transacción pero solo tenemos el código de la transacción ejecutamos la transacción SE93

    ResponderEliminar
  2. Una vez que se han definido los pasos de un job. ¿Hay alguna manera de distanciar en tiempo los pasos que hemos definido?
    Quiero decir que desde que termina el paso 1 a que empiece el paso 2 pasen 5 minutos.
    Muy buen aporte.

    ResponderEliminar
  3. Buenas noches,
    Yo tengo una inquietud, de donde extraigo la información para saber los job que cuanto se me demoran y hacer como una lista de la ejecución de ellos que no sea por la sm37

    ResponderEliminar
  4. Buenas noches,
    Yo tengo una inquietud, de donde extraigo la información para saber los job que cuanto se me demoran y hacer como una lista de la ejecución de ellos que no sea por la sm37

    ResponderEliminar