Salah satu masalah umum yang sering terjadi saat menggunakan Odoo adalah duplikasi data.
Misalnya, user tanpa sengaja membuat dua pelanggan dengan nama yang sama, dua produk identik, atau dua transaksi yang seharusnya satu.
Masalah ini bisa menyebabkan laporan menjadi tidak akurat dan mempersulit integritas data.
Untungnya, Odoo menyediakan cara sederhana untuk mencegah duplikasi data secara otomatis menggunakan Automation Rules (Server Actions) — bahkan tanpa membuat modul kustom.
⚙️ Apa Itu Automation Rules di Odoo?
Automation Rules (atau Automated Actions) adalah fitur di Odoo yang memungkinkan Anda menjalankan logika otomatis setiap kali terjadi aksi tertentu, seperti:
- Saat record dibuat (On Creation)
- Saat diperbarui (On Update)
- Saat dihapus (On Deletion)
- Atau secara terjadwal (Based on Time Condition)
Fitur ini bisa dibuat menggunakan Odoo Studio maupun dari menu Settings → Technical → Automation → Automated Actions (jika mode developer aktif).
Dengan fitur ini, Anda bisa menulis sedikit kode Python sederhana untuk memvalidasi atau membatalkan pembuatan data yang duplikat.
Contoh dibawah ini adalah cara untuk mencegah duplikasi vendor reference pada purchase order.
Pada automation rules konfigurasi seperti di bawah ini :

# Hanya jalankan jika ada nilai partner_ref
if record.partner_ref:
# Cari PO lain dengan vendor reference yang sama
duplicate_po = env['purchase.order'].search([
('partner_ref', '=', record.partner_ref),
('id', '!=', record.id)
], limit=1)
if duplicate_po:
raise UserError(
f"Vendor Reference '{record.partner_ref}' sudah digunakan pada Purchase Order {duplicate_po.name}."
)

Cara mencegah duplikasi di odoo tanpa coding