✒️SAP El procesamiento de fondo
SAP El procesamiento de fondo
El procesamiento de fondo
Los conceptos del procesamiento de fondo
Nos da la opción de ejecutar programas, transacciones online y la posibilidad de ejecutar procesos de fondo. Podemos encontrarnos con otros términos para referirse al mismo concepto como procesamiento batch o procesamiento en segundo plano.
El procesamiento de fondo consiste en la ejecución de un proceso o programa sin interacción con el usuario, es decir que lanzamos el proceso y el SAP GUI nos devuelve el control aunque el programa todavía no ha acabado de ejecutarse.
Este modo de procesos adquiere una importancia vital cuando tratamos con programas que tardan mucho tiempo en completarse.
Se considera un buen tiempo de respuesta para un sistema online el hecho de que transcurran más de dos segundos entre dos acciones del usuario sobre el programa. Es poco probable que un usuario esté esperando por más de cinco minutos a la respuesta del sistema sin pensar que se ha quedad 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.
El lanzamiento de programas de fondo nos permite mejorar el rendimiento de las transacciones online ya que podemos determinar que la prioridad de los mismo sea menor, debido a que el usuario no está esperando respuesta inmediata. Lo más aconsejable es lanzar los programas de fondo durante la noche, cuando la carga de usuarios que actúan online es casi nula.
Esto último deberá hacer cuando los procesos no sean críticos para la obtención de datos en tiempo real.
A partir de la implementación de SAP HANA en las empresas muchos procesos muy pesados que tardaban mucho tiempo en ejecutarse cuando los resultados se requerían en cuestión de minutos, redujeron el tiempo de ejecución de forma significativa gracias a la potencia de la base de datos en memoria.
Los Jobs
El job es el conjunto de uno o más programas o transacciones que se lanzan consecutivamente en un proceso de fondo.
Para crear un job utilizaremos la transacción estándar SM36, que sirve para definir y planificar los procesos.
La definición de un job tiene tres á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 único, lo que significa que podemos crear varios job que tengan el mismo nombre.
Esto pasa 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 es la clase de job que indica a SAP la prioridad de ejecución de los procesos que le mandamos y en función de ello asigna los recursos adecuadamente.
Las posibles clases son:
- A - La más alta prioridad: Se utiliza para procesos que son críticos para el funcionamiento del sistema.
- B - Prioridad media: Se utiliza 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
Hora de inicio o evento
- 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 queremos que comience el job. Además podemos marcar el yo como periódico es decir que se repetirá su ejecución cada cierto periodo de tiempo.
Esta opción es muy útil para la planificación de jobs de mantenimiento o de recolección de estadísticas coma al instalar SAP ya existen una serie de Jobs de estas características.
- Por job: el Job comenzará cuando se produzca en el sistema del evento que le indiquemos.
Un evento es un suceso que se produce automáticamente en el sistema SAP 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 del modo de operación de nocturno a diurno, etc.
Pasos de un job
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 3 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 externó que se ejecutará en el sistema operativo donde está el servidor de aplicaciones que procesa el job.
Un programa externó 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 de un job constituyen un proceso unificado, esto implica que si el primero de un job de 3 pasos sufre una cancelación ninguno de los otros 2 pasos restantes se procesará. Es como si creáramos 3 jobs encadenados con dependencia de status con un paso cada uno.
Análisis de un job
Una vez definido completamente el job podemos analizar y monitorizar su situación a través de la transacción SM37.
utilizaremos la transacción estándar SM37 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 ejecuto, el estatus, 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.
Estados de un job
Una vez definido un job lo que nos interesa conocer en todo momento de su estado. Los posibles estados en los que se puede encontrar un job son los siguientes:
° Previsto
Es el estado inicial en el que se encuentra cuando hemos definido los datos generales y los pasos del job, pero no hemos dicho nada acerca de cuándo debe ejecutarse. La elección del nombre no es muy acorde a su significado real porque un job es que está previsto no se ejecutará nunca a menos que lo liberemos o modifiquemos la secció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 inicio o se produzca el evento que lo lanza.
° Preparado
Una vez se han cumplido las condiciones del inicio del Job pasa del Estado preparado en el que estará esperando a que haya recursos libres en el sistema para ejecutarse.
Normalmente no veremos jobs en este estado a menos que tengamos el sistema tan cargado que no haya suficiente colas para atender a todos los jobs que están en estado preparado.
° Activo
El job se está procesando. Podemos ver el log desde este momento y ver lo que está haciendo.
° Terminado
El job completo su ejecución correctamente.
° Cancelado
Algún problema hizo que el job finalizará 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 del Job podemos ver el motivo de la cancelación.
Operaciones sobre jobs
Si pulsamos en el menú correspondiente a la transacción SM37 veremos todas las operaciones posibles que debemos hacer para alterar el estado o composición de un job.
° Verificar status
En algunas ocasiones podemos descubrir que un job que creemos que está activo realmente no lo está. Con esta opción forzamos a SAP a comprobar que el estado que nos da para él es realmente el que tiene en el sistema operativo.
° Cancelar job activo
Con esta opción de tenemos un job activo y lo pasamos directamente a estado cancelado. Si tuviera un job encadenado a continuación éste 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 que hemos liberado a una hora concreta y después nos hemos dado cuenta de que no queremos lanzarlo aún.
° Copiar
Si queremos que un job se ejecute 2 o 3 veces lo copiaremos con esta opción y liberaremos cada una de las 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 de un job podremos modificar cualquier dato de la definición de este.
° Repetir previsión
Esta opción es muy similar a la de copiar, pero además nos piden los datos de inicio de un job, es decir, es como si copiamos un job y liberamos inmediatamente la copia.
° Traslado a otro servidor
Con esta opción cambiamos el servidor de destino de un job que no esté activo.
° Capturar job activo
Para comprobar en qué punto va la ejecución del proceso que hemos lanzado podemos capturar un job que esté activo. Al pulsar esta opción se nos abre un modo nuevo con él debugger de ABAP parando 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 qué 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 Standard SM 51 muestra los servidores de SAP. Desde esta transacción se puede seleccionar un servidor en particular y comprobar los procesos que se están ejecutando.
 
 
 
Sobre el autor
Publicación académica de Andrea Campero Pérez, en su ámbito de estudios para el Carrera Consultor Basis NetWeaver.
Andrea Campero Pérez
Profesión: Estudiante - Mexico - Legajo: GC79C
✒️Autor de: 25 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Andrea Campero