
Los conceptos del procesamiento de fondo
El procesamiento de fondo permite ejecutar programas o procesos sin interacción del usuario. Al lanzarlos, SAP devuelve el control al usuario mientras el programa continúa ejecutándose en segundo plano.
Se utiliza principalmente para procesos de larga duración, evitando que las transacciones online queden bloqueadas o tengan tiempos de espera excesivos. Esto mejora el rendimiento del sistema, ya que estos procesos pueden ejecutarse con menor prioridad.
Lo recomendable es ejecutar procesos de fondo en horarios de baja actividad, como durante la noche, siempre que los datos no sean necesarios en tiempo real. La empresa debe decidir que procesos pueden esperar y cuales requieren ejecución inmediata.
Los Jobs
Un job es el conjunto de uno o más programas o transacciones que se lanzan consecutivamente de un proceso de fondo.
Para crear un job utilizaremos la transacción estándar SM36.
La definición de un job tiene tres áreas principales:
· Información general
· Hora de inicio o evento de ejecución
· Pasos
Lo primero que debemos hacer es asignarle un nombre que defina el propósito que tiene el job. Este nombre no es único, lo que significa que podemos crear varios Jobs con el mismo nombre. Esto ocurre porque SAP asigna un número interno a cada job para diferenciarlos, pero esa clave no es visible para el usuario, por lo que normalmente nos referiremos al job por su nombre.
Otro dato importante es la clase de job, que indica a SAP la prioridad de ejecución de los procesos y permite asignar los recursos adecuados según su importancia.
Las clases posibles son:
· Clase A: Prioridad más alta. Se utiliza para procesos críticos para el funcionamiento del sistema.
· Clase B:Prioridad media. Se utiliza para procesos periódicos que aseguran el mantenimiento del sistema.
· Clase C:Prioridad normal. Es la clase habitual asignada a los jobs de usuario.
La hora de inicio o evento
Una vez definidas las características generales del job, debemos indicar cuando debe ejecutarse. SAP permite diferentes formas de inicio:
· Ejecución inmediata:permite iniciar el job en el momento en que finaliza su definición.
· Ejecución por fecha y hora: se establece un día y una hora específica para que comience el job. También permite marcarlo como periódico, haciendo que se ejecute automáticamente en intervalos definidos. Esta opción es utilizada habitualmente para jobs de mantenimiento o recolección de estadísticas.
· Por job: permite encadenar jobs entre sí. Un job puede comenzar cuando finalice otro previamente definido. También se puede establecer que solo se ejecute si el job anterior termino correctamente; si el primer job se cancela, el siguiente no se ejecutara.
· Por evento: el job comienza cuando ocurre un evento determinado en el sistema SAP. Los eventos pueden generarse automáticamente por el sistema o manualmente por un usuario, siempre que estén previamente definidos. SAP incluye eventos estándar como el arranque o parada de instancias y cambios de modo de operación.
Los pasos de un job
Son las acciones que ejecutara el job. Estan compiestos por los programas o comandos que se procesaran.
Tipos de programas/comandos
· Programa ABAP (estándar o propio): ejecuta un programa SAP utilizando una variante con los parámetros de selección.
· Comando externo: ejecuta un comando en el sistema operativo del servidor de aplicaciones.
· Programa externo: ejecuta un programa ubicado en otro sistema distinto de SAP, generalmente para integrarse con otros sistemas.
Funcionamiento de los pasos:
Los pasos de un job forman un único proceso. Si un paso falla o se cancela, los pasos siguientes no se ejecutan. Es decir, existe dependencia entre los pasos.
El análisis de un job
Una vez definido, el job puede analizarse y monitorearse mediante la transacción SM37.
Información que muestra:
· Id del job
· Usuario que lo ejecuto
· Estado (previsto, liberado, preparado, activo, terminado o cancelado)
· Fecha y hora de inicio
· Duración
· Retraso
Criterios de selección
Como pueden existir muchos Jobs, la búsqueda se realiza principalmente por:
· Nombre del job
· Usuario creador
· Fecha y hora de inicio
· Estado actual
Los estados de un job
Son las distintas situaciones por las que puede pasar un job desde su creación hasta su finalización.
· Previsto: Estado inicial. El job está definido, pero aún no tiene condiciones de inicio, por lo que no se ejecutara hasta ser liberado o configurado.
· Liberado: El job está listo para ejecutarse cuando se cumpla la condición de inicio definida.
· Preparado: Se cumplieron las condiciones de inicio y el job espera que haya recursos disponibles para ejecutarse. Este estado suele verse solo cuando el sistema está muy cargado.
· Activo: El job se esta ejecutando. Desde este momento puede consultarse su log.
· Terminado: El job finalizo correctamente.
· Cancelado: El job termino con errores. La causa puede consultarse en el log del job.
Las operaciones sobre jobs:
Son las acciones que pueden realizarse sobre un job desde la transacción SM37 para administrar su estado, ejecución o configuración.
· Verificar status: Comprueba que el estado mostrado en SAP coincida con el estado real del job en el sistema operativo.
· Cancelar job activo: Detiene la ejecución de un job y lo deja en estado cancelado.
· Borrar: Elimina un job terminado o cancelado de la lista.
· Liberado/previsto: Revierte un job liberado al estado previsto, evitando su ejecución sin tener que recrearlo.
· Copiar: Crea una copia de un job para ejecutarlo nuevamente.
· Modificar: Permite cambiar la definición de un job mientras aun no haya comenzado a ejecutarse.
· Repetir previsión: Crea una copia del job y solicita nuevos datos de inicio para programarla.
· Trasladar a otro servidor: Cambia el servidor de aplicaciones donde se ejecutara un job que aún no está activo.
· Capturar job activo: Abre el depurador (Debugger ABAP) para analizar la ejecución de un job activo.
· Detalles del job: Muestra información técnica del job, como el servidor de aplicaciones y la cola BTC en la que se esta ejecutando.
NOTA: La transacción SM51 permite visualizar los servidores de aplicaciones SAP y monitorear los procesos que se ejecutan en cada uno.