✒️SAP El procesamiento de fondo
SAP El procesamiento de fondo
El procesamiento de fondo
Es la ejecución de un proceso o programa sin interacción con el usuario. Se lanza el proceso y SAP GUI nos devuelve el control aunque no haya acabado de ejecutarse. También se conoce como procesamiento batch o procesamiento en segundo plano. Es de vital importancia con programas que tardan mucho tiempo en concretarse. Se considera buen tiempo que no pasen más de dos segundos entre dos acciones del usuario sobre el programa. Cuando espera más de cinco minutos puede ser que haya quedado bloqueado o fallas del programa. Por eso cuando se sabe que un programa va a durar mas se lanza de fondo. De esta manera nos permite mejorar el rendimiento de las transacciones online ya que el usuario no espera respuesta inmediata del programa. Más aconsejable es lanzar los programas de fondo a la noche cuando la carga del usuario es casi nula. Cuando los procesos no sean críticos para la obtención de datos en tiempo real. La empresa decide en que tiempo se deben realizar.
SAP S/4 HANA, redujo los tiempos de ejecución gracias a la potencia de base de datos en memoria. Algunos pasaron a ejecutarse de manera online y otros pasaron de días/ horas a minutos. Más procesos de fondo se pueden lanzar al mismo tiempo sin limitar en recursos a la base de datos. Las tareas costosas se pueden realizar de una en vez de dividirlas.
Jobs
Conjunto de uno o mas programas/ transacciones que se lanzan consecutivamente en un proceso de fondo. Para ello se utiliza la transacción SM36 para definir y planificar los procesos de fondo que se definan en el sistema. Cuenta con tres áreas principales: información general, hora de inicio/ evento de ejecución y pasos.
Primero debemos dar un nombre que defina el objetivo del Job. No es único sino que podemos crear varios que se llamen de igual manera ej actualizar estadísticas enero. SAP le asignan un número interno a cada job con el que diferencia unos de otros pero para nosotras esa clave es desconocida. Otro dato importante es la clase lo q indica a SAP la prioridad de ejecución de los procesos que le mandamos y en función de ellos asignan adecuadamente rr. Las clases posibles son:
- La más alta prioridad: procesos críticos para el funcionamiento del sistema
- Prioridad media: procesos periódicos que aseguran el mantenimiento del sistema
- Prioridad normal: clase normal que se asigna a los jobs de usuario
La hora de inicio
Una vez definidas las características generales hay q determinar cuándo debe ejecutarse. 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: le indicamos fecha y hora que queremos que comience el job. Podemos marcarlo como periódico, que se repita cada cierto tiempo. Util para mantenimiento o recolección de estadísticas.
- Por job: encadenar unos jobs con otros ej que job b empiece cuando finalice job a. O que solo se inicie el a cuando el b haya correctamente finalizado no haya sido cancelado.
- Por evento: el job comenzara cuando se produzca en el sistema el evento que indiquemos. Un evento es un suceso que se produce automáticamente en SAP o que podemos provocar. El evento debe estar definido en la correspondiente tabla.
Los pasos de un job
Después de definir cómo y cuándo queremos que se procese vamos a decirle que queremos que haga. Los pasos los componen los diferentes programas que queremos que se ejecuten. Estos pueden ser tres tipos:
- Un programa ABAP estándar o creada por nosotros: le indicaremos una variante que contenga los parámetros de selección de ese programa.
- Un comando externo: se ejecutara en el sistema operativo donde este el servidor de aplicaciones que procesa job
- Un programa externo que reside en otro sistema distinto a SAP: cuando tenemos otros sistemas de gestión y necesitamos interfaces entre ellos.
Los pasos son un proceso unificado por lo q si el primero sufre una cancelación ninguno seguirá.
Pasos: ingresamos a la transacción estandar SM36 y en el campo escribimos el nombre del job y presionamos enter. En la pantalla flotante siguiente introducimos el nombre del programa ABAP que deseamos planificar de fondo. presionamos verificar y grabar. a continuación presionamos el botón back para configurar la condición de inicio del job. Seleccionamos el botón condición de incio y seleccionamos la fecha e introducimos en inicio previsto la fecha prevista y la hora de ejecución del job. Luego seleccionamos valores de período para establecer con qué frecuencia se ejecutara. Grabamos.
Análisis de un job
Una vez definido podemos analizar y monitorizar su situación a través de la transacción SM37. Con esta visualizamos los jobs en el sistema. De cada uno veremos distintos datos como el ID, usuario SAP que ejecuto, status, fecha, hora, duración y retraso. Tendremos que introducir los criterios de selección principalmente nombre, usuario creador, fecha y hora de comienzo y estado de los jobs que queremos analizar porque pueden existir miles definidos en un momento dado y nosotros estaremos interesados en unos pocos. El estado es lo que más nos interesa.
Los estados de un job
- Previsto: estado inicial cuando hemos definido datos generales y pasos pero no dijimos nada acerca de cuando debe ejecutarse.
- Liberado: definimos completamente un job con SM36 o liberamos uno que estaba en estado previsto. Permanecerá en este estado hasta que se cumpla la fecha de inicio o se produzca el evento lanza
- Preparado: Cumplidas las condiciones de inicio pasa a preparado estará esperando a que haya recursos libres para ejecutarse. Normalmente no vemos este estado a menos que tengamos el sistema muy cargado y que no haya suficientes colas para atender a todos lod jobs en este estado
- Activo: esta procesando. Podemos ver el log desde este momento y ver lo q hace.
- Terminado: cumplió su ejecución completamente
- Cancelado:algún problema hizo que finalizara de manera incorrecta. Se producen por errores de los programas que componen el job o acceso a base datos. En el log podemos ver el motivo de cancelación.
Las operaciones sobre jobs
Menú job que es la transacción SM37 veremos todas las operaciones posibles que podemos hacer para alterar el estado o composición de un job. Algunas de las operaciones que podemos realizar sobre los procesos en fondo:
- verificar status: verificar si un job realmente esta activo o no lo está. 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: detenemos un job activo y lo pasamos a estado cancelado. sSi tenemos un jobe ncadenado este no continuará.
- Borrar: una vez terminado o cancelado un job lo podemos borrar manualmente.
- Liberado > previsto: para deshacer la liberación de un job. Sirve para no tener que borrar y redefinir un job que hemos liberado y después nos dimos cuenta que no lo queremos lanzar todavía.
- Copiar: si queremos que un job se ejecute dos o tres veces lo copiaremos y liberaremos cada copia. Si queremos que se ejecute más veces deberíamos pensar en crear uno periódico.
- Modificar: siempre que no haya comenzado la ejecución (previsto/ liberado) podemos modificar cualquier dato de la definición del mismo
- Repetir previsión: similar a la de copiar pero nos pide los datos del inicio del job como si copiamos un job y liberamos inmediatamente la copia.
- Traslado a otro servidor: cambiamos el servidor de destino de un job que no este activo.
- Capturar job activo: comprobar en qué punto va la ejecución del proceso que lanzamos podemos seleccionar un job q ese activo. 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 este.
- Detalles del job: podemos ver los datos internos del job. El más interesante es ver en qué servidor de aplicaciones se esta procesando y el numero de cola BTC para monitorizar el estado o rendimiento con la transacción SM51. Esta transacción muestra los servidores de SAP; se puede seleccionar un servidor en particular y comprobar los procesos que se están ejecutando.
Cómo los procesos de fondo no se ejecutan de forma on line la posibilidad de debuggear no resulta posible. Existe un truco que permite debugear jobs de la transacción SM37. Para ellos vamos a la transacción seleccionamos el job en cuestión y en la linea de comandos JDBG. El sistema abrirá un modo con el debuggin para el job. La desventaja que si el job no nos da tiempo entonces tendremos que intentar modificar el programa ABAP en cuestión agregando la sentencia WAIT la cual retrasa la ejecución de un programa ABAP.
 
 
 
Sobre el autor
Publicación académica de Luciana Pascazzi, en su ámbito de estudios para el Carrera Consultor Basis NetWeaver.
Luciana Pascazzi
Profesión: Administración de Empresas - Argentina - Legajo: PN48A
✒️Autor de: 31 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: PartTime
Certificación Académica de Luciana Pascazzi