
Los conceptos del procesamiento de fondo
Consiste en la ejecución de un proceso o programa sin interacción con el usuario, es decir, lanzamos el proceso y el SAP GUI nos devuelve el control, aunque el programa todavía no ha acabado de ejecutarse.
Este modo de ejecución de procesos adquiere una importancia vital cuando tratamos con programas que tardan mucho tiempo en completarse.
Tradicionalmente se considera un buen tiempo de respuesta para un sistema online el hecho de que no transcurran más de dos segundos entre dos acciones del usuario sobre el programa. Parece poco probable que un usuario este esperando más de 5 minutos la respuesta del sistema sin pensar que se ha quedado bloqueado o que ha fallado el programa, por eso, cuando se prevea que un proceso va a durar más tiempo debería ser lanzado de fondo.
JOBS
Conjunto de uno o más programas o transacciones que se lanzan consecutivamente en un proceso de fondo.
Para crear un job se utiliza la transacción estándar SM36., Para definir y planificar los procesos de fondo que se definan en el sistema SAP
3 ÁREAS principales:
- Información general
- Hora de inicio o evento de ejecución
- Pasos
Lo que primero debemos hacer es dar un nombre que defina el propósito que tiene el Job. Este nombre no es unico, lo que significa que podemos crear varios jobs que se llamen actualizar estadísticas enero.
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.
Clases de Job que indican a SAP la prioridad de ejecución de los procesos que le mandamos y en función de ello asigna los recursos adecuadamente:
- A- La más alta prioridad: se utiliza para procesos que son críticos para el funcionamiento del sistema.
- B- Prioridad media: se utiliza procesos periódicos que aseguran el mantenimiento del sistema.
- C- Prioridad normal: es la clase normal que se asigna a los jobs de usuario.
Hora de inico o evento
Una vez definidas las característicasgenerales del job tenemos que indicar cuando debe ejecutarse. Esta indicación puede hacerse de diversas formas:
- Ejecución inmediata: 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., se puede marcar job periódico de manera que se repitirá la ejecución cada cierto período de tiempo.
(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: Podemos encadenar unos jobs con otros, indicaremos al job B que empiece a ejecutarse cuando finalice el job A. 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 indiquemos.
Evento= suceso que se produce automáticamente en el sistema SAP o que podemos provocar manualmente.
PASOS DE UN JOB
Habiendo definido cómo y cuando queremos que se procese el job, 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:
- ABAP estándar o creado por nosotros al que le indicaremos una variante que contenga los parámetros de selección de ese programa.
- Comando externo que se ejecutará en el sistema operativo donde este el servidor de aplicaciones que procesa el job.
- Un programa externo que reside en otro sistema distinto a SAP se utiliza cuando tenemos otros sistemas de gestión distintos a SAP y necesitamos tener interfaces entre ellos.
Los pasos del job constituyen un proceso unificado, si el primero de un job de 3 pasos sufre una cancelación, ninguno de los otros dos pasos restantes se procesará., Es como si crearamos tres jobs encadenados con dependencia de status con un paso cada uno.
EL ANÁLISIS DE UN JOB
Una vez definido completamente el job podemos analizar y monitorizar su situación a tráves de la transacción SM37 (Transacción estándar para visualizar los jobs procesados en el sistema SAP., de cada job podremos visualizar distintos datos tales como el ID, el usuario SAP que lo ejecutó, el status previsto, liberado, preparado, activo terminado o cancelado), la fecha y hora de inicio, la duración y el retraso.
Inicialmente tendremos que introducir los criterios de selección de los jobs que queremos analizar porque pueden existir cientos de jobs definidos en un momento dado y nosotros estaremos interesados en unos pocos.
La selección se hace principalmente por nombre del job, usuario creador del job, fecha y hora de comienzo y estado actual en el que se encuentra.
Una vez introducidos los datos y tras pulsar enter veremos la siguiente pantalla:
(RESUMEN DE JOBS) es un listado de jobs con los diversos datos sobre ellos.
La información que más nos interesa es el estado en el que se encuentran.
ESTADOS DE UN JOB
Una vez definido un job lo que nos interesa conocer en todo momento su estado.
Los posibles estados en los que se puede encontrar un job son los siguientes:
- Previsto: estado inicial, se encuentra cuando hemos definido los datos generales y los pasos del job, no se ejecutará a menos que lo liberemos o modifiquemos la selección de datos de inicio.
- Liberado: cuando definimos completamente un job con la transacción SM36 o liberamos un job que estaba en estado previsto, entonces pasa a liberado. En este estado permanecerá hasta que se cumpla la condición de su fecha de inico o se produzca el evento que lo lanza.
- Preparado: una vez se han cumpido las condiciones de inicio del job pasa al estado preparado en el que estará esperando a que haya recursos libres en el sistema para ejecutarse.
- Activo: el job se está procesando. Podemos ver el log desde este momento y ver lo que está haciendo.
- Terminado: el job completó su ejecución correctamente.
- Cancelado: algún problema hizo que el job finalizara de manera incorrecta. Normalmente se producen cancelaciones por errores de los programas que componen el job o problemas de acceso a la base de datos. En el log podemos ver el motivo de la cancelación.
Las operaciones sobre Jobs
Si pulsamos en el menú Job correspondiente a la transacción SM37 veremos todas las operaciones posibles que podemos haacer para alterar el estado o composición de un job.
- Verificar status: en algunas ocaciones podemos descubrir que un job que creemos que esta activo (porque la transacción SM37 así nos lo dice) realmente no lo está. Con esta opción form¡zamos a SAP a comprobar que el estado que nos da para el job es realmente el que tiene en el sistema operativo.
- Cancelar job activo:con esta opción detenemos un job activo y lo pasamos directamento a estado cancelado. Si tuviera un job encadenado a continuación este no se procesará.
- Borrar: una vez terminado o cancelado un job podemos borrarlo manualmente de la lista.
- Liberado->Previsto: para poder deshacer la liberación de un job utilizaremos esta opción. Es muy útil para no tener que borrar y redefinir un job.
- Copiar: si queremos que un job se ejecute dos o tres veces lo copiaremos con esta opción y liberaremos cada una de las tres copias convenientemente. Si queremos que se ejecute más veces deberíamos pensar en la posibilidad de crear un job periódico.
- Modificar: siempre y cuando no haya comenzado la ejecución del job podremos modificar cualquier dato de la definición del mismo.
- Repetir previsión: esta opción es muy similar a la de copiar, pero además nos pide los datos de inicio del job.
- Traslado a otro servidor: cambiamos el servidor de destino de un job que no este activo.
- Capturar job activo: para comprobar en qué punto va la ejecución del proceso que hemos lanzado podemos capturar un job que este activo. Al pulsar esta opción se nos abre un modo nuevo con el debugger de ABAP parado en el punto del programa que estuviera en ese momento.
- Detalles del job: aquí podemos ver datos internos del job. El más interesante es comprobar en que servidor de aplicaciones se está procesando y el número de cola BTC para poder monitorizar su estado y/o rendimiento con la transacción SM51
(La transacción SM51 muestra los servidores de SAP)