Generación programada de Informes

WOCU permite la automatización de la operativa de los Informes (Reports), gracias a la posibilidad de programar su generación y lanzamiento bajo criterio del usuario.

Esta funcionalidad agiliza el proceso de producción y tratamiento de informes, gracias a la amplia flexibilidad en la programación de fechas y periodicidad, y en la reducción de tiempos de espera para la obtención de resultados, producido por la gran cantidad de información que se extrae desde diferentes bases de datos, sumado a la intensa capacidad de cómputo para procesar dichos datos.

Es posible la programación de informes desde:

1. Formulario de creación


Dentro del formulario de creación de un informe, se ha añadido un botón anexo al botón Create (Crear), para programar el informe cuya configuración es la que se ha completado en el formulario. Este botón para programar un informe recibe la etiqueta de Schedule (Programar).

Pinchando en este botón, se abrirá un nuevo formulario para programar el informe.

../../_images/3_079_aggregator_realm_reports_reports_schedule-button_0-361.jpg

2. Listado de gestión y tratamiento de Informes


En las acciones de la vista general de informes, es posible programar un informe determinado, gracias a la opción Shedule this report (Programar este informe), identificado con el icono de un reloj. Pinchando en este botón, se abrirá un formulario para programar el informe.

../../_images/3_080_aggregator_realm_reports_reports_schedule-actions_0-361.jpg

Formulario de creación de la programación de un Informe

En el formulario de creación de una programación de informe encontramos las siguientes opciones:

../../_images/3_081_aggregator_realm_reports_reports_schedule-configuration_0-36.jpg
SCHEDULE NAME
Nombre nemotécnico asignado a la programación de un informe.
ENABLED
Esta opción indica si la programación del informe está activa (casilla marcada) o no (casilla desmarcada). Permite en cierto momento dejar configurada la programación, sin que se generen los informes hasta que esta opción vuelva a estar habilitada.
EXPIRES AT

Esta opción indica si la programación de un informe tiene fecha de caducidad.

Si la casilla Never está activada, esta programación no expirará y será lanzada cíclicamente hasta que se reconfigure o se elimine definitivamente. En caso contrario, se mostrará un campo para definir la fecha y hora en la que caducará la programación del informe.

../../_images/3_081a_aggregator_realm_reports_reports_schedule-expired-at-date_0-36.jpg

Haciendo clic sobre la hora ubicada bajo el calendario mensual, se podrá configurar una hora en concreto para la expiración. Utiliza las flechas de las casillas hora, minuto y segundo, hasta establecer la hora deseada.

../../_images/3_081b_aggregator_realm_reports_reports_schedule-expired-at-date_0-36.jpg

Important

Lógicamente no es posible elegir una fecha posterior a la fecha actual.

SCHEDULE INTERVAL
En esta sección se establece la periodicidad con la que el informe será lanzado. Para ello, hay un selector con múltiples opciones que según la que esté seleccionada, desvelará configuraciones acorde a la opción elegida.

1. Run every day: esta opción relanzará diariamente el informe. Para su configuración habrá que indicar la hora y minuto en el cual el informe será lanzado cada día.

../../_images/3_081c_aggregator_realm_reports_reports_schedule-interval-run-every-day_0-36.jpg

2. Run every week: esta opción relanzará semanalmente el informe. En su configuración se despliega una serie selectores:

  • Run at days: para definir el día o días de la semana de lanzamiento.
  • Starting at: para definir la hora y minuto.
  • Presets: selector de configuración predefinida para la generación automática de informes. Al pinchar en una de las opciones disponibles, se establecerá automáticamente la configuración que corresponda:
    • Working days: los informes serán lanzados sólo en días laborales (Mo, Tu, We, Th, Fr).
    • Weekend: los informes serán lanzados sólo en fines de semana (Sa, Su).
    • Default: esta opción configura por defecto el lanzamiento de informes los lunes (Mo) y a la hora establecida por el usuario.

De esta forma es posible establecer qué días de la semana y a qué hora exacta se lanzará el informe.

../../_images/3_081d_aggregator_realm_reports_reports_schedule-interval-run-every-week_0-36.jpg

3. Run every month: esta opción relanzará mensualmente el informe. En su configuración se despliegan los siguientes selectores:

  • On day: para indicar el día del mes en el que informe será lanzado. Los números del 1 al 31 representan los días del mes.
  • At: para programar la hora y minuto en el que se lanzará el informe cada día establecido de cada mes.
../../_images/3_081e_aggregator_realm_reports_reports_schedule-interval-run-every-month_0-36.jpg

Attention

En caso de seleccionar los días 29, 30 o 31, se excluyen de la ejecución los meses con menor número de días.

4. Run on cron schedule: por último esta opción permite hacer una configuración tal cual se haría en Formato Crontab, dándonos toda la flexibilidad que nos ofrece esta herramienta para casos más explícitos.

