¡Ya casi llegamos al gran final! En el Día 22 vimos el BI (Business Intelligence), y hoy vemos el mecanismo de automatización que mantiene la salud del sistema: las Tareas Programadas o Cron Jobs.
En Odoo (V19), los procesos que deben ejecutarse de forma recurrente (basados en el tiempo) se definen mediante registros del modelo ir.cron.
¿Qué hemos cubierto en el Día 23?
Hemos definido una nueva tarea programada en XML y el método Python que esta tarea invocará en nuestro modelo.
Los componentes clave que hemos cubierto son:
1. El Objeto de la Tarea (ir.cron)
La tarea programada es una acción de XML de tipo <record> que apunta al modelo ir.cron. Los campos clave que debemos definir son:
- name: Nombre visible de la tarea (ej. «Enviar Recordatorios de Vencimiento»).
- model_id: El modelo en el que se encuentra el método que queremos ejecutar.
- function: El nombre del método Python que se debe llamar.
- interval_number y interval_type: Definen la periodicidad (ej. interval_number=1 y interval_type=’days’ para una vez al día).
- numbercall: Cuántas veces debe ejecutarse esta tarea. Si es -1, se ejecuta indefinidamente.
2. El Método Python
El método Python al que apunta el cron debe estar definido en el modelo especificado y no debe requerir argumentos especiales más allá de self.
- Lógica: Este método contiene la lógica de negocio que se ejecutará (ej. buscar todos los registros en estado pending y enviar una notificación).
- Ejecución: Es importante recordar que estos métodos se ejecutan por el servidor de Odoo bajo el usuario técnico (o el definido en el campo user_id del cron), por lo que tienen todos los permisos.
La Importancia para la Eficiencia
Los Cron Jobs son esenciales para automatizar tareas repetitivas que consumirían tiempo del usuario. Desde la sincronización de inventario hasta el envío masivo de correos, ir.cron es el motor que mantiene los procesos en funcionamiento constante, garantizando la frescura y la coherencia de los datos.
Explicación Detallada en Vídeo
En el siguiente vídeo, te muestro la sintaxis XML de la tarea programada, cómo configurar la periodicidad y la importancia de que el método Python asociado no requiera argumentos extra.
Código Fuente en GitLab
Puedes consultar el código fuente completo de esta lección, con la definición de la tarea programada de ejemplo, directamente en nuestro repositorio.
➡️ Ver el Código en GitLab: https://github.com/angelmoya/calendario-adviento-curso-tecnico-odoo-19/tree/ba4196fa1bc023300c6ee8cd70ad38548d7396be
Conecta Conmigo y Sigue Aprendiendo
¡Ya puedes automatizar cualquier proceso! Mañana, el gran final con el campo más eficiente.
- LinkedIn: Conecta conmigo en LinkedIn
- YouTube: ¡No olvides suscribirte al canal para no perderte ninguna lección! http://www.youtube.com/@AngelMoya-Odoo