Export and import data

Export data from Odoo

When working with a database, it sometimes is necessary to export your data in a distinct file. Doing so can help to do reporting over your activities (even if Odoo offers a precise and easy reporting tool with each available application).

With Odoo, you can export the values from any field in any record. To do so, activate the list view on the items that need to be exported, click on Action, and, then, on Export.

view of the different things to enable/click to export data

Pretty simple, this action still comes with some specificities. In fact, when clicking on Export, a pop-up window appears with several options for the data to export:

overview of all the options to take into account when exporting data in Odoo
  1. With the I want to update data option ticked, the system only shows the fields which can be imported. This is very helpful in case you want to update existing records. Basically, this works like a filter. Leaving the box unticked gives way more field options because it shows all the fields, not just the ones which can be imported.

  2. When exporting, you can choose between two formats: .csv and .xls. With .csv, items are separated with a comma, while .xls holds information about all the worksheets in a file, including both content and formatting.

  3. Those are the items you may want to export. Use the arrows to display more sub-field options. Of course, you can use the search bar to find specific fields more easily. To use the search option more efficiently, display all the fields by clicking on all the arrows!

  4. The + button is there to add fields to the «to export» list.

  5. The «handles» next to the selected fields allow you to move the fields up and down to change the order in which they must be displayed in the exported file.

  6. The trashcan is there if you need to remove fields.

  7. For recurring reports, it might be interesting to save export presets. Select all the needed ones and click on the template bar. There, click on New template and give a name to yours. The next time you need to export the same list, simply select the related template.

Порада

It’s good to keep the field’s external identifier in mind. For example, Related Company is equal to parent_id. Doing so helps export only what you would like to import next.

Import data into Odoo

З чого почати?

Ви можете імпортувати дані в систему Odoo, використовуючи формат Excel (.xlsx) або CSV (.csv): контакти, товари, банківські виписки, записи в журналі та навіть замовлення!

Відкрийте перегляд об’єкта, який хочете заповнити, та натисніть Імпортувати.

../../_images/import_button.png

Вам надаються шаблони, які можна легко заповнити власними даними. Такі шаблони можна імпортувати одним кліком; Відображення даних вже виконано.

Як адаптувати шаблон?

  • Додайте, видаліть та відсортуйте стовпці, щоби найкраще відповідати структурі даних.

  • Ми радимо не видаляти ID (Чому? Дивіться в наступному розділі).

  • Встановіть унікальний ID для кожного окремого запису, перетягнувши послідовність ID.

../../_images/dragdown.gif
  • Коли ви додасте новий стовпець, Odoo, можливо, не зможе його автоматично помітити, якщо його мітка не підходить для будь-якого поля в Odoo. Не хвилюйтеся! Ви можете вставляти нові стовпці вручну під час перевірки імпорту. Знайдіть список відповідного поля.

    ../../_images/field_list.png

    Потім використовуйте мітку цього поля у вашому файлі, щоби він працював наступного разу.

Як імпортувати з іншої програми?

Щоб відновити взаємозв’язок між різними записами, ви повинні використовувати унікальний ідентифікатор з оригінальної програми та позначити його на ID стовпця (зовнішній ідентифікатор) в Odoo. Коли ви імпортуєте інший запис, який посилається на перший, використовуйте XXX/ID (XXX/Зовнішній ідентифікатор) до оригінального унікального ідентифікатора. Ви також можете знайти цей запис, використовуючи його назву, але ви зупинитесь, якщо принаймні 2 записи мають однакову назву.

ID також буде використаний для оновлення оригінального імпорту, якщо вам доведеться повторно імпортувати змінені дані пізніше, тому, якщо можливо, ви зможете його вказати.

Я не можу знайти поле, в якому я хочу позначити стовпець

Odoo намагається знайти тип поля для кожного стовпця всередині вашого файлу на основі перших десяти рядків файлів. Наприклад, якщо у вас є стовпчик, який містить лише цифри, для вас буде вибрано лише ті поля, які мають тип Ціле число. Незважаючи на те, що в більшості випадків ця поведінка може бути хорошою і легкою, можливо, що це трапиться не так, або ви хочете вказати стовпчик на поле, яке не пропонується за замовчуванням.

