SAP = PROCESAMIENTO DE FONDO SAP permite ejecutar programas de dos formas: online, donde el usuario espera la respuesta en pantalla, y de fondo (batch o en segundo plano), donde el programa se lanza y el SAP GUI devuelve el control mientras el proceso sigue corriendo. Los procesos de fondo se organizan en jobs: se crean y planifican con la SM36, se monitorean con la SM37 y los servidores que los procesan se consultan con la SM51. Esta forma de ejecución es clave para procesos largos, porque no bloquea al usuario y evita sobrecargar el sistema en horario de uso. Conceptos del procesamiento de fondo Procesamiento de fondo: ejecución de un programa sin interacción con el usuario. Se lanza el proceso y el SAP GUI devuelve el control aunque el programa todavía no terminó. Sinónimos: procesamiento batch o en segundo plano. Cuándo usarlo: en procesos que tardan mucho. Un buen tiempo de respuesta online no supera los 2 segundos entre dos acciones, y si el usuario espera más de 5 minutos suele pensar que el sistema se colgó. Ventaja: mejora el rendimiento online, porque a los procesos de fondo se les puede dar menor prioridad. Momento ideal: de noche, cuando casi no hay usuarios conectados, siempre que el proceso no sea crítico para obtener datos en tiempo real. Quién decide: la dirección de la empresa. Por ejemplo, define si los pedidos de compra se emiten online o pueden esperar a la noche. SAP HANA: gracias a su base de datos en memoria, procesos que tardaban horas o días ahora tardan minutos o pasaron a ejecutarse online. También permite correr más jobs al mismo tiempo y hacer tareas pesadas de una sola vez, sin dividirlas. Los jobs Job: conjunto de uno o más programas o transacciones que se ejecutan consecutivamente en un proceso de fondo. Transacción SM36 (Definir job): sirve para crear y planificar jobs. Áreas de su definición: información general (nombre, clase, status y destino), hora de inicio o evento (cuándo se ejecuta) y pasos (qué se ejecuta). Nombre del job: debe describir su propósito. No es único, ya que puede haber varios jobs llamados igual porque SAP los diferencia con un número interno que el usuario no ve. Clase de job (prioridad): A es la prioridad más alta, para procesos críticos del sistema; B es prioridad media, para procesos periódicos de mantenimiento; C es prioridad normal, para jobs de usuario, y es la que viene por defecto. Otros campos: Status (al crearlo figura como “planeado”), Destino de ejecución (servidor donde se procesa) y Destino listas SPOOL (salida de impresión). EJEMPLO DE JOB = Pago automático a proveedores 2.1 Hora de inicio o evento (botón Condición de inicio) Inmediato: el job arranca apenas se termina de definir. Fecha/Hora: se indica día y hora de inicio. Se puede marcar como periódico (cada hora, diario, semanal, mensual u otro período). Es útil para jobs de mantenimiento o recolección de estadísticas, y SAP ya trae varios de este tipo. Tras job: encadena jobs, de modo que el job B empieza cuando termina el A. Se puede exigir que el A termine correctamente; si se cancela, el B no se ejecuta. Tras evento: el job arranca cuando ocurre un evento, es decir, un suceso que se produce automáticamente en SAP o que se provoca manualmente. Debe estar definido previamente en su tabla. Ejemplos: arranque o parada de instancias, cambio de modo de operación. En forma de operación: el job se lanza cuando el sistema cambia de modo operativo (por ejemplo, de diurno a nocturno). 2.2 Pasos de un job Paso: cada programa que el job va a ejecutar, es decir, qué hace el job. Programa ABAP (estándar o propio): se indica nombre, variante (parámetros de selección guardados) e idioma. Comando externo: se ejecuta en el sistema operativo del servidor de aplicaciones que procesa el job. Se indica nombre, parámetros, sistema operativo y máquina destino. Programa externo: reside en otro sistema distinto de SAP y se usa para interfaces con otros sistemas de gestión. Se indica nombre, parámetros y máquina destino. Proceso unificado: si un paso se cancela, los siguientes no se ejecutan. Equivale a varios jobs encadenados con dependencia de status. 2.3 Análisis de un job (SM37) Transacción SM37: sirve para visualizar y monitorear los jobs procesados en el sistema. Pantalla Selección de job simple: se filtra por nombre del job y usuario (el asterisco trae todos), status a incluir, rango de fecha y hora de inicio, evento y programa ABAP. Por qué filtrar: puede haber cientos de jobs y normalmente interesan solo unos pocos. Pantalla Resumen de jobs: muestra nombre, ID, usuario creador, status (verde terminado, rojo cancelado), fecha y hora de inicio, duración y retraso en segundos. Botones útiles: Liberar, Borrar, SPOOL, Log job, Paso y Servidores de aplicación. El dato más importante del resumen es el estado del job. 2.4 Estados de un job Previsto (planeado): tiene datos generales y pasos, pero no condición de inicio. No se ejecuta nunca hasta que se lo libere o se cargue la condición de inicio. Liberado: el job está completo y espera que se cumpla la fecha u ocurra el evento. Preparado (listo): la condición se cumplió y espera recursos libres. Es raro verlo, salvo con el sistema muy cargado. Activo: se está ejecutando y ya se puede ver el log. Terminado: finalizó correctamente. Cancelado: terminó con error, generalmente por fallas en los programas o problemas de acceso a la base de datos. El motivo figura en el log del job. 2.5 Operaciones sobre jobs (menú Job de la SM37) Verificar status: obliga a SAP a comprobar si el estado que muestra coincide con el real en el sistema operativo. Cancelar job activo: detiene el job y lo pasa a cancelado; los jobs encadenados no se ejecutan. Borrar: elimina de la lista un job terminado o cancelado. Liberado a Previsto: deshace la liberación sin necesidad de borrar y volver a crear el job. Comparar jobs: compara las definiciones de dos jobs. Copiar: sirve para ejecutar un job 2 o 3 veces, liberando cada copia. Para más repeticiones conviene un job periódico. Modificar: permite cambiar cualquier dato mientras el job esté en previsto o liberado. Repetir previsión: copia el job y pide los datos de inicio, como copiar y liberar al mismo tiempo. Traslado a otro servidor: cambia el servidor destino de un job que no esté activo. Capturar job activo: abre un modo nuevo con el debugger ABAP detenido en el punto donde va la ejecución. Detalles de job: muestra datos internos, sobre todo el servidor de aplicaciones y el número de proceso BTC, para monitorearlo con la SM51. Transacción SM51 Muestra los servidores de aplicación de SAP: nombre, host, tipos de procesos que atiende (diálogo, fondo, actualización, spool, etc.) y estado. Permite elegir un servidor y ver los procesos que está ejecutando. Pasos para crear un job Entrar a la SM36, escribir el nombre del job y presionar Enter. En la ventana emergente, cargar el nombre del programa ABAP, presionar Verificar y luego Grabar. Volver atrás y presionar Condición de inicio. Elegir Fecha/Hora y cargar la fecha y hora en Inicio previsto. Presionar Valores de período, elegir la frecuencia y grabar. Grabar nuevamente. El job queda creado y planificado, y se controla desde la SM37. TRANSACCIONES CLAVES = Transacción Para qué sirve SM36 Definir y planificar jobs SM37 Visualizar, monitorear y operar jobs SM51 Ver los servidores de aplicación y sus procesos