![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️SAP BASIS Los jobs de background
SAP BASIS Los jobs de background
![SAP BASIS Los jobs de background SAP BASIS Los jobs de background](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/342.jpg)
LECCION JOBS DE BACKGROUND
¿Qué es el procesamiento en Background o de fondo?
El procesamiento en background debería esencialmente separar tarea periódicas y que insumen mucho tiempo de aquellas de interaccion de usuarios. Tareas que requieran mucho tiempo y ocuparían un work process en dialogo pueden ser secuencialmente procesadas en background sin afectar la performance de dialogo.
Un requisito importante para conseguir este objetivo es un dimensionamiento apropiado del sistema, ya que, demasiados procesos de background podría terminar compitiendo por recursos compartidos con procesos de dialogo (memoria principal, CPU).
Los programas que deban ejecutarse regularmente y consuman mucho tiempo son planificados como Jobs de background en el sistema SAP. El administrador planifica los Jobs de background y monitorea la correcta ejecución de los mismos.
1.- FUNDAMENTOS:
Las siguientes preguntas responderemos en esta lección:
· Porque necesitamos procesamientos background?
· Que es un job de Background?
· Que podemos realizar en Background?
· Que condiciones de inicio existen?
· Como son planificados y monitoreados los Jobs?
· Que estado puede tener un job?
Work process de dialogo debería estar disponibles para responder a las solicitudes de los usuarios rápidamente. Los recursos de dialogo deberían por lo tanto no ser utilizados para ejecuciones prolongadas ya que pueden provocar cuellos de botella en el tiempo de respuesta del dialogo.
El parámetro rdisp/max_wprun_time existe por este motivo justamente. Limita el máximo tiempo de ejecución de un paso de dialogo en un work process de dialogo.
TRX RZ11 : Es utilizada para la visualización de parámetros del sistema y la modificación de los que el sistema permita editar sin reinicio de instancia.
Esto debería asegurar que los procesos de dialogo no sean bloqueados por programas que requieran demasiado tiempo de ejecución, interfiriendo la operación online. Luego de que el máximo tiempo se ha superado, el programa es terminado.
Nota: la manera en que el parámetro rdisp/max_wprun_time funciona esta descrito en la nota de SAP 25528.
Podemos utilizar los procesos de background para tareas que consuman mucho tiempo. Tambien se conocen estos como procesos de batch.
Normalmente, los procesos de background no se utilizan solamente para ejecuciones largas, sino que también para tareas repetitivas. Ejemplos de estas son los backups diarios de base de datos o los cierres de mes financieros y contables.
Un job de background consiste de uno o mas pasos. Un paso puede ser:
· Un programa ABAP
· Un comando externo
· Un programa externo
Cada Job se procesa sin interrupciones por un único background work process. Los Jobs de background puede ser planificados con diferentes prioridades:
· Clase A (Prioridad Alta)
· Clase B (Prioridad Media)
· Clase C (Prioridad Normal)
Si un job es planificado para ser ejecutado en un servidor particular o un grupo de servidores, este tendrá preferencia con respecto a otros Jobs de la misma clase. Esta preferencia solamente aplica si multiples Jobs con la misma prioridad solicitan el procesamiento background al mismo tiempo, por ejemplo, porque se planificaron para que se ejecuten a la misma hora.
Nota: deberíamos asegurarnos que la mayor parte de los Jobs de background sea planificados con prioridad normal, clase C, sin especificaciones de servidor de ejecución.
Esto debería aplicar para el 90% o mas de todas las tareas background
Un paso dentro de un job puede ejecutar una de estas tres acciones:
· Un programa ABAP puede planificarse como un paso de un job. Si el programa ABAP tiene una o mas pantallas de selección, tendremos que crear las entradas previamente en una variante. Una variante hace posible ejecutar un programa ABAP en background aunque el programa requiera valores de entrada.
Los valores almacenados en la variante son luego utilizados durante la ejecución del programa. Si un programa ABAP tiene una pantalla de salida como resultado, esto es dirigido a una lista de spool.
Podriamos también especificar un recipiente de email para esta lista de spool durante la definición del job.
Debemos especificar una impresora para la creación de la lista de spool, aunque no necesariamente tenga que ser impreso en un dispositivo de salida como resultado del procesamiento de background. Esto por ejemplo podría hacerse posteriormente.
· Un comando externo es un llamado a un script predefinido, un comando, o un programa a nivel del sistema operativo. Con comandos externos, podemos enmascarar llamadas al sistema operativo y guardarlos en el sistema SAP bajo un nombre. Podemos usar también el concepto de autorización de SAP para proteger la ejecución de un comando externo. Esto permite que podamos determinar que usuarios están permitidos a ejecutar que comando externos (sobre que servidores y/o sistemas operativos).
· Un programa externo es un comando del sistema operativo. El concepto de autorización de SAP solamente especifica si un usuario puede llamar un programa externo o no. Una asignación mas detallada de autorizaciones, por ejemplo a nivel de los nombres de programas, no es provista con la ejecución de programas externos. Utilicemos comandos externos para esto.
Un job puede ser iniciado:
· Mediante la planificación en una fecha y hora particular (esto incluye el inicio inmediato, si no hay background work process libres disponibles al momento en que debe iniciar el job según planificación).
· Mediante la ocurrencia de un evento particular definido en el sistema SAP. Esto incluye Jobs que se iniciaran luego de la finalización de otros Jobs o en los cambios de modo de operación o Jobs con inicio inmediato si existen background work process libres al momento.
2.- PLANIFICACION Y MONITOREO
Podemos utilizar la TRX SM36 para definir nuevos Jobs. Puedes también llamar el Asistente de Job, TRX SM36WIZ o desde la TRX SM36 tambien.
TRX SM36 y SM36WIZ : son utilizadas para la creación de Jobs tanto estándar como propios, permitiendo definir mas de un paso de ejecución en cada uno.
Las especificaciones que requiere la definición de un job son:
· Especificaciones generales tales como nombre de job, prioridad del job (por defecto: C) y opcionalmente un servidor de ejecución o grupo.
· Definicion de uno o mas pasos
· Definicion de una condición de inicio (de tiempo o controlada por evento)
El asistente de job nos ayuda en la creación del job guiándonos de manera fácil a través del proceso de creación.
El método de creación de un jpb de background (clásico o mediante el Asistente de Job) no tiene incidencia en el resultado. Algunas funciones (especificar el usuario SAP en la difinicion del paso de Job, modificación del orden de ejecución de los pasos) no están disponibles para el asistente de job.
TRX SM37: Nos permite monitorear los Jobs. Podemos seleccionar los Jobs utilizando diversos criterios en la pantalla inicial de esta trx. Algunas opciones serian visualizar los Jobs que contienen un paso determinado, que tienen un estado particular o que reaccionan a un evento definido.
Luego de que seleccionamos Execute, una vista de job aparece que es creada por el visor de listas de SAP (SAP List Viewer: ALV). Seleccionando el menú Setting podemos determinar las columnas que se mostraran y el orden, entre otras cosas. Podemos también configurar si será el diseño (layout) estándar para el usuario actual o todos los usuarios.
Para el análisis de Jobs, una columna que no se visualiza por defecto y es importante, es la columna de servidor de ejecución. Muchas veces algún problema en la ejecución de un job puede estar relacionado al servidor de aplicación donde se ejecuta.
Podemos también navegar a otras vistas especificas del job desde la visualización de job mostrada en la figura:
Lista de spool contiene las listas de salida de los programas de ABAP (si es que existen)
Detalle del job contiene, entre otras cosas, información sobre la definición de job, duración del procesamiento del job y la fecha y hora de inicio del job.
Todos los mensajes de salida por un programa de background son almacenados en el log del job. Podemos visualizar el log para obtener información sobre un programa que finalizo con error o para realizar una investigación detallada sobre la ejecución de un job de background.
Un job puede tener los siguientes estados:
· Planificado (Scheduled): Los pasos que requieran la creación del job han sido definidos ya, de todas formas la condición de inicio aun necesita ser definida.
· Liberado (Released): El job ha sido completamente definido, incluyendo la condición de inicio. Un job no puede ser liberado sin una condición de inicio. Solamente un administrador o un usuario con las autorizaciones necesarias para el procesamiento de background puede liberar un job. Esto asegura que usuarios sin autorización no pueden ejecutar Jobs sin aprobación.
· Listo (Ready): La condición de inicio de un job liberado se ha cumplido. Sin embargo el job se encuentra en la cola de espera por un work process de background libre.
· Activo (Active): El job esta siendo ejecutado y no puede ser borrado ni modificado. Si un job activo no se ejecuta normalmente, por ejemplo, demora mucho mas del tiempo normal, podemos analizar el job en modo de depuración. Luego podemos finalizar el job definitivamente o liberarlo nuevamente. Para esto, en la trx SM37, seleccionamos JobàCapture :active job.
Nota : para capturar un job de background, debemos iniciar sesión en el servidor SAP donde el job esta corriendo.
· Finalizado (Finished): todos los pasos del job fueron ejecutados sin problemas.
· Cancelado (canceled): El job finaliza anormalmente, esto puede suceder de dos maneras:
El administrador deliberadamente termina el job en la trx SM37 mediante la selección JOBà CANCEL active job.
Un paso del job termino con error.
Podemos modificar un job mientras este tenga los estados Planificado o liberado. Si la ejecución de un job ya ha comenzado, podemos monitorear el procesamiento en el log del job. Si el job tiene programas ABAP que crean listas de salida, estas se almacenan en las listas de spool.
Podemos crear un nuevo job copiando otro existente. Desde el menú selecciona Jobà Copy.
 
 
 
Sobre el autor
Publicación académica de Patricia Tatiana Aros Lopez, en su ámbito de estudios para la Carrera Consultor Basis NetWeaver.
Patricia Tatiana Aros Lopez
Profesión: Analista de Sistemas Informaticos - Chile - Legajo: ZC88E
✒️Autor de: 105 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Patricia Aros