Skip to Content
Guía de pantallasProgramadores

Programadores — /schedulers

Programadores agrupados por Aplicación, con la frecuencia, el estado y el disparo manual
Programadores agrupados por Aplicación, con la frecuencia, el estado y el disparo manual

Casi todo lo que el CMS hace sin que nadie se lo pida pasa por un programador: procesar los mensajes de una interfaz, buscar datos en una Recolección, verificar si las aplicaciones están en línea, purgar mensajes viejos. Esta pantalla los muestra todos en un solo lugar.

Un programador pausado es la causa más común de “la recolección dejó de traer datos”. Nada se rompe, nada se convierte en error: los mensajes simplemente dejan de procesarse. Por eso existe un tipo de alerta dedicado — AGENDADOR_PAUSADO — y un estado propio en el Panel de Interfaces.

Dos tipos de programador

El listado separa los jobs en dos grupos, y la diferencia importa porque los permisos son distintos. Hay además un tercero, los Disparadores, descrito más abajo — a efectos de permiso se comporta como el de Interfaz.

Programadores de Sistema

Creados por el propio CMS en el primer arranque:

JobQué hacePor defecto
keep-aliveConsulta el keep-alive de todas las aplicaciones y actualiza el estado ON/OFFcada 10 segundos
limpezaElimina mensajes y procesamientos más antiguos que la retención configurada en cada Interfaztodos los días a las 2h
Check-msg-acumulada-alertVerifica interfaces con mensajes acumulados por encima del límite y dispara la alertacada minuto
Check-chamado-atrasadoAbre un ticket para la Aplicación que pasó del tiempo offline configurado en la alertacada minuto
Check-sap-cpi-processamentoVerifica en el SAP CPI si los iFlows que recibieron Entregas terminaron con éxito y dispara la alerta Falla en el iFlow. Sin conexión SAP CPI con API de gestión, no hace ninguna llamadacada minuto
resumo-diarioCierra la Radiografía del día anterior y envía el resumen a los suscritostodos los días a las 0h10
revisao-iaAvisa a los revisores cuando hay sesiones de IA señaladas esperando revisióntodos los días a las 7h

Solo los administradores ven y modifican los programadores de Sistema. Un usuario común ve únicamente los programadores de las Interfaces a las que tiene acceso.

Programadores de Interfaz

Uno por Interfaz registrada, nombrado fila-{SIGLA}. Es él quien ejecuta el ciclo de la interfaz: buscar lo que hay que hacer, encolar y procesar. La pantalla agrupa esos jobs por Aplicación, con conteo de activos e inactivos en cada grupo.

Crear una Interfaz crea el programador; renombrar la Interfaz renombra el job preservando el estado (un job apagado sigue apagado); eliminar la Interfaz elimina el job.

Una Interfaz creada por importación, por un asistente o por un Pack SAP ya nace con el programador registrado y corriendo — no hace falta reiniciar la API.

Las Interfaces de las herramientas de Help Desk aparecen en un grupo propio, Help Desk. Conviene revisarlo: con el programador de la Interfaz de una herramienta apagado, el ticket entra en la cola y no sale — en SAP PM, el aviso queda “Esperando” para siempre.

Disparadores

Uno por Disparador registrado, nombrado trigger-{id} y mostrado con el nombre que la persona le dio. Quedan en un grupo propio, Disparadores, antes de Sistema, con el destino (la Recolección o Entrega) y la programación en palabras en la fila.

Aquí se puede pausar, ejecutar ahora y ver el historial. Dos cosas son distintas de los programadores de Interfaz, a propósito:

  • Activar no ocurre aquí. La activación de un Disparador pasa por una pregunta de confirmación que solo hace la pantalla de Disparadores — intentar activar desde esta pantalla muestra un aviso con el atajo hacia allá, y “Activar todos” salta los Disparadores y dice cuántos quedaron fuera.
  • Editar la programación también es en la pantalla de Disparadores: el lápiz lleva allá. Las pestañas son las mismas, pero el Disparador guarda la elección entera en su registro — cambiarla solo en el job dejaría a los dos diciendo cosas distintas.

Cómo se elige la programación

El lápiz abre el mismo editor del registro de Disparador, con cinco pestañas:

