Ekspor dan impor data¶
Di Odoo, terkadang ekspor dan impor data dibutuhkan untuk menjalankan laporan, atau untuk modifikasi data. Dokumen ini mencakup ekspor dan impor data ke dalam dan luar Odoo.
Penting
Terkadang, user mungkin menghadapi error 'time out', atau record yang tidak dapat memproses, oleh karena ukurannya. Ini dapat terjadi dengan ekspor besar, atau di kasus di mana file impor terlalu besar. Untuk melewati batasan ini mengenai ukuran record, proses ekspor atau impor dalam batch-batch berukuran kecil.
Ekspor data dari Odoo¶
Saat bekerja dengan database, terkadang penting untuk mengekspor data di file yang cukup unik. Ini dapat membantu dalam melaporkan kegiatan, walau, Odoo menyediakan alat bantu pelaporan yang tepat sasaran dan gampang digunakan dengan setiap aplikasi yang tersedia.
With Odoo, the values can be exported from any field in any record. To do so, activate the list view ( (list) icon), on the items that need to be exported, then select the records that should be exported. To select a record, tick the checkbox next to the corresponding record. Finally, click on Actions, then Export.

Saat mengeklik pada Ekspor, jendela pop-up Ekspor Data akan muncul, dengan beberapa opsi untuk data yang diekspor:

With the I want to update data (import-compatable export) option ticked, the system only shows the fields that can be imported. This is helpful in the case where the existing records need to be updated. This works like a filter. Leaving the box unticked, gives many more field options because it shows all the fields, not just the ones that can be imported.
Saat mengekspor, terdapat opsi untuk mengekspor di dua format:
.csv
dan.xls
. Dengan.csv
, item yang dipisahkan dengan tanda koma, sementara.xls
memiliki informasi mengenai semua worksheet di file, termasuk konten dan format.Berikut benda-benda yang dapat diekspor. Gunakan ikon > (arah panah kanan) untuk menampilkan lebih banyak opsi sub-field. Gunakan kolom Pencarian untuk menemukan field-field tertentu. Untuk menggunakan opsi Pencarian dengan lebih efisien, klik pada semua > (arah panah kanan) untuk menampilkan semua field.
Tombol ikon + (tanda tambah) ada untuk menambahkan field ke daftar Field untuk diekspor.
Ikon ↕️ (Arah panah atas-bawah) di sebelah kiri field yang dipilih dapat digunakan untuk menaikkan atau menurunkan field, untuk mengubah urutan mereka ditampilkan di field yang diekspor. Tarik-dan-lepas menggunakan ikon ↕️ (Arah panah atas-bawah).
Ikon 🗑️ (keranjang sampah) digunakan untuk menghapus field. Klik pada ikon 🗑️ (keranjang sampah) untuk menghapus field.
Untuk laporan berulang, simpan preset ekspor. Pilih semua field yang diperlukan, dan klik pada templat menu drop-down. Setelah itu, klik pada Templat baru, dan berikan nama unik ke ekspor yang baru saja dibuat. Klik ikon 💾 (floppy drive) untuk menyimpan konfigurasi. Kali berikutnya daftar yang sama butuh diekspor, pilih templat terkait yang sebelumnya disimpan dari menu drop-down.
Tip
Penting untuk mengetahui pengidentifikasi eksternal field. Contoh, Perusahaan Terkait di antarmuka ekspor user sama dengan parent_id (external identifier). Ini berguna karena dengan begini, data yang diekspor hanya yang harus dimodifikasi dan di-impor ulang.
Impor data ke Odoo¶
Importing data into Odoo is extremely helpful during implementation, or in times where data needs to be updated in bulk. The following documentation covers how to import data into an Odoo database.
Peringatan
Impor bersifat permanen dan tidak dapat dibatalkan. Namun, Anda dapat menggunakan filter (dibuat pada
atau modifikasi terakhir
) untuk mengidentifikasi record yang diubah atau dibuat oleh impor.
Tip
Mengaktifkan developer mode mengubah pengaturan impor yang terlihat di menu di kiri. Ini akan menampilkan menu . Termasuk di menu advanced ini adalah dua opsi: :Lacak sejarah selama impor dan Izinkan pencocokkan dengan subfields.