../../_images/3_081f_aggregator_realm_reports_reports_schedule-interval-run-every-cron_0-36.jpg

Important

Para utilizar esta opción es necesario conocer la herramienta Formato Crontab.

Note

En cada uno de los intervalos de programación disponibles se incorpora un campo de texto (no modificable), donde se indica la configuración crontab a aplicar.

../../_images/3_081g_aggregator_realm_reports_reports_schedule-interval-contrab_0-36.jpg
TIME RANGES
En esta sección se indica el rango en el cual se van a recoger las muestras para computar el informe. Concediendo mayor flexibilidad a la hora de recopilar datos, permitiendo lanzar informes con información de días, semanas o meses anteriores al momento de ejecutarlo. De esta forma, conforme va avanzando el tiempo también va avanzando los rangos de fechas de los cuales el informe recoge la información.
../../_images/3_081h_aggregator_realm_reports_reports_schedule-time-ranges_0-36.jpg

Cada uno de los rangos tiene disponible las opciones:

  • Botón +: para anidar varios rangos de fechas relativos al lanzamiento de informes.
  • Botón ↓: para duplicar un rango de fecha determinado.
  • Botón X: para eliminar un rango de fecha determinado.
  • Selector de la zona horaria: a utilizar para establecer el rango de fechas. Esta opción es útil para operarios que quieran programar informes aplicando una zona horaria distinta a la que se encuentra.

Note

Para la representación de rangos de fechas se utiliza el formato datetokens, mostrado a partir de los campos from y to. Este componente es meramente informativo ya que no aplica cambios alguno.

../../_images/3_081i_aggregator_realm_reports_reports_schedule-date-tokens_0-36.jpg

Para más información consulta los siguientes enlaces:

Para la configuración de rangos relativos de fechas habrá que hacer uso de una de las tres opciones disponibles:

1. Presets: ofrece varios criterios de rangos preconfigurados. Por ejemplo, la opción Today, indica que el informe será lanzado con las muestras recogidas durante el periodo de tiempo transcurrido en la jornada de hoy, o This week utilizará las muestras recogidas durante el periodo de tiempo transcurrido en la semana actual (desde el día de inicio de semana, al día y hora presente). Basta con seleccionar uno de los criterios para que se active dicha configuración.

../../_images/3_081j_aggregator_realm_reports_reports_schedule-time-ranges-presents_0-36.jpg

2. Relative: este criterio permite definir un rango relativo personalizado para la recogida de información de informes. Es más flexible que la opción Presets, donde los rangos vienen prefijados y sin opción a modificarse.

../../_images/3_081k_aggregator_realm_reports_reports_schedule-time-ranges-relative_0-36.jpg

Los rangos temporales pueden ser ajustados en minutos, horas, días, semanas y meses atrás utilizando los selectores From: y To:, y en el caso de este último, también existe la opción hasta ahora mismo (Just now), que cogería las muestras desde el from establecido, hasta el mismo momento en el que se ha lanzado el informe.

../../_images/3_081l_aggregator_realm_reports_reports_schedule-time-ranges-relative-options_0-36.jpg

Dentro de la selección de los rangos existen otras dos configuraciones complementarias para la limitación de resultados:

  • No snap: activando esta opción la fecha que se establecerá será la actual menos el tiempo determinado.

Ejemplo

Siendo las 15:00 h. del 12/02/2019, si el informe de configura desde un día atrás (From: 1 days ago), hasta 5 minutos atrás (To: 5 Minutes ago) del momento actual, se recogerán las muestras registradas desde las 15:00 h. del día 11/02/2019 hasta las 14:55 h. del día 12/02/2019.

  • Beginning of current (minute | hour | day | week | month): en este caso la fecha que se establece es la actual, menos el tiempo determinado truncado al inicio de la magnitud seleccionada.

Ejemplo

Siendo las 15:00 h. del 12/02/2019, si el informe se configura desde un día atrás (From: 1 days ago), la fecha que se establecerá será 11/02/2019 00:00 h., que viene siendo el inicio del día anterior. Si con la misma fecha y hora actual, 12/02/2019 a las 15:00 h. (Martes) se configura desde una semana atrás (From: 1 weeks ago), la fecha que se establecerá será 04/02/2019 00:00 (Lunes), que es una semana atrás desde la fecha actual truncado al inicio de la semana (Lunes).

3. Advanced: este criterio permite definir un rango de fechas para la recogida de muestras, mediante la utilización del formato datetokens.

../../_images/3_081m_aggregator_realm_reports_reports_schedule-time-ranges-advanced_0-36.jpg

Note

Para más información sobre datetokens consulta los siguientes enlaces:

RECIPIENTS
Esta opción permite seleccionar cero, uno o varios destinatarios a los cuales se les enviará un correo electrónico cuando el informe esté terminado. Sólo estarán disponibles en el desplegable los destinatarios que estén dados de alta como contactos en la herramienta de importación (Import-tool) de WOCU.
../../_images/3_081n_aggregator_realm_reports_reports_schedule-recipients_0-361.jpg

