OKMFlow se configura a través del fichero $TOMCAT_HOME/okmflow.properties. Cualquier propiedad que no esté presente ahí recurre al valor por defecto incluido en la aplicación. Esta página documenta las propiedades que un administrador puede necesitar cambiar; las propiedades que no aparecen aquí son configuración interna de Spring Boot y no deben tocarse.
Clase del driver JDBC. Cámbiela junto con la URL al usar un motor de base de datos distinto de MariaDB (vea la guía de Installation para ejemplos con MySQL, PostgreSQL, SQL Server y Oracle).
spring.datasource.url
jdbc:mariadb://localhost:3306/okmflow?…
URL de conexión JDBC, incluyendo host, puerto y nombre de la base de datos.
Debe permanecer en validate. Desde v1.8, Flyway es el único mecanismo permitido para cambiar el esquema de la base de datos; Hibernate solo comprueba que las entidades coincidan con él.
spring.jpa.properties.hibernate.dialect
org.hibernate.dialect.MariaDBDialect
Dialecto SQL de Hibernate; debe coincidir con el motor de base de datos configurado.
spring.flyway.enabled
true
Activa las migraciones de esquema de Flyway al arrancar. No debería desactivarse.
spring.flyway.baseline-on-migrate / spring.flyway.baseline-version: solo necesarias una vez, temporalmente, al poner una instalación previa a Flyway bajo el control de Flyway. Vea la guía Migration from v1.7 to v1.8.
URL base de la instancia de OpenKM a la que se conecta OKMFlow mediante web services/REST.
openkm.rest.user
okmAdmin
Usuario de OpenKM con el que OKMFlow inicia sesión para leer/escribir documentos, notificar a usuarios, etc. Necesita privilegios de administrador en el lado de OpenKM.
openkm.rest.password
admin
Contraseña de openkm.rest.user.
openkm.rest.token.expiration
365
Minutos que permanece válido el token de sesión de OpenKM obtenido al iniciar sesión. OKMFlow guarda el token en caché y solo vuelve a iniciar sesión cuando expira; reducir este valor fuerza una reautenticación más frecuente.
Las instancias de proceso se ejecutan de forma asíncrona en un pool de hilos dedicado.
Propiedad
Por defecto
Descripción
core.pool.size
5
Número de hilos que el pool mantiene siempre activos para ejecutar instancias de proceso.
max.pool.size
10
Número máximo de hilos hasta el que puede crecer el pool una vez la cola de abajo está llena.
queue.capacity
25
Número de ejecuciones pendientes que el pool encola antes de crecer por encima de core.pool.size. Si la cola está llena y el pool ya está en max.pool.size, la tarea se ejecuta en el hilo que la invoca en vez de ser rechazada.
Número máximo de filas devueltas por el panel de búsqueda de procesos/tareas. Aumentarlo permite más resultados por búsqueda a costa de más memoria y respuestas más lentas.
Con qué frecuencia (duración ISO-8601) OKMFlow comprueba las instancias de proceso en ejecución/espera en busca de acciones de nodo programado (temporizadores) pendientes. Reducirlo hace los temporizadores más reactivos a costa de más carga en la base de datos.
pending.task.instances.rate
PT60S
Con qué frecuencia (duración ISO-8601) OKMFlow revisa las instancias de tarea pendientes en busca de fechas vencidas y dispara la notificación de retraso.
Asunto del correo enviado cuando se asigna una tarea a un usuario. Admite marcadores de FreeMarker como ${taskInstance.taskNodeName}.
task.notification.overdue.subject
Overdue task: …
Asunto del correo enviado cuando una tarea asignada queda vencida.
task.notification.body
classpath:tpl/task-assignment-body.html
Ubicación de la plantilla HTML usada como cuerpo del correo de asignación de tarea. Apúntela a file:/path/to/custom.html para usar una plantilla personalizada sin reconstruir la aplicación.
task.notification.overdue.body
classpath:tpl/task-overdue-body.html
Ubicación de la plantilla HTML usada como cuerpo del correo de tarea vencida. Misma sustitución file: que arriba.
Estos trabajos eliminan datos antiguos de auditoría/historial para que la base de datos no crezca indefinidamente. Todos están desactivados por defecto.
Process instance purge: elimina instancias de proceso finalizadas (y sus instancias de tarea, variables y logs) más antiguas que el periodo de retención. Las instancias en ejecución, espera, pausadas y con error nunca se tocan.
Propiedad
Por defecto
Descripción
process.instance.purge.enabled
false
Activa el trabajo.
process.instance.purge.cron
0 0 3 * * *
Expresión cron que controla cuándo se ejecuta.
process.instance.purge.retention.days
90
Número de días que se conserva una instancia de proceso finalizada antes de eliminarla.
Process instance log purge: elimina filas del log de auditoría de instancias de proceso más antiguas que el periodo de retención.
Propiedad
Por defecto
Descripción
process.instance.log.purge.enabled
false
Activa el trabajo.
process.instance.log.purge.cron
0 0 2 * * *
Expresión cron que controla cuándo se ejecuta.
process.instance.log.purge.retention.days
90
Número de días que se conserva una fila del log de auditoría antes de eliminarla.
Variable log purge: elimina filas del log de auditoría de cambios de variables de flujo de trabajo más antiguas que el periodo de retención.
Propiedad
Por defecto
Descripción
variable.log.purge.enabled
false
Activa el trabajo.
variable.log.purge.cron
0 0 2 * * *
Expresión cron que controla cuándo se ejecuta.
variable.log.purge.retention.days
90
Número de días que se conserva una fila del log de auditoría antes de eliminarla.