Експорт та імпорт даних

Експорт даних з Odoo

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

За допомогою Odoo ви можете експортувати значення з будь-якого поля будь-якого запису. Для цього активуйте перегляд списку для елементів, які потрібно експортувати, натисніть Дія, а потім Експорт.

перегляд різних речей, щоб увімкнути/клацнути, щоб експортувати дані

Досить проста, ця дія все ж має деякі особливості. Фактично, коли натискаєте Експорт, з’являється спливаюче вікно з кількома параметрами для експорту даних:

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

  2. Під час експорту ви можете вибрати між двома форматами: .csv і .xls. У .csv елементи відокремлюються комами, тоді як .xls містить інформацію про всі аркуші у файлі, включаючи вміст і форматування.

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

  4. Кнопка + призначена для додавання полів до списку «для експорту».

  5. «Маркети» поруч із вибраними полями дозволяють переміщувати поля вгору та вниз, щоб змінити порядок, у якому вони мають відображатися в експортованому файлі.

  6. Кошик є, якщо вам потрібно видалити поля.

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

Порада

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

Імпорт даних в Odoo

З чого почати

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

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

../../_images/import_button.png

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

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

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

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

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

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

    ../../_images/field_list.png

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

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

Щоб відновити взаємозв’язок між різними записами, ви повинні використовувати унікальний ідентифікатор з оригінальним додатком та позначити його на ID стовпця (зовнішній ID) в Odoo. Коли ви імпортуєте інший запис, який посилається на перший, використовуйте XXX/ID (XXX/Зовнішній ID) до оригінального унікального ідентифікатора. Ви також можете знайти цей запис, використовуючи його назву, але ви зупинитесь, якщо принаймні 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 дозволить вам змінювати лише кодування під час збереження (у „Зберегти як“ діалоговому вікні ‣ клацніть спадний список „Інструменти“ ‣ вкладка Encoding).

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

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

Наприклад, щоби вказати країну контакту, 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 для категорій.

файл CSV для продуктів.

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

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

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

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

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

файл CSV для виробника, роздрібного продавця

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

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

Файл для деяких пропозицій.

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

Замовлення на купівлю з відповідними рядками замовлення на купівлю.

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

Клієнти та їхні відповідні контакти.

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

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

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

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

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

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

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

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

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

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

Як ви бачите в цьому файлі, Fabien і Laurence працюють у компанії Bigees (company_1), а Eric – у компанії Organi. Відносини між особами та компаніями здійснюються за допомогою Зовнішній ID компаній. Нам довелося додати префікс «Зовнішній ID» до назви таблиці, щоб уникнути конфлікту ID між особами та компаніями (person_1 і company_1, які мають однаковий ID 1 у вихідній базі даних).

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

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

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

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

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

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

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

    ../../_images/field_list.png

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

Чому колонка “ID”

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

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

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

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

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

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

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