🚀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

Ademas de la opcion de ejecutar programas y transacciones online, SAP da la posibilidad de ejecutar procesos de fondo.

Tambien se conoce con otros terminos como procesamiento batch o procesamiento en segundo plano.

Consiste en la ejecucion de un proceso o programa sin interaccion con el usuario, es decir, que lanzamos el proceso y el SAP GUI nos devuelve el control, aunque el programa todavia no ha acabado de ejecutarse. Adquiere una importancia vital cuando tratamos con programas que tardan mucho timepo en ejecutarse.

Tradicionalmente se considera un buen tiempo de respuesta para un sistema online cuando no transcurren mas de dos segundos entre dos acciones del usuario sobre el programa.

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 esta esperando respuesta inmediata. Lo mas aconsejable es lanzar los programas de fondo durante la noche, cuando la carga de usuarios que actuan online es casi nula. Es decision de la empresa decidir si algun proceso como los pedidos de compra deben emitirse online o pueden esperar todos a la noche.

Los Jobs

Es el conjunto de uno o mas programas o transacciones que se lanzan consecutivamente en un proceso de fondo.

Para crear un job se utiliza la transaccion estandar SM36, aqui se define y planifica los procesos de fondo que se definan en el sistema SAP.

La definicion de un job tiene 3 areas principales:

  • Informacion general
  • Hora de inicio o evento de ejecucion
  • Pasos

Primero se debe dar un nombre que defina el proposito que tiene el job. Este nombre no es unico, lo que significa que podemos crear varios hob que se llamen "actualizar estadisticas enero". Esto es 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 a SAP la prioridad de ejecucion de los procesos que le mandamos y en funcion de ello asigna los recursos adecuadamente.

Las clases posibles son:

  • La mas alta prioridad: se utiliza para procesos que son criticos para el funcionamiento del sistema
  • Prioridad media: se utiliza para procesos periodicos que aseguran el mantenimiento del sistema
  • Prioridad normal: es la clase normal que se asigna a los jobs de usuario.

Hora de inicio o evento

Una vez definidas las caracteristicas generales del job tenemos que indicar cuando debe ejecutarse. Esto puede hacerse de varias formas, por ejemplo:

  • Ejecucion inmediata: permite iniciar el job en el momento de acabar su definicion
  • Ejecucion por fecha/hora: debemos indicarle un dia y una hora en la que queramos que comience el job. Ademas podemos marcar el job como periodico, es decir, que se repetira su ejecucion cada cierto periodo de tiempo. Esta opcion es muy util para la planificacion de jobs de mantenimiento o de recoleccion de estadisticas, de hecho al instalar SAP ya existen una serie de jobs de estas caracteristicas.
  • Por job: con esta indicacion de comienzo podemos encadenar unos jobs con otros, es decir, inidcaremos al job B que empiece a ejecutarse cuando finalice el job A. Tambien podemos especificar que solo comience cuando la finalizacion del job A sea correcta, en caso de que el job A haya sido cancelado en mitad de su ejecucion el job B no se ejecutara.
  • Por evento: el job comenzara cuando se produzca en el sistema el evento 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 insancias, el cambio de modo de operacion de nocturno a diurno, etc.

Los pasos de un job

Tras definir como y cuando queremos que se procese el job, por ultimo, 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:

  • Un programa ABAP: estandar o creado por nosotros, al que le indicaremos una variante que contenga los parametros de seleccion de ese programa.
  • Un comando externo: que se ejecutara en el sistema operativo donde este el servidor de aplicaciones que procesa el job.
  • Un programa externo que reside en otro sistema distinto de SAP: se utiliza cuando tenemos otros sistemas de gestion 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 tres pasos sufre una cancelacion, ninguno de los otros dos pasos restantes se procesara. Es como si crearamos tres jobs encadenados con dependencia de status con un paso cada uno.

El analisis de un job

Una vez definido completamente el job podemos analizar y monitorizar su situacion a traves de la transaccion SM37.

Inicialmente tenemos que introducir los criterios de seleccion de los jobs que queremos analizar porque pueden existir cientos de jobs definidos en un momento dado, y nosotros estaremos interseados en unos pocos. La seleccion se hace principalmente por nombre del job, usuario creador del job, fecha y hora de comienzo y estado actual en el que se encuentra.

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 cuando debe ejecutarse.
  • Liberado: cuando definimos completamente un job con la transaccion SM36 o liberamos un job qu eestaba en estado previsto, entonces pasa a liberado. En este estado permanecera hasta que se cumpla la condicion 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 estara esperando a que haya recursos libres en el sistema para ejecutarse. Normalmente no veremos el job en este estado a menos que tengamos el sistema tan cargado que no haya suficientes colas para atender a todos los jobs que estan en estado preparado.
  • Activo: el job se esta procesando.
  • Terminado: el job completo su ejecucion correctamente.
  • Cancelado: algun problema hizo que el job finalizara de manera correcta. 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 cancelacion.

Las operaciones sobre jobs

Si pulsamos en el menu Job correspondiente a la transaccion SM37 veremos todas las operaciones posibles que podemos hacer para alterar el estado de composicion de un job.

Algunas de las operaciones que podemos realizar sobre los procesos de fondo son:

  • Verificar status: en algunas ocasiones podemos descubrir que un job que creemos que esta activo (porque la transaccion SM37 asi nos lo dice) realmente no lo esta. Con esta opcion forzamos 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 opcion detenemos un job activo y lo pasamos directamente a estado cancelado. Si tuviera un job encadenado a continuacion este no se procesara.
  • Borrar: una vez terminado o cancelado un job podemos borrarlo manualmente de la lista.
  • Liberado-Previsto: para poder deshacer la liberacion de un job utilizaremos esta opcion. Es muy util para no tener que borrar y redefinir un job que hemos liberado a una hora concreta y despues nos hemos dado cuenta de que no queremos lanzarlo aun.
  • Copiar: si queremos que un job se ejecute 2 o 3 veces l ocopiaremos con esta opcion y liberaremos cada una de las copias convenientemente. Si queremos que se ejecute mas veces deberiamos pensar en la posibilidad de crear un job periodico.
  • Modificar: siempre y cuando no haya comenzado la ejecucion del job (mientras este en previsto o liberado) podremos modificar cualquier dato de la definicion del mismo.
  • Repetir prevision: esta opcion es muy similar a la de copiar, pero ademas nos pide los datos de inicio del job, es decir como si copiamos un job y liberamos inmediatamente la copia.
  • Traslado a otro servidor: con esta opcion cambiamos el servidor de destino de un job que no este activo.
  • Capturar job activo: para comprobar en que punto va la ejecucion del proceso que hemos lanzado podemos capturar un job que este activo. Al pulsar esta opcion se nos abre un modo nuevo con el debugger de ABAP parado en el punto del programa que estuviera en ese momento.
  • Detalles de job: podemos ver datos internos del job. El mas interesante es comprobar en que servidor de aplicaciones se esta procesando y el numero de cola BTC para poder monitorizar su estado y/o rendimiento con la transaccion SM51. La transaccion SM51 muestra los servidores de SAP, desde esta transaccion se puede seleccionar un servidor en particular y comprobar los procesos que se estan ejecutando.

 

 

 


Sobre el autor

Publicación académica de Mathias Peña, en su ámbito de estudios para el Carrera Consultor Basis NetWeaver.

SAP Senior

Mathias Peña

Profesión: Information Processing Specialist - Uruguay - Legajo: MG82V

✒️Autor de: 43 Publicaciones Académicas

🎓Cursando Actualmente: Consultor Funcional Módulo FI Nivel Avanzado

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Certificación Académica de Mathias Peña