Acciones de servidor en Odoo
Automatizar sus procesos empresariales nunca fue tan sencillo
17 d’abril, 2024 per
Acciones de servidor en Odoo
Alberto Martínez Rodriguez

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.

De forma adicional, gracias a la modularidad de Odoo y a su increíble comunidad, es posible mejorar esta funcionalidad y añadir más acciones a realizar tipificadas. El mejor ejemplo es el módulo de OCA server_action_mass_edit, que permite actualizar los campos deseados de múltiples registros al mismo tiempo por medio de acciones de servidor de edición masiva. 

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

Además de poder crear acciones planificadas funcionalmente, tal y como se ha explicado en el apartado anterior, también es posible generarlas desde un fichero .xml, de manera que se añadirá en el momento en el que se instale el módulo en el que este archivo se encuentra. Se utiliza la acción planificada "Invite to use two-factor authentication", del módulo auth_totp_mail, que envía un email al usuario seleccionado:

<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.

Si desea saber más sobre el uso y configuración de acciones de automáticas puede leer este otro artículo de nuestro blog.

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. 

Si desea saber más sobre el uso y configuración de acciones de planificadas puede leer este otro artículo de nuestro blog.

 En Sygel trabajamos cada día para adaptar a diferentes escenarios las opciones que tanto Odoo como la Odoo Community Association (OCA) ofrecen. Somos conscientes de que cada empresa tiene unas características específicas y, por ello, el trato personalizado se traduce en la implantación del ERP para que cumpla tanto con las expectativas como con las necesidades de nuestros clientes. A la vez, compartimos nuestros avances con el resto de la comunidad, para que cada día se beneficie más gente.