En este post explicamos como automatizar procesos manuales con las acciones de servidor de Odoo, y a entender su relación con otros subtipos de acciones como las planificadas o las automáticas
A continuación, podemos ver un índice con los temas que se tratan en esta entrada:
1. ¿Qué son las acciones de servidor en Odoo?
2. Configuración de una acción de servidor
2.1 Configuración a través de código
3. Automatización de acciones de servidor
3.1 Acciones de servidor
3.2 Acciones automáticas
3.3 Acciones planificadas
1. ¿Qué son las acciones de servidor en Odoo?
Una acción de servidor en Odoo es un tipo de modelo que permite definir operaciones personalizadas y asociarlas a otro modelo, sobre el que se podrán ejecutar. Los usuarios que tengan acceso a la acción de servidor tendrán disponible la opción de ejecutarla sobre los registros que ellos escojan del modelo configurado.
En la imagen de la derecha se puede ver un ejemplo de acción de servidor: "Invitar a usar la autenticación de 2 pasos". Esta acción está configurada para ejecutarse cuando queramos en el modelo usuario de Odoo, para ello debemos ir a una vista formulario o lista, seleccionar los registros (o usuarios en este caso) sobre los que queremos ejecutar la operación, y hacer click en el botón acción.
Como se puede ver, tanto el uso como la configuración de esta herramienta se realiza desde el propio cliente de Odoo. Esto, sumado a su gran versatilidad, nos permite automatizar eficientemente nuestros procesos en tiempo real, especialmente si se trata de operaciones repetitivas sencillas.
2. Configuración de una acción de servidor
Para crear una acción de servidor es necesario rellenar los siguientes campos:
Nombre: Nombre de la acción de servidor.
Modelo: Modelo de Odoo sobre el que se aplicará la acción de servidor.
Acción a realizar: Tipo de acción según su comportamiento. Odoo ofrece una serie de acciones tipo, ya pre-configuradas, que podremos terminar de personalizar de forma muy sencilla con la interfaz:
Crear un nuevo registro
Actualizar el registro
Ejecutar varias acciones
Enviar correo electrónico
Añadir seguidores
Crear una nueva actividad
Manda mensaje de texto SMS
Ejecutar el código python: Si ninguna de las acciones preestablecidas satisface nuestra necesidad, Odoo ofrece la posibilidad de crear una acción totalmente personalizada utilizando código Python.
Si, una vez hemos creado la acción de servidor, queremos que nos aparezca cuando hacemos click en el botón "Acción" de un registro, debemos darle al botón "Crear acción contextual". Si por el contrario, tenemos una acción y queremos ocultarla, nos aparecerá en su lugar la opción "Eliminar la acción contextual".
Y listo, ya tendríamos una acción de servidor creada y lista para ser utilizada. Finalmente, si necesitamos restringir la acción a un grupo de usuarios en particular, debemos dirigirnos a la pestaña de seguridad, e introducir los grupos de usuarios que podrán utilizar la acción. Si no hay ningún grupo, la acción estará disponible para todos los usuarios con permisos en el modelo.
Si desea saber más sobre la edición de campos de forma masiva puede leer este otro artículo de nuestro blog.
2.1 Configuración a través de código
<record model="ir.actions.server" id="action_activate_two_factor_authentication"> <field name="name">Open two-factor authentication configuration</field> <field name="model_id" ref="base.model_res_users"/> <field name="state">code</field> <field name="code"> user = env.user action = user.action_open_my_account_settings() </field> <field name="groups_id" eval="[(4, ref('base.group_user'))]"/> </record>
Aparecen los siguientes valores:
name. Nombre de la acción de servidor.
model_id. Nombre técnico del modelo precedido de 'model_'
state. Tipo de acción a realizar
code. Código Python que ejecuta la acción planificada.
groups_id. Grupos de usuarios que pueden acceder a la acción planificada.
3. Automatización de acciones de servidor
Ya hemos visto qué son y cómo crear acciones de servidor; el siguiente paso es aprender a automatizarlas. Para ello, Odoo tiene internamente 3 tipos de acciones de servidor en función de su uso: acciones de servidor, acciones automáticas y acciones planificadas.
Sin embargo, estos tipos adicionales se configuran desde su propio menú, ya que los parámetros de ejecución de la acción han sido añadidos en modelos adicionales, que extienden el funcionamiento base de una acción de servidor.
3.1 Acciones de servidor
Es el tipo principal y el explicado en los apartados 1 y 2. Se crean desde el menú de Ajustes -> Técnico -> Acciones de servidor, y está ideado para ejecutarse sobre una serie de registros filtrados y seleccionados manualmente.
3.2 Acciones automáticas
Las acciones automáticas son un tipo especial de acciones de servidor al que se le asocia una serie de reglas que causan que cuando ocurre un evento 'A' se desencadene el contenido de la acción. Para habilitarlas debemos instalar el módulo base_automation, que pertenece al core de Odoo, y dirigirnos a un menú especial: Ajustes > Técnico > Acciones Automatizadas.
Las acciones automáticas son muy útiles para facilitar el flujo de trabajo, ahorrándonos tener que realizar pasos repetitivos y reduciendo la cantidad de errores manuales cometidos. Además, también se pueden utilizar para verificar que los datos introducidos por un usuario son correctos. Un ejemplo de acción automatizada podría ser que se envíe un correo electrónico al cliente al confirmar una venta.
3.3 Acciones planificadas
Las acciones planificadas son otro tipo especial de acciones de servidor. Tienen una propiedad adicional que permite que se ejecuten de forma periódica cada cierto intervalo de tiempo, lo que las hace muy útiles para automatizar tareas recurrentes dentro del sistema. Algunos ejemplos de acciones planificadas serían la creación de una copia de seguridad diaria, o la lectura de la bandeja de entrada del servidor de correo electrónico entrante de forma periódica.
Para crear una acción planificada debemos dirigirnos a otro menú especial: Ajustes > Técnico > Acciones Planificadas. En este caso no será necesario instalar ningún módulo adicional. Una vez ahí podremos definir cada cuanto tiempo queremos que se ejecute la acción planificada, y el código python que queremos que se ejecute.