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 menggarap database, terkadang kita perlu mengekspor data menjadi file terpisah. Hal ini dapat mempermudah pelaporan aktivitas, meskipun Odoo sebenarnya menyediakan alat pelaporan yang tepat untuk setiap aplikasi yang ada.
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, and then select the records that should be exported. To select a record, tick the checkbox next to the corresponding record. Finally, click the Action button, and select (Export).
Saat mengeklik Ekspor, jendela pop-over Ekspor Data muncul dengan beberapa opsi untuk data yang akan diekspor:
Jika opsi Saya ingin mengupdate data (ekspor yang kompatibel untuk impor) dicentang, sistem hanya menampilkan field yang dapat diimpor. Ini sangat membantu jika ada record yang ada perlu diupdate. Cara kerjanya sama dengan filter. Jika kotak tidak dicentang, akan lebih banyak opsi field yang tersedia karena hal ini akan menampilkan semua field, tidak hanya yang dapat diimpor.
Saat mengekspor, terdapat opsi untuk mengekspor di dua format:
.csvdan.xls. Dengan.csv, item yang dipisahkan dengan tanda koma, sementara.xlsmemiliki informasi mengenai semua worksheet di file, termasuk konten dan format.Item-item ini dapat diekspor. Gunakan ikon (Tampilkan sub-field) untuk menampilkan lebih banyak opsi sub-field. Gunakan kolom Cari untuk menemukan field tertentu. Untuk menggunakan opsi Cari dengan lebih efisien, klik semua ikon (Tampilkan sub-field) untuk menampilkan semua field.
Tombol ikon (Pilih field) tersedia untuk menambahkan field ke daftar Field untuk diekspor.
Ikon (Urutkan) di sebelah kiri field yang dipilih dapat digunakan untuk memindahkan field ke atas dan ke bawah, untuk mengubah urutan tampilannya dalam file yang diekspor. Seret dan lepas menggunakan ikon (Urutkan).
Ikon (Hapus field) digunakan untuk menghapus field. Klik ikon (Hapus field) untuk menghapus field tersebut.
Untuk laporan berulang, menyimpan preset ekspor akan sangat membantu. Pilih semua field yang diperlukan, dan klik menu drop-down template. Setelah itu, klik Template baru, dan namai template ekspor dengan uniki. Klik ikon (disket) untuk menyimpan konfigurasi. Saat daftar yang sama perlu diekspor di kemudian hari, pilih template terkait yang sebelumnya telah 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¶
Impor data ke Odoo sangat membantu untuk implementasi, atau ketika data perlu diupdate secara massal. Dokumentasi berikut mencakup cara mengimpor data ke database Odoo.
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 objek yang datanya akan diimpor/diisi, klik ikon (Tindakan), dan di menu drop-down, pilih (Impor record).
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 yang berguna untuk mengetahui nama kolom yang tepat untuk diimpor adalah dengan mengekspor file contoh menggunakan field yang akan diimpor. Dengan cara ini, jika tidak ada template impor contoh, nama-namanya akan akurat.
Impor dari aplikasi lain¶
ID Eksternal (ID) adalah pengidentifikasi unik untuk item baris. ID Eksternal (ID) dapat digunakan dari software sebelumnya untuk memfasilitasi transisi ke Odoo.
Menetapkan ID tidak diperlukan saat mengimpor, tapi dapat membantu dalam banyak kasus:
Update impor: impor file yang sama beberapa kali tanpa membuat duplikat.
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
Perlu dicatat bahwa konflik akan terjadi jika dua (atau lebih) record memiliki ID Eksternal yang sama.
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 yang mencakup pertukaran dalam skala global, beserta komunikasi data terkait tanggal dan waktu. Misalnya, format tanggal harus YYYY-MM-DD. Dalam 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
.XMLyang mengimpornya)
Sebagai contoh, untuk negara Belgium, gunakan salah satu dari tiga cara ini untuk mengimpor:
Negara:
Belgium:guilabel:` ID Negara/Database`:
21ID 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.
Example
Perusahaan mengimpor penawaran menggunakan file CSV, berdasarkan data demo:
Perusahaan mengimpor purchase order dengan baris purchase order masing-masing menggunakan file CSV:
Perusahaan mengimpor pelanggan dan kontak masing-masing menggunakan file CSV:
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¶
Jika semua field tidak diatur dalam file CSV, Odoo akan menetapkan nilai default untuk setiap field yang belum didefinisikan. Namun, jika field diatur dengan nilai kosong dalam file CSV, Odoo akan mengosongkan field tersebut, alih-alih menetapkan nilai default.
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.
Perbarui data di Odoo¶
Data yang ada bisa diupdate secara massal melalui impor data, selama ID Eksternal tetap konsisten.
Siapkan ekspor data¶
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 button, and select (Export) from the drop-down menu.
Pada jendela pop-up Ekspor Data yang muncul, centang kotak berlabel Saya ingin mengupdate data (ekspor yang kompatibel impor. Dengan ini, ID Eksternal otomatis disertakan dalam ekspor. Selain itu, hal ini akan membatasi daftar Field untuk diekspor agar hanya menyertakan field yang dapat diimpor.
Catatan
Field ID Eksternal tidak muncul dalam daftar Field untuk diekspor kecuali ditambahkan secara manual, tapi masih disertakan dalam ekspor. Namun, jika kotak Saya ingin mengupdate data (ekspor kompatibel dengan impor) dicentang, field tersebut akan disertakan dalam ekspor.
Select the required fields to be included in the export using the options on the pop-up window, then click Export.
Impor data yang diupdate¶
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
Saat mengupdate data, ID Eksternal haruslah tetap konsisten, karena inilah cara sistem mengidentifikasi suatu record. Jika ID diubah atau dihapus, sistem mungkin menambahkan record duplikat, alih-alih memperbarui yang sudah ada.