Якщо це станеться, вам просто потрібно перевірити параметри Показати поля пов’язаної моделі (розширено), після чого ви зможете вибрати з повного списку полів для кожного стовпця.

../../_images/field_list.png

Де я можу змінити формат імпортування дати?

Odoo може автоматично визначити, чи колонка є датою, та спробує вгадати формат дати з набору найчастіше використовуваних форматів дати. Хоча цей процес може працювати для багатьох форматів дат, деякі формати дати не будуть розпізнані. Це може спричинити плутанину через перетворення дня в місяць; важко здогадатися, яка частина формату дати - це день, а яка - місяць у такій даті, як „01-03-2016 „.

Щоби переглянути, який формат дати Odoo знайшов у вашому файлі, ви можете перевірити Формат дати, який відображається, коли ви натискаєте Параметри під списком файлів. Якщо цей формат неправильний, ви можете змінити його, використовуючи ISO 8601, щоби визначити формат.

Примітка

Якщо ви імпортуєте файл Excel (.xls, .xlsx), ви можете використовувати цифрові дати для зберігання дат, оскільки відображення дати у форматі excel відрізняється від способу його зберігання. Таким чином, ви будете впевнені, що формат дати в Odoo правильний, незалежно від формату вашої локальної дати.

Чи можу я імпортувати номери з позначкою валюти (наприклад, $ 32.00)?

Так, ми повністю підтримуємо числа в круглих дужках, щоби відобразити негативний знак, а також цифри з прикріпленим до них знаком валюти. Odoo також автоматично визначає, який тисячний/десятковий роздільник ви використовуєте (ви можете змінити ці параметри під параметрами). Якщо ви використовуєте символ валюти, який не відомий Odoo, він, можливо, не буде визнаний як номер, хоча й буде збігатися.

Приклади підтримуваних чисел (наприклад, з використанням тридцяти двох тисяч):

  • 32.000,00

  • 32000,00

  • 32,000.00

  • -32000.00

  • (32000.00)

  • $ 32.000,00

  • (32000.00 €)

Приклад, який не буде працювати:

  • ABC 32.000,00

  • $ (32.000,00)

Що робити, коли таблиці попереднього перегляду імпорту відображаються неправильно?

За замовчуванням попередній перегляд імпорту встановлюється комами як роздільники розділів і лапки як роздільники тексту. Якщо ваш файл CSV не має цих налаштувань, ви можете змінити параметри формату файлу (відображається під панеллю перегляду файлів CSV після вибору файлу).

Зверніть увагу, якщо файл CSV має табуляцію як розділювач, Odoo не буде виявляти розділення. Вам потрібно буде змінити параметри формату файлу у вашій програмі для роботи з електронними таблицями. Дивіться наступне питання.

Як змінити параметри формату файлу CSV при збереженні електронної таблиці в моїй програмі?

If you edit and save CSV files in spreadsheet applications, your computer’s regional settings will be applied for the separator and delimiter. We suggest you use OpenOffice or LibreOffice Calc as they will allow you to modify all three options (in „Save As“ dialog box ‣ Check the box „Edit filter settings“ ‣ Save).

Microsoft Excel will allow you to modify only the encoding when saving (in „Save As“ dialog box ‣ click „Tools“ dropdown list ‣ Encoding tab).

Яка різниця між ID бази даних та зовнішнім ID?

Some fields define a relationship with another object. For example, the country of a contact is a link to a record of the „Country“ object. When you want to import such fields, Odoo will have to recreate links between the different records. To help you import such fields, Odoo provides three mechanisms. You must use one and only one mechanism per field you want to import.

Наприклад, щоби вказати країну контакту, Odoo пропонує вам 3 різних поля для імпорту:

  • Країна: назва або код країни

  • Країна/ID бази даних: унікальний ID Odoo для запису, визначеного стовпцем ID postgresql

  • Країна/Зовнішній ID: ID запису, зазначеного в іншій програмі (або .XML-файлі, який імпортував його)

