✒️SAP El procesamiento de fondo
SAP El procesamiento de fondo
Lección 2. Los conceptos del procesamiento de fondo
Además de la opción de ejecutar programas y transacciones online, SAP nos da 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 mismo consiste en la ejecución de un proceso o programa sin interacción con el usuario, es decir, que lanzamos el proceso y SAP GUI nos devuelve el control, aunque el programa todavía no ha acabado de ejecutarse.
Este modo de ejecución 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 cinco minutos a la respuesta del sistema sin pensar que se ha quedado bloqueado o que 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 las mismas sea menos, 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 se deberá hacer cuando los procesos no sean críticos para la obtención de datos en tiempo real, es la dirección de la empresa la que debe decidir, por ejemplo, si sus pedidos de compra deben emitirse online o por el contrario pueden esperar todos a la noche.
A partir de la implementación de la plataforma SAP HANA en las empresas, muchos procesos muy pesados que antes demoraban horas o hasta días en ejecutarse de fondo o batch, cuando los resultados en realidad se requerían en cuestión de minutos, redujeron significativamente sus tiempos de ejecución gracias a la potencia de la base de datos in memory. Algunos de estos procesos pasaron a ejecutarse directamente de forma online y otros pasaron de demorar días a demorar minutos. Por otro lado, mas procesos de fondo se pueden lanzar al mismo tiempo gracias a SAP HANA sin limitar los recursos de la base de datos y aquellas tareas particularmente costosas se pueden realizar de a una en vez de tener que dividirlas en varias tareas.
Los Jobs
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 (definir y planificar) usaremos la función estándar SM36.
La definición de un job tiene 3 áreas principales:
La información general, la hora de inicio o evento de ejecución y los Pasos.
Lo primero que 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 Jobs que se llamen "actualizar estadísticas enero",
Esto se produce porque SAP asigna un numero interno a cada Job con el que diferencia a unos de otros, pero para nosotros esa clave es desconocida y solo podremos referirnos al job por su nombre.
Otro dato es la clase de job que indica SAP la prioridad de ejecución de los procesos que le mandamos y en función de ellos, asigna los recursos adecuadamente.
La hora de inicio o evento
Una vez definidas las características generales del job, tenemos que indicar cuando debe ejecutarse. Esta indicación puede hacerse de diversas formas.
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 instancias, el cambio de modo de operación de nocturno a diurno, etc.
Los pasos de un job
Tras definir cómo y cuándo queremos que se procese el job, por último, vamos a decirle que 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:
Los pasos de un job constituyen un proceso unificado, esto implica que, si el primero de un job de tres pasos sufre una cancelación, ninguno de los otros dos pasos restantes se procesara. Es como si creáramos tres jobs encadenados con dependencia de status con un paso cada uno.
Para crear un Job de fondo, lo primero que hacemos es entrar a la transacción estándar SM36, en el campo del job escribir el nombre del job y presionar enter. En la pantalla flotante siguiente, introducimos el nombre del programa ABAP que deseamos planificar de fondo y presionamos verificar y luego grabar; a continuación presionamos back para configurar la condición de inicio del job, en el extremo superior izquierdo, en la pantalla siguiente seleccionamos el botón fecha e introducimos en el campo inicio previsto la fecha de arranque y la hora de ejecución del job, luego seleccionamos el botón valores de periodo para establecer con qué frecuencia se ejecutara el job y luego grabamos. Por ultimo volvemos a grabar y job quedara planificado.
El análisis de un Job
Una vez definido completamente un job podemos analizar y monitorizar su situación a través de la transacción SM37. A esta transacción la usaremos para ver 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 status, 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 el nombre del job, usuario creador del job, fecha y hora de inicio y estado actual en el que se encuentra.
Una vez introducidos los datos y tras pulsar enter, veremos la siguiente pantalla:
Imagen
Podemos ver un listado de jobs con diversos datos sobre ellos. La información que más nos interesa es el estrado en el que se encuentran.
Los estados de un job
Los posibles estados de un job son:
Las operaciones sobre job
Si pulsamos en el menú Job correspondiente a la transacción SM37 veremos todas las operaciones posibles que podemos hacer para alterar el estado o composición de un job. Vamos a describir algunas de las operaciones que se pueden realizar sobre los procesos de fondo:
Transacción SM51: muestra los servidores de SAP. Desde aquí podremos seleccionar un servidor en particular y comprobar los procesos que se están ejecutando.
Dado que los procesos de fondo no se ejecutan de forma online, entonces la posibilidad de debuggear dichos procesos en la búsqueda de un error no resulta posible, pero por suerte existe un truco que podemos usar para poder realizar un debugg de los procesos de fondo. Así podremos debuggear jobs de la transacción SM37. Vamos a la transacción SM37, seleccionamos el job en cuestión e ingresar en la línea de comando de SAP, JDBG, el sistema abrirá un modo con el debugging para el job. Esta técnica puede resultarnos muy útil cuando queremos debuggear un job, pero tiene como desventaja que, si el job no nos da tiempo suficiente como para realizar el truco, entonces vamos a tener que buscar otra solución. En ese caso vamos a tener que modificar el programa ABAP en cuestión agregando la sentencia wait, al cual retrasa la ejecución de un programa ABAP.
 
 
 
Sobre el autor
Publicación académica de Ornella Mollani Norverto, en su ámbito de estudios para el Carrera Consultor Basis NetWeaver.
Ornella Mollani Norverto
Profesión: Ingeniera Química - Argentina - Legajo: MA29J
✒️Autor de: 38 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Soy ing. química (utn-frc, argentina). quisiera formar parte de una empresa dónde poder crecer en el ámbito it, integrando con mis conocimientos ingenieriles y mis aptitudes de liderazgo e innovación.
Certificación Académica de Ornella Mollani