El campo active en Odoo

Gustavo Orrillo
- 01/09/2021 - 1 min. de lectura


Supongamos que necesitamos no trabajar más con un cliente, o una cuenta contable. Para ello naturalmente solemos borrarlo. Pero que sucede si este dato maestro tiene asociadas operaciones? Como por ejemplo apuntes contables u pedidos de venta? En ese caso no se puede borrar el dato maestro debido a que si lo hacemos, la integridad de datos se vería comprometida. Para realizar esta baja de un dato maestro, se debe realizar una baja lógica.

Como Odoo realiza la baja lógica de sus registros

Odoo permite agregar a todos sus modelos un campo llamado active. Cada vez que este campo se agrega a un modelo, el mismo debe tener un valor default igual a True. Si el valor default del campo active es False, en ese caso cualquier registro creado por el usuario no podrá ser visible. Por que este comportamiento? Cuando el campo active se encuentra presente en un modelo, a todas las operaciones de búsqueda en Odoo se les agrega el dominio ('active','=',True). A menos que explicitamente se indique lo contrario.

El campo active no solo modifica el comportamiento de las búsquedas. Tambien agrega al modelo con el campo active dos acciones: una es Archivar y otra es desarchivar. Estas son muy últiles para los usuarios.

Cuando no usar la baja lógica

El campo active se debe utilizar en datos maestros. Nunca en transacciones. bajo ninguna circumstancia. A veces es tentador hacer desaparecer transacciones de todos los reportes o vistas simplemente agregando el campo active. Pero es una mala práctica que al poco tiempo se vuelve en contra. 

Les doy un ejemplo... supongamos que en un arranque de espiritu emprendedor le agregan el campo active para poder archivar los pedidos de venta (sale.order). Y empiezan a archivar a los pedidos... que sucede con los datos relacionados? por ejemplo facturas o remitos? u oportunidades? Agregando el campo active a una transacción provocó que la base de datos ya se encuentre en un estado inconsistente.

Por eso... eviten usar el campo active en transacciones de la misma manera que uno evita la peste negra. Si uno cree que necesita archivar transacciones... en ese caso necesitan revisar su workflow porque hay algo que esta mal que le impide cancelar las transacciones. 

Acerca de:

Gustavo Orrillo

Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.