CÓMO CREAR Y CONFIGURAR ACCIONES DE SERVIDOR EN ODOO 19
La automatización se ha convertido en una parte integral de la gestión empresarial moderna, ayudando a las organizaciones a mejorar la eficiencia y minimizar el esfuerzo manual. Odoo proporciona varias herramientas para esto, entre las que destacan las Acciones de Servidor.
Estas permiten configurar operaciones automatizadas en registros, garantizando que las tareas repetitivas se ejecuten de manera consistente sin necesidad de un desarrollo complejo. En Odoo 19, esta función trae mejoras clave: acciones contextuales más accesibles y la capacidad de ejecutar múltiples operaciones en un solo flujo.
1. Accediendo a las Acciones de Servidor
Para ver todas las acciones disponibles, primero debe activar el Modo Desarrollador. Una vez activo, vaya a Ajustes > Técnico > Acciones > Acciones de Servidor.

Aquí podrá ver y gestionar todas las acciones configuradas en su entorno.
2. Creando una Nueva Acción (Sin Código)
Haga clic en el botón Nuevo y complete los detalles:
- Nombre de la Acción: Algo descriptivo (ej. "Duplicar Pedido Especial").
- Modelo: El modelo de Odoo donde se aplicará (ej. Sale Order, Invoice, Contact).
- Acción a realizar: Elija el tipo de operación.

Tipos de acciones disponibles en Odoo 19:
- Actualizar registro: Cambiar el valor de un campo automáticamente.
- Crear registro: Generar una nueva tarea o contacto.
- Registro duplicado: Clonar un documento existente.
- Enviar correo electrónico: Disparar una plantilla de email.
- Ejecutar código Python: Para lógica personalizada avanzada.
- Enviar notificación Webhook: Para conectar con sistemas externos.
- Acciones múltiples: Ejecutar una secuencia de varias acciones al mismo tiempo.
Ejemplo Práctico 1: Duplicar Pedido desde la Interfaz
Imagine que un equipo de ventas necesita duplicar pedidos recurrentes rápidamente. En lugar de hacerlo manualmente, crearemos un botón para esto.
- Cree una nueva Acción de Servidor llamada "Duplicar Pedido de Venta".
- Seleccione el modelo: Orden de Venta (sale.order).
- En "Acción a realizar", seleccione Registro Duplicado.
- Haga clic en el botón Crear Acción Contextual.

Al hacer esto, Odoo agregará automáticamente la opción en el menú "Acción" (el engranaje) dentro de los pedidos de venta. Ahora, al seleccionar un pedido y dar clic en esa opción, se generará un borrador idéntico al instante.

Ejemplo Práctico 2: Duplicar con Lógica Personalizada (Python + XML)
Para partners que necesitan lógica a medida (por ejemplo: duplicar el pedido pero borrando ciertos campos sensibles o cambiando el estado a "Borrador" forzosamente), el método de interfaz no es suficiente. Aquí usamos código.
1. Definición en XML (ir_actions_data.xml)
Este código registra la acción en el sistema y la vincula al modelo de ventas.
XML
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="duplicate_sale_order_python" model="ir.actions.server">
<field name="name">Duplicar Pedido (Python)</field>
<field name="model_id" ref="sale.model_sale_order"/>
<field name="binding_model_id" ref="sale.model_sale_order"/>
<field name="binding_view_types">list,form</field>
<field name="state">code</field>
<field name="code">
action = records.action_duplicate_sale_order()
</field>
</record>
</odoo>
2. Implementación en Python (models/sale_order.py)
Extendemos el modelo para agregar nuestra lógica personalizada.
Python
from odoo import models
class SaleOrder(models.Model):
_inherit = 'sale.order'
def action_duplicate_sale_order(self):
for order in self:
# Duplicar la orden usando el método nativo copy()
new_order = order.copy()
# Lógica extra: Asegurar que esté en borrador y agregar nota
new_order.write({
'state': 'draft',
'note': 'Pedido duplicado automáticamente mediante Acción de Servidor'
})
3. Ejecución
Una vez actualizado el módulo, vaya a Ventas, seleccione un pedido y busque la nueva acción "Duplicar Pedido (Python)" en el menú de acción.

Conclusión
Las Acciones de Servidor en Odoo 19 transforman la implementación técnica. Permiten a los partners resolver requerimientos complejos del cliente en minutos, ya sea mediante configuración visual o scripts de Python, manteniendo el sistema flexible y fácil de mantener.