Для країни Бельгії можна використовувати один із цих 3 способів імпорту:

  • Країна: Бельгія

  • Країна/ID бази даних: 21

  • Країна/Зовнішній ID: base.be

Згідно з вашими потребами, ви повинні використовувати один із цих трьох способів відстежувати пов’язані записи. Ось коли ви повинні використовувати той чи інший спосіб, відповідно до вашої потреби:

  • Використовуйте країну: це найпростіший спосіб, коли ваші дані надходять з файлів CSV, які були створені вручну.

  • Використовуйте країну/ID бази даних: рідко використовуйте цю позначку. В основному це використовують розробники, оскільки головна перевага полягає в тому, щоби ніколи не було конфліктів (у вас може бути кілька записів з однаковою назвою, але вони завжди мають унікальний ID бази даних).

  • Використовуйте назву країни/зовнішній ID: використовуйте зовнішній ID, коли ви імпортуєте дані зі сторонньої програми.

Коли ви використовуєте зовнішні ID, ви можете імпортувати файли CSV за допомогою стовпця «Зовнішній ID», щоби визначити зовнішній ID кожного імпортованого запису. Потім ви зможете зробити посилання на цей запис зі стовпчиками типу «Поле/Зовнішній ID». Наступні два файли CSV наводять приклад для товарів і їх категорій.

CSV file for categories.

CSV file for Products.

Що робити, якщо у мене є кілька співпадінь для поля?

Якщо, наприклад, у вас є дві категорії товарів з дочірнім ім’ям «Sellable» (тобто. «Різні Товари/ Продаються» та «Інші товари/Продаються»), ваша перевірка призупиняється, але ви все одно можете імпортувати свої дані. Однак ми рекомендуємо не імпортувати дані, оскільки всі вони будуть пов’язані з першою категорією «Продаються», яка знаходиться в списку «Категорії товарів» («Різні Товари/Продаються»). Ми рекомендуємо змінити один зі значень дублікатів або ієрархію категорії товарів.

Якщо ви не бажаєте змінювати своє налаштування категорій товарів, ми рекомендуємо використовувати зовнішній ідентифікатор для цього поля «Категорія».

Як я можу імпортувати поле зв’язку many2many (наприклад, клієнта з кількома тегами)?

Теги слід розділити комою без будь-якого інтервалу. Наприклад, якщо ви хочете, щоби ваш клієнт був пов’язаний з обома тегами «Виробник» та «Роздрібний продавець», ви кодуєте «Виробник, роздрібний продавець» у тому ж рядку файлу CSV.

CSV file for Manufacturer, Retailer

Як імпортувати зв’язок one2many (наприклад, кілька рядків замовлення від замовлення на продаж)?

If you want to import sales order having several order lines; for each order line, you need to reserve a specific row in the CSV file. The first order line will be imported on the same row as the information relative to order. Any additional lines will need an additional row that does not have any information in the fields relative to the order. As an example, here is purchase.order_functional_error_line_cant_adpat.CSV file of some quotations you can import, based on demo data.

File for some Quotations.

У наведеному нижче файлі CSV показано, як імпортувати замовлення на купівлю за допомогою відповідних рядків замовлення.

Purchase orders with their respective purchase order lines.

У наведеному нижче файлі CSV показано, як імпортувати клієнтів та їх відповідні контакти:

Customers and their respective contacts.

Чи можу я кілька разів імпортувати той самий запис?

If you import a file that contains one of the column «External ID» or «Database ID», records that have already been imported will be modified instead of being created. This is very useful as it allows you to import several times the same CSV file while having made some changes in between two imports. Odoo will take care of creating or modifying each record depending if it’s new or not.

Ця функція дозволяє вам використовувати інструмент імпорту/експорту Odoo для зміни записів цілим пакетом у вашій програмі електронної таблиці.

Що станеться, якщо я не надам значення для конкретного поля?

