Як імпортувати дані в 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 при збереженні електронної таблиці в моїй програмі?

Якщо ви редагуєте та зберігаєте файли CSV у програмах електронної таблиці, регіональні параметри комп’ютера застосовуватимуться до сепаратора та розділювача. Ми рекомендуємо вам скористатись OpenOffice або LibreOffice Calc, оскільки вони дозволять вам змінити всі три варіанти (в діалоговому вікні «Зберегти як»> встановіть прапорець «Редагувати параметри фільтра»> Зберегти).

Microsoft Excel дозволить вам змінювати лише кодування при збереженні (у діалоговому вікні «Зберегти як»> натисніть «Інструменти» у спадному списку> вкладка «Кодування»).

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

Деякі поля визначають зв’язок з іншим об’єктом. Наприклад, країна контакту - це посилання на запис об’єкта «Країна». Якщо ви хочете імпортувати такі поля, Odoo доведеться відтворити посилання між різними записами. Щоби допомогти вам імпортувати такі поля, Odoo надає 3 механізми. Для поля, яке потрібно імпортувати, потрібно використовувати єдиний механізм.

Наприклад, щоби вказати країну контакту, 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?

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

Щоби керувати зв’язками між таблицями, ви можете використовувати «Зовнішній ID» об’єктів Odoo. «Зовнішній ID» запису є унікальним ідентифікатором цього запису в іншій програмі. Цей «Зовнішній ID» повинен бути унікальним для всіх записів усіх об’єктів, тому доцільно привласнити «Зовнішній ID» з назвою програми чи таблиці. (наприклад, «company_1», «person_1» замість «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;

Ця команда SQL створить наступний файл CSV:

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

Він буде створювати такий файл CSV:

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 компанії. (перші два контакти пов’язані з першою компанією). Спочатку потрібно імпортувати компанії, а потім особи.