Bila model menggunakan openchatter, opsi Lacak sejarah selama impor menyiapkan langganan dan mengirimkan notifikasi selama impor, tapi berujung pada impor yang lebih lambat juga.
Apabila opsi Izinkan pencocokkan dengan subfields dipilih, maka semua subfield di dalam field akan digunakan untuk dicocokkan di bawah Odoo Field selai mengimpor.
Mulai¶
Data dapat diimpor pada business object Odoo apa pun menggunakan format Excel (.xlsx
) atau CSV (.csv
). Ini termasuk: kontak, produk, laporan bank, entri jurnal, dan pesanan.
Buka tampilan object yang mana data akan diimpor/di-populate, dan klik pada
.
Setelah mengeklik Impor record, Odoo menampilkan halaman yang terpisah dengan templat yang dapat diunduh dan di-populate dengan data perusahaan sendiri. Templat tersebut dapat diimpor dengan satu klik, karena data mapping sudah dilakukan. Untuk mengunduh templat klik Impor Templat untuk Pelanggan di tengah halaman.
Penting
Saat mengimpor file CSV, Odoo menyediakan opsi Formatting. Opsi-opsi ini tidak muncul saat mengimpor tipe file milik Excel (.xls
, .xlsx
).

Buat penyesuaian yang diperlukan ke opsi Formatting, dan pastikan semua kolom di Odoo field dan Kolom File bebas dari error. Lalu, klik Impor untuk mengimpor data.
Adaptasikan templat¶
Templat impor disediakan di alat bantu impor dari data yang palign umum untuk diimpor (kontak, produk, laporan bank, dsb.). Buka mereka dengan software spreadsheet apa pun (Microsoft Office, OpenOffice, Google Drive, dsb.).
Setelah templat diunduh, lanjutkan dengan langkah-langkah berikut:
Tambahkan, hapus, dan sortir kolom agar paling cocok dengan struktur data.
Sangat disarankan untuk tidak menghapus kolom External ID (ID) (lihat kenapa di bagian berikutnya).
Tetapkan ID unik ke setiap record dengan menarik ke bawah urutan ID di kolom External ID (ID).

Catatan
Saat kolom baru ditambahkan, Odoo mungkin tidak dapat memetakkannya secara otomatis, bila labelnya tidak cocok dengan field apa pun di Odoo. Namun, kolom baru dapat dipetakan secara manual saat impor diuji. Cari menu drop-down untuk field yang sesuai.

Lalu, gunakan label field ini di file impor untuk memastikan impor masa depan sukses.
Tip
Cara lain untuk menemukan nama kolom yang tepat untuk diimpor adalah untuk mengekspor fiel sampel menggunakan file yang harusnya diimpor. Dengan begitu, bila tidak ada templat impor sampel, namanya akurat.
Impor dari aplikasi lain¶
External ID (ID) adalah pengidentifikasi unik untuk line item. Silakan gunakan satu dari software sebelumnya untuk memfalisitasi transisi ke Odoo.
Menetapkan ID tidak diperlukan saat mengimpor, tapi dapat membantu dalam banyak kasus:
Update imports: import the same file several times without creating duplicates.
Untuk membuat ulang hubungan antara record yang berbeda-beda, pengidentifikasi unik dari aplikasi awal harus digunakan untuk memetakkannya ke kolom External ID (ID) di Odoo.
Saat record lain diimpor yang memiliki link ke record pertama, gunakan XXX/ID (XXX/External ID) untuk pengidentifikasi unik original. Record ini juga dapat ditemukan menggunakan namanya.
Peringatan
It should be noted that conflicts occur if two (or more) records have the same External ID.
Field hilang untuk memetakan kolom¶
Odoo secara heuristik mencoba untuk menemukan tipe field untuk setiap kolom di dalam file yang diimpor, berdasarkan sepuluh baris pertama file.
Contohnya, bila terdapat kolom yang hanya memiliki angka, hanya field dengan tipe integer yang ditunjukkan sebagai opsi.
Walau perilaku ini mungkin bermanfaat di kebanyakan kasus, dapat juga gagal, atau kolom mungkin dipetakan ke field yang tidak diajukan secara default.
Bila ini terjadi, periksa opsi Tunjukkan field dari relation fields (advanced), lalu selesaikan daftar field yang lengkap akan tersedia untuk setiap kolom.