PestañaQué defineEjemplo
CadaCadencia corta, sin horario fijocada 5 segundos
DiarioUn horario por día, con opción de solo días hábiles07:30, de lunes a viernes
SemanalDías marcados y horariomartes y jueves, 06:00
MensualDía del mes (1 a 28) y horariodía 5, 23:00
AvanzadoLa expresión cron, para lo que las pestañas no cubren0 0 2 15,30 * *

La pantalla muestra la elección en palabras y las próximas tres ejecuciones, en la zona horaria del servidor, antes de guardar. Una programación que el destino no puede cumplir aparece como error ahí mismo, en lugar de convertirse en un job que nunca dispara.

No es la pantalla la que arma la expresión: ella manda la elección y el servidor convierte, con la misma regla que usa el Disparador. Por eso las dos pantallas nunca discrepan sobre qué significa “cada 15 minutos”.

Los milisegundos solo aparecen para Interfaz. Una Interfaz guarda la cadencia corta como intervalo (es lo que permite 200 ms), mientras que los programadores internos del Sistema solo saben guardar cron — y cron no tiene lugar para una fracción de segundo.

El CMS acepta cron con segundos (seis campos). Es lo que permite 0/10 * * * * * en el keep-alive.

Dos cosas que la pantalla rechaza, y por qué

  • “Último día del mes” existe en el Disparador y no aquí. No es solo una expresión: es un cron que dispara del día 28 al 31 más una marca que descarta los tres primeros, y esa marca solo la guarda el registro del Disparador. Aceptarla aquí programaría cuatro ejecuciones en lugar de una.
  • En un programador del Sistema, “cada N” solo pasa cuando N divide la unidad de arriba en partes iguales (5, 10, 15, 30 segundos — no 45). Un paso de 45 segundos dispararía a los :00 y :45 y luego esperaría 15 s: la pantalla diría una cosa y el sistema haría otra.

Una Interfaz guardada en modo cron con expresión de cadencia (*/5 * * * * *) abre en la pestaña Cada y, al guardar, pasa a guardarse como intervalo. Es la misma programación — e intervalo es el modo que el CMS usa para Interfaz por debajo de un minuto —, pero la fila cambia de modo aun sin que toques los campos.

Un intervalo muy corto en una Recolección significa consultar el origen muy cerca del tiempo real — y un origen lento puede acumular ejecuciones. Empiece conservador y ajuste después de medir el tiempo medio en el Monitor de Mensajes.

Qué se puede hacer en la pantalla

AcciónEfecto
Activar / desactivarEnciende o detiene el job. Vale de inmediato, sin reiniciar nada
Editar programaciónAbre las cinco pestañas, con la frase legible y las próximas ejecuciones
Ejecutar ahoraDispara una ejecución fuera del horario, para prueba
HistorialÚltimas ejecuciones de ese job, con inicio, duración, estado y mensaje

También hay acciones en lote: activar o desactivar todos los programadores de una Aplicación, o solo los seleccionados. Desactivar en lote pide confirmación escrita — es una acción que detiene la integración entera de una aplicación.

La columna Frecuencia dice la programación en una frase — “Cada 1 hora”, “Cada 5 minutos”, “Días hábiles a las 07:30” —, la misma de la pantalla de Disparadores. Cuando el valor grabado es una expresión cron, aparece pequeña justo debajo, para verificación; un intervalo no tiene expresión, la frase ya es el valor exacto.

La columna Ejecutando muestra, en tiempo real, cuáles interfaces tienen un mensaje en procesamiento en este momento.

Historial y diagnóstico

Cada ejecución graba inicio, duración, estado (Éxito o Error), mensaje y los IDs de los mensajes involucrados. El historial completo, con filtros por job, estado y período, está en Log de Programadores — incluso un gráfico de ejecuciones por hora, que suele ser la forma más rápida de ver “se detuvo a las 14h”.

Las ejecuciones sin nada que hacer no generan registro. En un job de intervalo, eso significa que “última ejecución” puede estar vieja aun con el job sano — simplemente no tuvo trabajo.

Permiso

La Herramienta es /schedulers. Un usuario no administrador solo ve (y solo puede modificar) programadores de Interfaces que consten en sus Interfaces permitidas — los jobs de Sistema quedan fuera de su alcance, incluso en las acciones en lote.