Як імпортувати дані в Odoo

Загальні налаштування системи

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

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


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

Odoo CMS - a big picture

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

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

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

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

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

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

Odoo CMS - a big picture

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

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

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


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

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

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


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

Odoo CMS - a big picture

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

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 наводять приклад для товарів і їх категорій.

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

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


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

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

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

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

Якщо ви хочете імпортувати замовлення клієнта, що має кілька рядків замовлень; для кожного рядка замовлення вам потрібно зарезервувати певний рядок у файлі CSV. Рядок першого замовлення буде імпортовано в тому ж рядку, що й інформація щодо замовлення. Для будь-яких додаткових рядків замовлення буде потрібно додатковий рядок файлу, який не містить інформації у полях щодо замовлення. Наприклад, тут є файл buy.order_functional_error_line_cant_adpat.CSV деяких комерційних пропозицій, які ви можете імпортувати, на основі демо-даних.

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

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


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

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

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

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

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


Щоби керувати зв'язками між таблицями, ви можете використовувати "Зовнішній ID" об'єктів Odoo. "Зовнішній ID" запису є унікальним ідентифікатором цього запису в іншій програмі. Цей "Зовнішній ID" повинен бути унікальним для всіх записів усіх об'єктів, тому доцільно привласнити "Зовнішній ID" з назвою програми чи таблиці. (наприклад, "company_1", "person_1" замість "1").


Припустимо, у вас є база даних SQL з двома таблицями, які ви хочете імпортувати: компанії та особи. Кожна людина належить до однієї компанії, тому вам доведеться відтворити зв'язок між людиною та компанією, в якій він працює.


Спочатку ми експортуємо всі компанії та їх "Зовнішній 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

Як ви бачите у цьому файлі, Фаб'єн і Лоуренс працюють у компанії Bigees (company_1), а Ерік працює в компанії Organi. Зв'язок між особами та компаніями здійснюється за допомогою зовнішнього ідентифікатора компаній. Нам довелося привласнювати "Зовнішній ID" за назвою таблиці, щоб уникнути конфлікту ідентифікатора між особами та компаніями (person_1 та company_1, які поділилися однаковим ідентифікатором 1 в оригінальній базі даних).

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

Leave a comment

You must be logged in to post a comment.