Якщо ви не встановлюєте всі поля у файлі CSV, Odoo призначить значення за замовчуванням для всіх невизначених полів. Але якщо ви встановлюєте поля з порожніми значеннями у своєму файлі CSV, Odoo встановить значення EMPTY у полі, замість того, аби призначити значення за замовчуванням.

Як експортувати/імпортувати різні таблиці з додатка SQL до Odoo?

Якщо вам потрібно імпортувати дані з різних таблиць, вам доведеться відтворити зв’язки між записами, що належать до різних таблиць. (наприклад, якщо ви імпортуєте компанії та людей, вам доведеться відтворити зв’язок між кожною особою та компанією, в якій вони працюють).

To manage relations between tables, you can use the «External ID» facilities of Odoo. The «External ID» of a record is the unique identifier of this record in another application. This «External ID» must be unique across all the records of all objects, so it’s a good practice to prefix this «External ID» with the name of the application or table. (like „company_1“, „person_1“ instead of „1“)

As an example, suppose you have a SQL database with two tables you want to import: companies and persons. Each person belong to one company, so you will have to recreate the link between a person and the company he work for. (If you want to test this example, here is a dump of such a PostgreSQL database)

Спочатку ми експортуємо всі компанії та їх «Зовнішній ID». У PSQL, напишіть таку команду:

> 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;

This SQL command will create the following CSV file:

External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True

Щоби створити файл CSV для осіб, пов’язаних з компаніями, ми використаємо наступну команду SQL у 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

It will produce the following CSV file:

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

As you can see in this file, Fabien and Laurence are working for the Bigees company (company_1) and Eric is working for the Organi company. The relation between persons and companies is done using the External ID of the companies. We had to prefix the «External ID» by the name of the table to avoid a conflict of ID between persons and companies (person_1 and company_1 who shared the same ID 1 in the original database).

Обидва файли готові до імпорту в Odoo без будь-яких змін. Після імпорту цих двох файлів CSV у вас буде 4 контакти та 3 компанії. (перші два контакти пов’язані з першою компанією). Спочатку потрібно імпортувати компанії, а потім особи.

Як імпортувати шаблон імпорту

Шаблони імпорту надаються в інструменті імпорту найпоширеніших даних для імпорту (контакти, товари, банківські виписки тощо). Ви можете відкрити їх будь-яким програмним забезпеченням електронних таблиць (Microsoft Office, OpenOffice, Google Диск тощо).

Як налаштувати файл

  • Видаліть стовпці, які вам не потрібні. Ми радимо не видаляти ID.

  • Встановіть унікальний ID для кожного окремого запису, перетягнувши послідовність ID.

    ../../_images/dragdown.gif
  • Коли ви додаєте новий стовпець, Odoo, можливо, не зможе його автоматично помітити, якщо його мітка не підходить для будь-якого поля системи. Якщо так, знайдіть відповідне поле за допомогою пошуку.

    ../../_images/field_list.png

    Потім використовуйте мітку, яку ви знайшли у своєму шаблоні імпорту, щоби він працював одразу ж під час наступної спроби імпорту.

Why an «ID» column

ID (зовнішній ідентифікатор) - це унікальний ідентифікатор елементу. Не соромтеся використовувати попереднє програмне забезпечення для полегшення переходу на Odoo.

Встановлення ID не є обов’язковим при імпорті, але це допомагає у багатьох випадках:

  • Оновіть імпорт: ви можете імпортувати один і той же файл кілька разів без створення дублікатів;

  • Поле імпорту відносин (див. Нижче).

Як імпортувати поля посилання

Об’єкт Odoo завжди пов’язаний з багатьма іншими об’єктами (наприклад, товар пов’язаний із категоріями товарів, атрибутами, постачальниками тощо). Щоб імпортувати ці відносини, вам потрібно спочатку імпортувати записи відповідного об’єкта з власного меню списку.

Ви можете зробити це, використовуючи ім’я відповідного запису або його ID. ID очікується тоді, коли два записи мають однакове ім’я. У такому випадку додайте «/ ID» в кінці заголовку стовпця (наприклад, для атрибутів товару: атрибути товару / атрибут / ID товару).