🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️SAP El procesamiento de fondo

SAP El procesamiento de fondo

SAP El procesamiento de fondo

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, también llamados 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 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 esté esperando más de cinco minutos a 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.

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 menor, debido a que el usuario no está esperando una respuesta inmediata. Lo más aconsejable es lanzar los programas de fondo durante la noche, cuando la carga de usuarios que actúan es casi nula. Esto 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.

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 se utiliza 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 se debe 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 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 clases posibles 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 le asigna a los jobs de usuario.

- La hora de inicio o evento

Una vez definidas las características generales del job, tenemos que indicar cuándo debe ejecutarse. Esta indicación puede hacerse de diversas formas.

  • Ejecución inmediata: como su nombre indica nos permite iniciar el job en el momento de acabar su definición.
  • Ejecución por fecha/hora: debemos indicarle un día y una hora en la que queramos que comience el job. Además podemos marcar el job como periódico, es decir, que se repetirá su ejecución cada cierto período de tiempo. Esto 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: con está indicación de comienzo podemos encadenar unos jobs con otros, es decir, indicaremos al job B que empiece a ejecutarse cuando finalice el job A. También 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 (suceso que se produce automáticamente en el sistema SAP o que podemos provocar manualmente) que le indiquemos. 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 de operación de nocturno a diurno, etc.

- Los pasos de un job

Tras definir cuándo y cómo queremos que se procese el job, por último vamos a decirle qué es lo que queremos que haga. Los procesos 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 externo que se ejecutará en el sistema operativo donde esté el servido 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 diferentes 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 tres pasos sufre una cancelación, ninguno de los otros dos pasos restantes se procesará. Es como si creáramos 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 través de la transacción SM37. 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 de job, usuario creador del job, fecha y hora de comienzo y estado actual en el que se encuentra.

Una vez introducidos los datos, tras pulsar enter, veremos un listado de los jobs con diversos datos sobre ellos, la información que más nos interesa es el estado en el que se encuentran.

- Los estados de un job

Una vez definido un job lo que nos interesa conocer en todo momento es 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 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 de inicio del job pasa al 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 suficientes 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 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 del job podemos ver el motivo de la cancelación.

- Las operaciones sobre jobs

Si pulsamos 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 podemos realizar sobre los procesos de fondo:

  • Verificar status: en algunas ocasiones podemos descubrir que un job que creemos que está activo (porque la transacción SM37 así nos lo dice) realmente no lo está. Con esta opción forzamos a SAP a comprobar el estado que nos da para el job, es realmente el que tiene el sistema operativo.
  • Cancelar job activo: con esta opción detenemos 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 dos o tres 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 del job (mientras esté en previsto o liberado) 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, 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 el debugger (herramienta de SAP para identificar y corregir errores de programación) de ABAP parado en el punto del programa que estuviera en ese momento.
  • Detalles de 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 (desde esta transacción se puede seleccionar en particular y comprobar los procesos que se están ejecutando).


 

 

 


Sobre el autor

Publicación académica de Romina Hergesheimer Elias, en su ámbito de estudios para el Carrera Consultor Basis NetWeaver.

SAP Senior

Romina Hergesheimer Elias

Profesión: Ingeniera Química - Argentina - Legajo: KO26R

✒️Autor de: 48 Publicaciones Académicas

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Certificación Académica de Romina Hergesheimer