Attention

Esta opción también determina la visibilidad del informe atendiendo al siguiente criterio:

  • Si se selecciona 0 ó 1 contacto: el informe será privado.
  • Si se selecciona más de un contacto: el informe será público.
REPORT NAME
Por último, este campo permite establecer el nombre identificativo del próximo informe que se va a generar. Este es un campo obligatorio.
../../_images/3_081ny_aggregator_realm_reports_reports_schedule-report-name_0-36.jpg

Finalizada la configuración, el informe se generará de acuerdo a los parámetros establecidos haciendo clic en el botón azul Create (Crear). En caso contrario, utilizar la opción Close (Cerrar) para volver atrás sin efectuar cambio alguno.

../../_images/3_081o_aggregator_realm_reports_reports_schedule-create-close-buttons_0-361.jpg

Formato Crontab

El formato de este campo es similar al formato de un crontab UNIX. Se compone de cinco códigos separados por espacios, donde cada uno de estos códigos especifica una unidad de tiempo concreta: minutos, horas, días de la semana, días del mes, meses del año. En cada uno de esos códigos especificaremos por separado:

  • A qué minutos queremos que se ejecute el informe (usando el primer código).
  • A qué horas queremos que se ejecute el informe (usando el segundo código).
  • Qué días de la semana queremos que se ejecute el informe (usando el tercer código).
  • Qué días del mes queremos que se ejecute el informe (usando el cuarto código).
  • Qué meses del año queremos que se ejecute el informe (usando el quinto código).

Cada minuto, se comprueba si se debe ejecutar un informe o no, atendiendo a si hemos permitido que se ejecute un informe en el minuto actual, y a la vez en la hora actual, y a la vez en el día de la semana actual, y a la vez en el día del mes actual, y a la vez en el mes del año actual.

Para ofrecer una aproximación sencilla a estos códigos, algunos valores que se pueden poner en cada campo son:

  • Asterisco (*): quiere decir que se puede ejecutar cada minuto, o cada hora, o cada día de la semana, o cada día del mes, o cada mes del año.

  • Un numeral: quiere decir que se puede ejecutar cuando el minutero, hora, número de día de la semana, número del día del mes o número del mes del año coincidan con el que le hemos dicho:

    • Como minutero podemos especificar un número comprendido entre 0 y 59.
    • Como hora del día podemos especificar un número comprendido entre 0 y 23.
    • Como día de la semana podemos especificar el 0 para el domingo, el 1 para el lunes, y así sucesivamente hasta el 6, para el sábado. En el caso de los días de la semana, es legal usar las palabras mon, tue, wed, thu, fri, sat, sun, para referirse a los días de la semana de una manera más literal.
    • Como día del mes podemos especificar un número entre el 1 y el 31 (atendiendo al hecho de que no todos los meses tendrán 31 días).
    • Como mes del año podemos especificar un número entre el 1 y el 12.

Ejemplos

  • 30 12 * 1 * quiere decir que el informe se puede ejecutar “cada día 1 de todos los meses, a las 12:30, sea el día de la semana que sea”.
  • 0 0 mon * * quiere decir que el informe se puede ejecutar “cada lunes a medianoche (00:00), todos los días de todos los meses del año”.

Sin embargo, para cada unidad, también podemos especificar más de una posible opción, si las separamos con comas.

Ejemplos

  • 0 0 mon,tue,wed,thu,fri * * quiere decir que el informe se ejecutará cada lunes, martes, miércoles, jueves y viernes a medianoche.
  • 4,8,15,16,23,42 6 * * * quiere decir que el informe se ejecutará cada día a las 6:04, 6:08, 6:15, 6:16, 6:23 y 6:42.

Además, para declarar varios valores se aceptan los siguientes atajos:

Dos números separados por un guión: permiten especificar un rango de fechas. De modo que podemos utilizar 10-15 como alternativa para 10,11,12,13,14,15.

Asterisco-barra-numeral: permite especificar todos aquellos valores que sean divisibles por el numeral que especifiquemos. Por ejemplo, */2 equivale a todos los posibles valores divisibles por 2; */5 equivale a todos los posibles valores divisibles por 5.

Por ejemplo, la programación 20-25 */5 * * *, hace que se ejecute el informe en los minutos 20, 21, 22, 23, 24 y 25 a las horas 0, 5, 10, 15 y 20.

Important

Después de ejecutarse a las 20:25, la siguiente ejecución será a las 0:20, porque 0 es el siguiente número divisible por 5 que hay después de la hora 20. En otras palabras, el numeral no quiere decir que se ejecute cada N días, horas o minutos, sólo que se ejecute en una unidad de tiempo divisible por el numeral proporcionado.