Dokumentasi master Odoo menyatakan bahwa layanan RPC database lama dihapus di Odoo 20. API XML-RPC dan JSON-RPC yang lebih luas sudah tidak disarankan sejak versi 19.0, tetapi Odoo 20 tidak menghapus semua layanan lama. Odoo mendokumentasikan layanan common dan object sebagai masih tersedia hingga Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Karena itu, tim integrasi perlu mengidentifikasi layanan yang digunakan oleh setiap koneksi eksternal, bukan menganggap dukungan RPC lama sebagai satu fitur dengan satu tanggal penghapusan.
Halaman acara Americas Odoo menyebutkan bahwa Odoo 20 akan dirilis selama acara di San Francisco pada 2 dan 3 September 2026. (Oxp26 Americas Introduction) Perencanaan upgrade dapat mempertimbangkan penghapusan layanan database yang terdokumentasi sekarang, tetapi keputusan produksi harus dicek terhadap dokumentasi rilis final Odoo 20.
Penghapusan ini berlaku untuk layanan tertentu
Odoo mengidentifikasi `/xmlrpc`, `/xmlrpc/2` dan `/jsonrpc` sebagai endpoint lama yang tidak disarankan sejak versi 19.0. Di dalam API tersebut, layanan database dihapus di Odoo 20, sementara layanan common dan object dijadwalkan tetap ada hingga Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Integrasi yang menggunakan layanan yang tetap dipertahankan mungkin masih berfungsi setelah upgrade ke Odoo 20, tetapi endpoint saja tidak menjamin kompatibilitas.
Sebuah sistem dapat menggunakan layanan yang berbeda melalui antarmuka RPC lama. Karena itu, tinjauan integrasi harus mencatat endpoint dan layanan yang dipanggil. Menyebut aplikasi hanya sebagai integrasi XML-RPC atau JSON-RPC tidak menunjukkan apakah aplikasi bergantung pada operasi yang dihapus di Odoo 20. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)
Ketersediaan layanan common dan object yang berlanjut ini bersifat sementara. Odoo menjadwalkan keduanya untuk dihapus di Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Tim dapat memisahkan pekerjaan mendesak pada panggilan layanan database dari migrasi layanan yang dipertahankan, tetapi keduanya memerlukan rencana.
JSON-2 mengubah kontrak permintaan
Odoo mendokumentasikan JSON-2 sebagai API pengganti. Format endpoint-nya adalah `/json/2/<model>/<method>`, dengan model dan method disertakan di URL. (Odoo master Docs: Reference External API) Karena itu, migrasi bukan sekadar mengganti base path di klien RPC yang sudah ada. Setiap operasi harus dipetakan ke rute model dan method yang sesuai.
JSON-2 memerlukan argumen bernama di dalam body permintaan JSON, bukan argumen RPC posisional. (Odoo master Docs: Reference External API) Wrapper yang ada, middleware, dan klien yang dihasilkan otomatis mungkin mengasumsikan bahwa urutan argumen menentukan makna. Komponen tersebut perlu ditinjau satu per satu. Meneruskan permintaan lama ke endpoint baru tidak akan berhasil jika klien tetap menyusun parameter secara posisional.
Untuk setiap operasi yang dimigrasikan, tim harus mendokumentasikan model target, method, dan argumen bernama yang diperlukan oleh JSON-2. (Odoo master Docs: Reference External API) Permintaan kemudian harus diuji di lingkungan Odoo 20 yang relevan, terutama ketika library integrasi bersama membangun panggilan untuk beberapa aplikasi. Perbandingan payload statis tidak dapat memastikan bagaimana server atau klien menangani seluruh permintaan.
Autentikasi juga harus berubah
JSON-2 menggunakan autentikasi API key bearer. (Odoo master Docs: Reference External API) Pekerjaan migrasi harus mencakup pembuatan kunci, penyimpanan yang aman, penanganan header otorisasi, dan penggantian kunci. Proxy, gateway, dan pustaka klien harus diperiksa untuk memastikan bahwa mereka mempertahankan header saat meneruskan permintaan. Pencatatan, pemantauan, dan penanganan error juga harus ditinjau agar kredensial tidak terekspos.
Dokumentasi menetapkan metode autentikasi, tetapi setiap organisasi harus menentukan bagaimana API key sesuai dengan kontrol kredensialnya. (Odoo master Docs: Reference External API) Itu mencakup penetapan tanggung jawab atas kunci, pengendalian tempat kunci dapat digunakan, dan pendefinisian cara integrasi yang terdampak akan diperbarui saat sebuah kunci diganti.
Field biner memiliki perubahan kompatibilitas terpisah
Catatan perubahan ORM Odoo mencatat satu perubahan RPC Odoo 20 lagi: representasi field biner menambahkan `BinaryValue.filename`. (Odoo master Docs: Orm Changelog) Ini terpisah dari penghapusan database-service karena mengubah data yang dikembalikan, bukan ketersediaan layanan. Aplikasi yang membaca, mengubah, atau memvalidasi respons yang berisi field biner harus disertakan dalam pengujian kompatibilitas.
Changelog mengonfirmasi bahwa anggota `filename` ditambahkan, tetapi dampak praktisnya bergantung pada klien. (Odoo master Docs: Orm Changelog) Pengujian harus memeriksa apakah skema ketat, serializer, perbandingan respons, dan transformasi hilir menerima anggota tambahan tersebut. Klien yang mengabaikan field yang tidak dikenal mungkin tidak memerlukan penyesuaian, tetapi perilaku itu harus diverifikasi, bukan diasumsikan.
Cara menentukan cakupan audit integrasi
Mulailah dengan mengidentifikasi koneksi yang menggunakan `/xmlrpc`, `/xmlrpc/2`, atau `/jsonrpc`, yang ditandai Odoo sebagai endpoint yang sudah usang. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Inventaris harus mencakup aplikasi yang dikembangkan secara internal, middleware, proses terjadwal, dan konektor pihak ketiga yang konfigurasi atau kode sumbernya tersedia. Tetapkan pemilik untuk setiap koneksi agar tujuan dan statusnya dapat diverifikasi.
Selanjutnya, klasifikasikan setiap koneksi berdasarkan service lama. Penggunaan database-service memerlukan perbaikan untuk Odoo 20, sedangkan penggunaan common dan object service masih didokumentasikan tersedia hingga Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Ini mendukung rencana bertahap: tangani dulu ketidakcocokan Odoo 20, lalu tetapkan tanggal migrasi untuk panggilan yang masih deprecated.
Untuk integrasi yang beralih ke JSON-2, catat route `/json/2/<model>/<method>`, argumen request bernama, dan autentikasi bearer API-key yang diperlukan oleh interface pengganti. (Odoo master Docs: Reference External API) Kasus uji harus mencakup permintaan berhasil, autentikasi ditolak, argumen bernama tidak valid, dan penanganan data yang dikembalikan oleh aplikasi. Tambahkan kasus field biner di mana pun field tersebut muncul.
Konfirmasikan perilaku final Odoo 20
Rincian penghapusan diambil dari dokumentasi pengembang master Odoo, sedangkan waktu rilis yang diumumkan berasal dari halaman acara yang menyatakan bahwa Odoo 20 akan dirilis selama acara Americas September 2026. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API; Oxp26 Americas Introduction) Sebelum penerapan, tim harus memeriksa ulang dokumentasi untuk versi Odoo 20 yang dirilis serta edisi dan build yang tepat yang akan mereka gunakan.
Menggunakan endpoint RPC yang sudah deprecated saja tidak membuktikan bahwa sebuah integrasi akan berhenti berfungsi di Odoo 20, karena common dan object service masih didokumentasikan tersedia hingga Odoo 22. Sebaliknya, operasi yang berhasil pada versi sebelumnya tidak menetapkan kompatibilitas untuk panggilan database-service setelah penghapusannya. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)
Daftar periksa keputusan upgrade
Sebelum menyetujui upgrade Odoo 20, pengambil keputusan harus meminta register integrasi yang menampilkan setiap endpoint deprecated, service yang dipanggil, pemiliknya, dan perbaikan yang direncanakan. Ketergantungan database-service harus memiliki pengganti yang telah diuji. Integrasi yang tetap menggunakan common atau object service harus memiliki tanggal migrasi terpisah yang mencerminkan penghapusan yang didokumentasikan di Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Referensi API Rpc Eksternal)
Tinjauan harus memastikan bahwa implementasi JSON-2 menempatkan model dan metode di URL, menggunakan argumen JSON bernama, dan melakukan autentikasi dengan API key bearer. Jika ada field biner, pengujian harus memperhitungkan penambahan `BinaryValue.filename`. (Odoo master Docs: Referensi API Eksternal; Odoo master Docs: Changelog ORM) Pemeriksaan ini membedakan penghapusan langsung layanan basis data Odoo 20 dari pensiunnya layanan warisan lainnya yang terjadi পরে.
