✒️SAP BASIS Los jobs de background
SAP BASIS Los jobs de background
¿Que es el procesamiento en background o de fondo?
Se utiliza fundamentalmente para separar tareas periodicas que consumen mucho tiempo de aquellas de interaccion de usuarios. Las tareas que requieran mucho tiempo y ocuparan un work process de dialogo se pueden procesar secuencialmente en background sin afectar el rendimiento de dialogo.
Es importante hacer un correcto dimensionamiento del sistema ya que demasiados procesos de background podrian terminar compitiendo por recursos compartidos con procesos de dialogo.
Los programas que deban ser ejecutados regularmente y consuman mucho tiempo son planificados como jobs de background en SAP.
1) Fundamentos:
Los recursos de dialogo deben estar disponibles y no ser usados para ejecuciones prolongadas ya que pueden provocar cuellos de botella.
El parametro rdisp/max_wprun_time existe por este motivo. Limita el maximo tiempo de ejecucion de un paso de dialogo en un work process de dialogo.
Esto asegura que los procesos de dialogo no sean bloqueados por programas que requieren mucho tiempo de ejecucion, luego de que el tiempo maximo se ha superado el programa es terminado.
Las tareas que consumen mucho tiempo se conocen como procesos de batch.
Los procesos de background tambien se usan para tareas repetitivas como backups darios de la BD o cierres de mes financieros y contables.
UN JOB ES PROCESADO EN UN UNICO WORK PROCESS DE BACKGROUND, el job contiene uno o mas pasos, un paso puede ser: Un programa ABAP, un comando externo o un programa externo.
Un job de background se puede planificar con diferentes prioridades:
- Clase A: Prioridad alta
- Clase B: Prioridad media
- Clase C: Prioridad normal
Un job es que es planificado para ser ejecutado en un servidor particular o grupo de servidores tendra preferencia con respecto a otros jobs de la misma clase, dicha preferencia aplica unicamente si varios jobs con la misma prioridad solicitan el procesamiento en background al mismo tiempo.
La mayoria de jobs de background deberian ser de clase C sin especificacion de servidor.
Un paso dentro de un job puede:
- Planificarse como un programa ABAP. En caso de que el programa ABAP tenga una o mas pantallas de eleccion podremos crear las entradas en una variante, estos valores almacenados alli se usan en la ejecucion del programa, si el programa ABAP tiene una pantalla de salida como resultado esta se dirige a una lista de spool, un recipiente de email para esta lista de spool y ademas aunque no vayamos a imprimir en un dispositivo de salida debemos especificar una impresora.
- Comando externo: es un llamado a un script predefinido,, comando o programa a nivel de sistema operativo. Con ellos podremos enmascarar llamadas al SO y guardarlos en SAP bajo un nombre. Podremos autorizar a ciertos usuarios a ejecutar comandos externos.
- Programa externo: es un comando del SO. La autorizacion SAP solamente especifica si un usuario puede llamar a un programa externo o no. Con la ejecucon de programas externos no es provista una asignacion mas detallada de autorizaciones
Un job puede ser iniciado:
- Mediante la planeacion en una fecha y hora particular (inicia inmediatamente incluso si no hay background processes libres )
- Mediante la ocurrencia de un evento definido en SAP. Por ejemplo jobs que se iniciaran luego de la finalizacion de otros jobs o en los cambios de modo de operacion o si hay background work processes libres al momento.
2) Planificacion y monitoreo:
Transaccion SM36 y SM36WIZ: Creacion de jobs tanto standar como propios, permitiendo definir mas de un paso de ejecucion en cada uno.
Las especificaciones que requiere la definicion de un job son:
- Especificaciones generales como nombre de job, prioridad y opcional un servidor o grupo de servidores de ejecucion.
- Definicion de uno o mas pasos
- Definicion de una condicion de inicio
El metodo que se use para la creacion de un job de background no incide en el resultado.
SM37: Monitoreo de jobs.
Luego de ejecutar podremos ver las diferentes listas, para el analisis de jobs es importante ver la columna de servidor de ejecucion.
Lista de spool contiene las listas de salida de los programas ABAP si existen.
Estados de un job:
- Scheduled: Los pasos que requieren la creacion del job han sido ya definidos, sin embargo la condicion de inicio aun necesita ser definida.
- Released: El job se ha definido ya completamente incluyendo la condicion de inicio. Solo el administrador o un usuario con privilegios necesarios para procesamiento de background pueden liberar un job.
- Ready: La condicion de inicio de un job liberado se ha cumplido, ahora está en la cola de espera por un work process de background libre.
- Active: El job ya se está ejecutando y no puede ser borrado ni modificado. Si hay algun fallo podemos ejecutar el modo de depuracion y luego finalizarlo o liberarlo nuevamente. DEBEMOS iniciar sesion en el servidor donde está corriendo el job y usar SM37.
- Finished: Todos los pasos del job se ejecutaron sin problema.
- Cancelled: El job finaliza anormalmente, bien sea porque el administrador termina el job en SM37 o un paso del job termino con error.
PODEMOS MODIFICAR UN JOB MIENTRAS ESTE ESTÉ EN ESTADO PLANIFICADO O LIBERADO.
 
 
 
Sobre el autor
Publicación académica de Harrison Sebastian Martin Aldana, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Harrison Sebastian Martin Aldana
Profesión: Estudiante Ingenieria de Sistemas. - Colombia - Legajo: NL39M
✒️Autor de: 52 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Harrison Martin