Ubah format impor data¶
Catatan
Odoo dapat secara otomatis mendeteksi bila kolom adalah tanggal, dan mencoba untuk menebak format tanggal dari kelompok format tanggal yang paling sering digunakan. Walau proses ini dapat bekerja untuk banyak format data, beberapa format mungkin tidak dikenali. Ini dapat mengakibatkan kebingunga, oleh karena hari-bulan yang terputar; susah untuk menebak bagian mana dari format tanggal yang adalah hari atau bulan, contohnya seperti pada 01-03-2016
.
Saat mengimpor file CSV, Odoo menyediakan opsi Formatting.
Untuk melihat format data mana yang Odoo temukan dari file, periksa Format Tanggal yang ditunjukkan saat mengeklik pada opsi di bawah pemilih file. Bila format tidak tepat, ubah ke format yang diinginkan menggunkaan ISO 8601 untuk mendefinisikan formatnya.
Penting
ISO 8601 adalah standar internasional, mencakup seluruh dunia, termasuk komunikasi data terkait waktu. Contohnya, format tanggal harus TTTT-BB-HH
. Jadi, untuk kasus 24 Juli 1981, harus ditulis sebagai 1981-07-24
.
Tip
Saat mengimpor file Excel (.xls
, .xlsx
), pertimbangkan untuk menggunakan date cell untuk menyimpan tanggal. Ini mempertahankan format tanggal lokal untuk ditampilkan, terlepas bagaimana tanggal diformat di Odoo. Saat mengimpor file CSV, gunakan bagian Formatting Odoo untuk memilih kolom format data untuk diimpor.
Impor angka dengan tanda mata uang¶
Odoo sepenuhnya mendukung angka dengan tanda kurung untuk mewakili tanda negatif, sekaligus angka dengan tanda mata uang. Odoo juga secara otomatis mendeteksi separator ribuan/desimal yang digunakan. Bila simbol mata uang yang tidak diketahui oleh Odoo digunakan, mungkin tidak dikenali sebagai angka, dan impor akan crash.
Catatan
Saat mengimpor file CSV, menu Formatting muncul pada kolom di sebelah kiri. Di dalam opsi, Separator Ribuan dapat diubah.
Contoh angka yang didukung (menggunakan 'tiga-puluh ribu' sebagai angka):
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
$ 32.000,00
(32000.00 €)
Contoh yang tidak akan bekerja:
ABC 32.000,00
$ (32.000,00)
Penting
() (Tanda kurung) di sekitar angka mengindikasikan bahwa angka bersifat negatif. Simbol mata uang harus dimasukkan di dalam tanda kurung supaya Odoo dapat mengenalinya sebagai nilai mata uang negatif.
Pratinjau tabel impor tidak ditampilkan dengan tepat¶
Secara default, pratinjau impor ditetapkan pada koma sebagai separator field, dan tanda quotation sebagai delimiter text. Bila file CSV tidak memiliki pengaturan tersebut, modifikasikan opsi Formatting (ditampilkan di bawah kolom Impor file CSV setelah memilih file CSV).
Penting
Bila file CSV memiliki tabulation sebagai separator, Odoo tidak mendeteksi separatornya. Opsi format file harus dimodifikasi di aplikasi spreadsheet. LIhat bagian Ubah format file CSV berikut.
UBah file format CSV di aplikasi spreadsheet¶
Saat mengedit dan menyimpan file CSV di aplikasi spreadsheet, pengaturan regional komputer diterapkan untuk separator dan delimiter. Odoo menyarankan menggunakan OpenOffice atau LibreOffice, karena masing-masing aplikasi memungkinkan modifikasi untuk tiga pilihan (dari aplikasi LibreOffice, pergi ke kotak dialog
).Microsoft Excel dapat memodifikasi encoding saat menyimpan (
).Perbedaan antara Database ID dan External ID¶
Beberapa field mendefinisikan hubungan dengan object lain. Contohnya, negara kontak terhubung ke record object 'Negara'. Saat field seperti itu diimpor, Odoo harus membuat ulang link di antara record yang berbeda-beda. Untuk membantu mengimpor field seperti itu, Odoo menyediakan tiga mekanisme.
Penting
Hanya satu mekanisme sebaiknya digunakan per field yang diimpor.
Contohnya, untuk mereferensikan negara kontak, Odoo mengajukan tiga field yang berbeda untuk diimpor:
Negara: nama atau kode negara
ID Negara/Database: Odoo ID unik untuk record, didefinisikan oleh ID kolom PostgreSQL
ID Negara/Eksternal: ID record ini direferensikan di aplikasi lain (atau file
.XML
yang mengimpornya)
Sebagai contoh, untuk negara Belgium, gunakan salah satu dari tiga cara ini untuk mengimpor:
Negara:
Belgium
:guilabel:` ID Negara/Database`:
21
ID Negara/Eksternal:
base.be
Menurut kebutuhan perusahaan, gunakan salah satu dari tiga cara ini untuk mereferensikan record di relations. Berikut contoh saat salah satu atau yang lain harus digunakan, sesuai kebutuhan:
Gunakan Negara: ini adalah cara tergampang saat data datang dari file CSV yang telah dibuat secara manual.
Gunakan ID Negara/Database: ini sebaiknya jarang digunakan. Ini umumnya digunakan oleh developer karena manfaat utamanya adalah untuk tidak pernah memiliki konflik (mungkin terdapat beberapa record dengan nama yang sama, tapi mereka akan selalu memiliki ID Database yang unik)
Gunakan ID Negara/Eksternal: gunakan ID Eksternal saat mengimpor data dari aplikasi pihak-ketiga.
Saat ID Eksternal digunakan, impor file CSV dengan kolom ID Eksternal (ID) yang mendefinisikan ID Eksternal dari setiap record yang diimpor. Lalu, referensi dapat dibuat ke record tersebut dengan kolom, seperti ID Field/Eksternal
. Dua file CSV berikut menyediakan contoh untuk produk dan kategori mereka.
Impor relation field¶
Object Odoo selalu terkait ke banyak object lainnya (contoh produk terkait dengan kategori, atribut, vendor, dsb.). Untuk mengimpor relation tersebut, record dari object terkait harus diimpor terlebih dahulu, dari menu list mereka sendiri.
Ini dapat dilakukan baik dengan menggunakan nama record terkait, atau IDnya, tergantung pada situasi. ID diharapkan saat dua record memiliki nama yang sama. Pada kasus tersebut tambahkan / ID
di akhir judul kolom (misal. untuk atribut produk: Atribut Produk / Atribut / ID
).
Opsi untuk lebih dari satu field yang cocok¶
Bila, sebagai contoh, terdapat dua kategori produk dengan nama anak yang sama Sellable
(contoh. Misc. Products/Sellable
& Other Products/Sellable
), validasi akan dihentikan, tapi data mungkin masih dapat diimpor. Namun, Odoo merekomendasikan data tidak diimpor karena akan dihubungkan ke kategori Sellable
pertama yang ditemukan di list Kategori Produk list (Misc. Products/Sellable
). Odoo, alih-alih, menyarankan memodifikasi salah satu value yang duplikat, atau hierarki kategori produk.
Namun, bila perusahaan tidak ingin mengubah konfigurasi kategori produk, Odoo menyarankan menggunakan ID Eksternal untuk field ini, 'Kategori'.
Impor many2many relationship fields¶
Tag harus dipisahkan dengan tanda koma, tanpa spasi. Contohnya, bila perusahaan harus dihubungkan ke masing-masing tag: Manufacturer
dan Retailer
maka 'Manufacturer,Retailer' harus di-encode di kolom yang sama di file CSV.
Impor one2many relationships¶
Bila perusahaan ingin mengimpor sale order dengan beberapa baris order, baris tertentu harus di reservasi di file CSV untuk setiap baris order. Baris order pertama diimpor pada baris yang sama dengan informasi relatif ke order. Baris-baris tambahan lainnya membutuhkan baris tambahan yang tidak memiliki informasi apa pun di field relatif ke order.
Sebagai contoh, berikut adalah file CSV dari beberapa quotation yang dapat diimpor, berdasarkan data demo:
File CSV berikut menunjukkan bagaimana untuk mengimpor purchase order dengan baris order pembelian mereka masing-masing:
File CSV berikut menunjukkan pentingnya mengimpor pelanggan dan kontak mereka:
Impor record beberapa kali¶
Bila file yang diimpor memiliki salah satu kolom: ID Eksternal atau ID Database, record yang sudah diimpor akan dimodifikasi, alih-alih dibuat. Ini sangat berguna karena memungkinkan user untuk mengimpor beberapa kali file CSV yang sama, sambil memberikan beberapa perubahan di antara dua impor.
Odoo bertanggung jawab untuk membuat atau memodifikasi setiap record, tergantung bila baru atau tidak.
Fitur ini memungkinkan perusahaan untuk menggunakan Alat bantu Impor/Ekspor di Odoo untuk memodifikasi batch record di aplikasi spreadsheet.
Value tidak disediakan untuk field tertentu¶
Bila semua field tidak ditetapkan di file CSV, Odoo memberikan value standar untuk setiap field yang tidak didefinisikan. Namun, bila field yang ditetapkan dengan value kosong di file CSV, Odoo menetapkan value kosong di field, alih-alih menugaskan value standar.
Ekspor/impor tabel yang berbeda-beda dari aplikasi SQL ke Odoo¶
Bila data harus diimpor dari tabel yang berbeda-beda, relation harus dibuat ulang di antara record yang berasal dari tabel-tabel berbeda. Contoh, bila perusahaan dan orang diimpor, hubungan antara setiap orang dan perusahaan tempat mereka bekerja harus dibuat ulang.
Untuk mengelola relation di antara tabel, gunakan fasilitas ID Eksternal
Odoo. ID Eksternal
dari record adalah pengidentifikasi unik record ini di aplikasi lain. ID Eksternal
harus unik di seluruh record dari semua object. Adalah praktek bagus untuk memulai ID Eksternal
dengan nama aplikasi atau tabel. (seperti, 'perusahaan_1', 'orang_1' - alih-alih '1')
Sebagai contoh, katakan terdapat database SQL dengan dua tabel yang akan diimpor: perusahaan dan orang. Setiap orang berasal dari satu perusahaan, sehingga hubungan antara orang dan perusahaan tempat mereka bekerja harus dibuat ulang.
Uji contoh ini, dengan sampel database PostgreSQL database
.
Pertama-tama, ekspor semua perusahaan dan ID Eksternal mereka. Di PSQL, tulis command berikut:
> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;
Command SQL ini membuat file CSV berikut:
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
Untuk membuat file CSV untuk orang yang terhubung ke perusahaan, gunakan command SQL berikut di PSQL:
> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV
Ini membuat file CSV berikut:
External ID,Name,Is a Company,Related Company/External ID
person_1,Fabien,False,company_1
person_2,Laurence,False,company_1
person_3,Eric,False,company_2
person_4,Ramsy,False,company_3
Di file ini, Fabien dan Laurence bekerja untuk Bigees company (perusahaan_1
), dan Eric bekerja untuk Organi company. Hubungan antara orang dan perusahaan dilakukan menggunakan ID Eksternal perusahaan. ID Eksternal diawali dengan nama dari tabel untuk menghindari konflik ID di antara orang dan perusahaan (orang_1
dan perusahaan_1
, yang berbagi ID 1 yang sama di database original).
Dua file yang dibuat siap untuk diimpor di Odoo tanpa modifikasi apa pun. Setelah mengimpor dua file CSV ini, terdapat empat kontak dan tiga perusahaan (dua kontak pertama terhubung ke perusahaan pertama). Ingat bahwa untuk pertama-tama impor perusahaan, lalu baru orang.
Update data in Odoo¶
Existing data can be updated in bulk through a data import, as long as the External ID remains consistent.
Prepare data export¶
To update data through an import, first navigate to the data to be updated, and select the (list) icon to activate list view. On the far-left side of the list, tick the checkbox for any record to be updated. Then, click Actions, and select Export from the drop-down menu.
On the resulting Export Data pop-up window, tick the checkbox labeled, I want to update data (import-compatible export). This automatically includes the External ID in the export. Additionally, it limits the Fields to export list to only include fields that are able to be imported.
Catatan
The External ID field does not appear in the Fields to export list unless it is manually added, but it is still included in the export. However, if the I want to update data (import-compatible export) checkbox is ticked, it is included in the export.
Select the required fields to be included in the export using the options on the pop-up window, then click Export.
Import updated data¶
After exporting, make any necessary changes to the data file. When the file is ready, it can be imported by following the same process as a normal data import.
Bahaya
When updating data, it is extremely important that the External ID remain consistent, as this is how the system identifies a record. If an ID is altered, or removed, the system may add a duplicate record, instead of updating the existing one.