Інструкція з вивантаження і завантаження даних
Інструкція з вивантаження і завантаження даних
Припустимо, стоїть завдання передати документ «Прибутковий касовий ордер» (ПКО) з однієї базу в іншу. Для вирішення завдання спочатку треба вивантажити документ з вихідної бази, а потім завантажити його в цільову базу.
вивантажити документ
Спочатку необхідно створити пункт контекстного меню «вивантажити» в розділі ПКО. При виборі цього меню будуть формуватися файли import, які потім будуть завантажуватися в цільову базу. Для створення пункту меню:
Відкрити розділ Адміністрування / Розділи системи
Для розділу «Прибуткові касові ордери» у вкладці «Приєднані розділи» пункт меню «Додати зв'язок».
Заповнити зв'язок розділів як показано на зображенні:
Перезапустити клієнтську програму.
Після виконання описаних вище операцій в розділі «Прибуткові касові ордери» з'явиться пункт меню «вивантажити». Скористаємося їм для генерації файлів.
Створіть нову папку на диску. У прикладі папка називається C: \ work2 \ Import.
Вибрати пункт «вивантажити».
У генераторі вікні параметрів генерації файлів імпорту задати папку, в яку буде проводитися вивантаження.
Натиснути «Виконати».
Помістити всі файли, створені в папці, в zip архів.
Примітка: файли повинні знаходитися безпосередньо в zip архіві. Паки, поміщені в архів, не обробляються механізмом імпорту.
Імпортувати документ на іншій базі
В результаті попередніх кроків у нас є архів, що містить вивантажені з вихідної бази даних. Завантажимо ці дані в цільову базу.
Відкрити розділ Адміністрування / Імпорт даних.
Натиснути «Обзор»
У діалозі вибору файлів вибрати розширення ZippedImportFiles (* .zip)
Вибрати створений zip архів
Натиснути «Запустити»
Перейти в розділ ПКО і переконатися, що з'явився імпортований документ
Налаштування генератора файлів імпорту
Оновлювати існуючі файли
Функція використовується для того, щоб можна було в один набір файлів вивантажити кілька різних об'єктів (документів, словників і т.д.).
Приєднати генератор до розділу ПКО і до розділу РКО
Створити нову папку для вивантаження або очистити існуючу
Вибрати пункт контекстного меню «вивантажити» в розділі ПКО. Виконати дії з першого прикладу, в результаті яких отримуємо кілька файлів з розширенням import в папці вивантаження.
Вибрати пункт контекстного меню «вивантажити» в розділі РКО. У вікні параметрів генерації файлів:
Вибрати ту ж папку, в яку вивантажували ПКО.
Встановити параметр «Використовувати існуючі файли».
В результаті дані під час вивантаження будуть додані в існуючі файли, які були створені під час вивантаження ПКО.
Всі файли з папки вивантаження помістити в zip архів. Тепер при імпорті отриманого архіву в іншій базі з'являться документи ПКО та ВКО.
Використовувати інструкцію insert-or-update [опція для розробників]
За замовчуванням, якщо опція не вибрана, то кожен запис вивантажується з інструкцією insert. Якщо обрана, то кожен запис вивантажуватиметься з інструкцією insert-or-update.
Порівняння файлів вивантаження для словника «Довідник валют» при відключеній опції і при включеній:
Відключити сортування файлів [опція для розробників]
При імпорті потрібно, щоб файли йшли в певному порядку. Наприклад, є файл імпорту для документа і файл імпорту словника. Відомо, що документ посилається на записи словника. Тоді першим в списку файлів повинен бути файл для словника, а другим - файл для документа.
Генератор файлів імпорту автоматично виконується сортування згенерованих файлів: ім'я файлу починається з індексу, який і визначає порядок файлу.
Якщо поставити галку в опції «Відключити сортування файлів» - то файли автоматично сортуватися не будуть. Ця опція застосовується в особливих випадках, коли розробник сам визначає порядок проходження файлів.
Результат при вимкненому опції (зліва) і при включеній (праворуч):
Чи не вивантажувати stream і blob поля
Опція управляє вивантаженням файлів з бази даних. Наприклад, фотографія для фізичних осіб або прикріплений файл. За замовчуванням всі файли, які використовують Вивантажувані об'єкти (все поля з типами stream і blob), вивантажуються.
Об'єднувати специфікацію з майстром [опція для розробників]
За замовчуванням (якщо опція не вибрана) записи специфікації поміщаються в окремий файл.
Приклад для класу «Фізична особа» і специфікації «Персональний документ» (в окремих файлах):
Якщо опція вибрана - то записи специфікації поміщаються в один файл із записами майстра.
Увага! При включеній опції можливе виникнення циклічних посилань. Наприклад, коли вивантажили два файли імпорту: file1.import і file2.import. Але file1.import використовує записи file2.import, а file2.import використовує записи file1.import. У такій ситуації при імпорті архіву будуть виникати помилки виду:
[18:37:16] Виконання призвело до помилки:
Can not insert the value NULL into column 'Person_tid',
column does not allow nulls. INSERT fails.
The statement has been terminated.
Значить, в даній ситуації опцію потрібно зняти або перенести записи специфікацій в новий файл вручну.
Посилатися з специфікації на майстра за значенням [опція для розробників]
Пакет [опція для розробників]
Якщо в цьому полі обрана запис, то в папці вивантаження з'являється файл проекту пакета Торнадо. У цей проект вже включені всі файли з даними.
У розділі «Налаштування пакета файлів імпорту» створити запис і заповнити необхідні поля.
У генераторі вказати створену в пункті 1 запис.
В папці вивантаження з'явиться файл проекту. Його можна додати до існуючого рішення в Visual Studio як існуючий проект. Також з бази вивантажити все залежні пакети (* .pkg).
Створити файл конфігурації за замовчуванням [опція для розробників]
При натисканні на кнопку в папці вивантаження буде створений файл generator.config. Це необов'язковий файл, який може бути використаний для настройки імпорту.
За замовчуванням в інструкціях імпорту в ключові поля потраплять обидва поля.
У файлі конфігурації можна вказати для класу Parus.Business.Currency, що в ключові поля потрібно записувати тільки одне поле, наприклад, Code.
Тоді результат вивантаження буде таким:
Класи, у яких кілька обмежень унікальності вказуються в балці роботи генератора, в файлі ImportLog.txt, який з'являється в папці вивантаження. Наприклад, під час вивантаження класу Parus.Business.Currency в балці з'являється таке повідомлення:
Генератор замість посилання по id ставить посилання за значенням в разі, якщо в класі, на який посилаємося, в обмеженні унікальності тільки одне поле. Але якщо самих обмежень кілька, як в класі Currency, то для посилання за значенням за замовчуванням використовується перше з обмежень унікальності.
Якщо потрібно вказати яке унікальне поле використовувати для посилання за значенням для конкретного класу - ім'я поля потрібно вказати в атрибуті rbv-key: