Перше оновлення Data Director після запуску Pimcore X знову надає користувачам пакету експорту та імпорту низку покращень та нових функцій.
Дізнайтеся докладніше, які інновації наші розробники внесли в останню версію Data Director і якими покращеннями ви можете скористатися з версією 2.5.1 ви можете скористатися у версії 2.5.0:
Сумісність з Pimcore 10
Версія 2.5.0 повністю сумісна з Pimcore 10 - з тим невеликим обмеженням, що не всі використовувані бібліотеки сумісні з PHP 8. Для Pimcore 10 вам потрібно встановити Data Director через Composer з параметром --ignore-platform-reqs. Однак ми працюємо над сумісністю з PHP 8 - також щодо використовуваних бібліотек.
Експорт з фільтрацією по сітці
Тепер можна використовувати сіткове подання (подання папок) для фільтрації, а потім експортувати вибрані у ньому об'єкти. Це дозволяє виконувати спеціальний фільтрований експорт без необхідності вводити умови SQL. Щоб розпочати експорт, у випадаючому меню кнопки "CSV Експорт" з'явилася нова опція "Експорт до Data Director".
У наступному модальному вікні ви можете вибрати порт даних, який буде використано для експорту (відображаються лише сумісні експорти для обраного класу об'єктів даних сітки).
Рефакторинг (автоматичного) експорту для використання API
Раніше вихідні дані для автоматичного експорту оновлювалися для кожної попередньо виконаної умови SQL. Це призводило до низької продуктивності при збереженні об'єктів. Це було повністю рефакторизовано: Для автоматичного експорту необроблені дані тепер оновлюються лише для налаштованої умови SQL порту даних (і для кожної мови). Оновлені вихідні дані також використовуються для раніше виконаних умов SQL (так що експортні дані вже підготовлені, коли експорт з цією умовою SQL виконується знову). Таким чином, вихідні дані потрібно витягувати лише один раз (для кожної мови), а не повторно для всіх користувацьких умов SQL.
Також важливо для використання API: умова SQL з параметра запиту викликів REST API для портів даних на основі Pimcore тепер розширює умову SQL в налаштуваннях порту даних, а не перевизначає її, так що умову порту даних нелегко обійти (наприклад, щоб не мати можливості отримати неопубліковані об'єкти).
Доступ до елементів Pimcore через REST API тепер можливий лише за умови, що користувач, який запитує, має права "Перегляд" для відповідних елементів.
Для інкрементного експорту відмічається мітка часу останнього успішного експорту (у властивостях об'єкта, аналогічно до імпорту). Якщо для цього об'єкта знову запускається експорт, його поточна мітка зміни (включно з потенційно успадкованими полями) порівнюється з цією властивістю, і якщо поточна мітка зміни не є новішою, необроблені дані об'єкта не витягуються знову, тобто не експортуються. Це також дозволяє виконувати автоматичний інкрементний експорт для всіх потенційно змінених об'єктів одразу (раніше він був розділений на процеси експорту окремих об'єктів).
Data Director 2.5.0: Оптимізація продуктивності
- Черги автоматичних портів даних тепер обробляються паралельно. Це гарантує, що порт даних, який має лише кілька команд у черзі, не повинен чекати, поки будуть оброблені черги інших портів даних.
- Повторне використання необроблених даних, якщо вже існує елемент необроблених даних з поточним хешем, який має ту саму дату модифікації, що й поточний об'єкт.
- Якщо реляційні поля використовуються як ключові поля для імпорту, пов'язані з ними ідентифікатори об'єктів вирішуються заздалегідь, щоб уникнути запиту типу "WHERE relationalField LIKE '%,123,%'" - натомість виконується набагато швидший запит у вигляді "o_id IN (345,13,58)".
- Таку ж оптимізацію виконано і для умов SQL для портів даних на основі Pimcore.
- Видалено непотрібні блокування в парсері Pimcore.
- Виправлено: Селектори запитів до даних обчислювалися двічі, якщо вони не повертали конкретний об'єкт.
- Кеш відношень тепер також використовується для селекторів запитів даних, які повертають дані з об'єкта, що запитується.
- На 600% збільшено продуктивність імпорту до галерей зображень/(розширеного) імпорту відображення ресурсів за зв'язками багато-до-багатьох.
- При перевірці змін в об'єкті під час імпорту поля спочатку сортуються відповідно до того, чи вони відображені, чи ні. Це означає, що поля з відображенням перевіряються першими в зіставленні атрибутів, оскільки ймовірність того, що їхні значення були змінені, є вищою, ніж у полів без відображення.
Видобування необроблених даних
- Додано можливість пропустити перевірку версій при імпорті ресурсів.
- Підтримка glob-виразів у поєднанні з теками ресурсів як ресурсу для імпорту, наприклад, /import/*.csv, якщо /import - це тека ресурсів Pimcore.
Відображення атрибутів
- Індекс рекомендується, якщо використовується селектор запиту даних функції зворотного виклику.
- Не перезавантажувати автоматично панель історії під час фільтрування (пошуку) прогонів порту даних або коли в даний момент не відображається сторінка 1 -> легше шукати конкретний прогін.
- Додано шаблон для додавання метаданих до ресурсів.
Панель історії та імпорту
- Поле умови SQL автоматично фокусується, коли порти даних на основі Pimcore запускаються вручну з бекенду Pimcore.
- Збереження умови SQL з попереднього виконання, щоб полегшити запуск одного і того ж імпорту/експорту кілька разів (наприклад, при налаштуванні/тестуванні портів даних).
Інші зміни у версії 2.5.0
- Розширений зв'язок "багато-до-багатьох" підтримується як ключове поле (зберігається в базі даних інакше, ніж (розширений) зв'язок "багато-до-об'єкта").
- Стовпець "fieldNo" збільшено так, щоб 3-значні числа не обрізалися.
- Додано шаблон функції зворотного виклику для генерації абсолютної URL-адреси ресурсу/мініатюри.
- Виправлення: Оптимізація успадкування: ефективніша перевірка для батьківських об'єктів, чи дійсно було змінено значення перед збереженням.
- Точніше порівняння значень полів під час перевірки, чи був об'єкт змінений імпортом, щоб розпізнати зміну з 0 на ''.
- Тип елемента та ім'я класу вказано у серіалізаторі для реляційних полів.
- Виправлення: імпорт, що перекривається: елементи необроблених даних, які вже було оброблено, більше не обробляються повторно.
- Використання стійкого до помилок декодера JSON, щоб уникнути скасування всього імпорту, якщо кодування набору символів документа, що імпортується, є неправильним.
- Виправлення: попередній перегляд відображення атрибутів ігнорував налаштовану папку джерела ресурсів (фактичний імпорт працював коректно).
- Запобігання багаторазовому призначенню одного і того ж ресурсу до галереї зображень та зв'язку "багато до багатьох".
- Запобігання множинним паралельним запитам на оновлення панелі історії.
- Виправлено: у разі використання відносного шляху до теки як ресурсу імпорту тепер працює видалення файлу ресурсу після імпорту (якщо його викликано з --rm).
- Під час імпорту з --force система більше не перевіряє, чи елемент наразі заблоковано для редагування.
- Прискорено відображення та приховування стовпців під час пошуку у вікні попереднього перегляду порту даних.
- Виправлено: знову можливий запуск експорту правою кнопкою миші на об'єкті в дереві об'єктів.
- Виправлено: при імпорті необроблених даних призначається правильний об'єкт логера, і журнали з'являються в журналах виконання імпорту.
- Використання таблиці application_logs (якщо вона використовується у Data Director) для пошуку найгіршого рівня журналу.
- Максимальний час виконання при пошуку в журналах панелі історії дозволяє уникнути таймауту, навіть якщо деякі елементи знайдено.
- Користувачі, які запускають імпорт, зберігаються у версіях; дозволяє краще відстежувати зміни.
- Виправлено імпорт до Excel з індексом стовпця.
- Сирі дані з поточно експортованих ресурсів Dataport більше не видаляються.
- Дані, завантажені вручну, призначаються до ресурсу порту даних за замовчуванням.
- До бази даних не записується трасування стеку для версій.
- Для порівняння полів галереї зображень на предмет змін використовується спеціальна логіка.
- Існуючі дані мета-стовпців для розширених зв'язків "багато-до-багатьох" зберігаються.
- Документи Pimcore, які збігаються з URL-адресою для запитів REST API, більше не завантажуються.
- Додано підтримку пошуку за подібністю (пошук за підстановкою) за допомогою селектора запитів даних.
- Підтримка додавання елементів до полів з множинним вибором (замість того, щоб завжди надавати всі варіанти для вибору), тепер працює так само, як для відносин, галерей зображень та інших полів з множинним присвоєнням (раніше встановлені варіанти завжди перезаписувалися).
- Виправлення: всі необроблені дані тепер обробляються на предмет перекриття імпорту.
- Прогони портів даних позначаються як "скасовані", якщо виникає неперехоплений виняток або процес скасовується - вручну за допомогою CLI або автоматично операційною системою.
- Підтримка доступу до локалізованих полів в умовах SQL портів даних на основі Pimcore, наприклад, name#en='abc'.
- Підтримка доступу до полів об'єктів brick в умовах SQL портів даних на основі Pimcore, наприклад, brickName.fieldName=123.
- Виправлено попередній перегляд змінної $params['rawItemData'] у відображенні атрибутів для складних даних.
- Виправлено демонстраційні дані для складних XML-даних.
- Виправлення: синтаксичний аналіз XML: поверталися багатозначні атрибути [] для дочірніх вузлів без значення.
- INSERT ... IN DUPLICATE KEY для елементів черги замість REPLACE INTO, щоб поточні елементи черги не видалялися.
- Підтримка доступу до полів елементів об'єктів ObjectMetadata, ElementMetadata, Hotspotimage без додавання "element:" до селектора запиту даних.
- Виправлення: Серіалізатор для документів (для структури документів Pimcore 4).
- Існуючі ресурси для галерей зображень/зв'язків "багато-до-багатьох" тощо розпізнаються за хешем MD5, тільки якщо файли зберігаються локально.
- Попередження, якщо не вказано жодного ключового поля.
- Підтримка виклику методів класу сервісу з селектора запиту даних, наприклад, "поле:@ім'я_сервісу::метод"
- Ключі API/авторизовані порти даних інших користувачів тепер відображаються тільки для адміністраторів.
- Виправлено: поля в конфігурації порту даних більше не блокуються, коли новий порт даних створюється користувачем, який не є адміністратором.
- Запобігається помилка при генерації умови автозаповнення SQL-запиту.
- Додано спеціальне поле "__updated" для файлових та URL типів портів даних.
- Використання мови користувача Pimcore для експорту, якщо мову не було явно вказано.
- Додано підтримку синтаксису '' / "" (віртуальні поля у лапках) для кращого копіювання функцій зворотного виклику у переформатовані IDE без псування коду.
- Колекції полів краще серіалізуються.
- У серіалізаторах враховуються нульові значення.
- Додано метод Importer::translate() для виклику DeepL/AWS Translate для перекладу складних значень полів (наприклад, переклад колекцій полів).
- Тепер працює перевірка змін для колекцій полів з локалізованими полями.
- Підтримка експорту всіх призначених цеглинок за допомогою Data Director "brickFieldContainer" класу вихідних даних.
Більше інформації про нову версію Data Director та детальну історію версій можна знайти на GitHub.
Для отримання додаткової інформації, детальних запитань або порад щодо Data Director Bundle, будь ласка, звертайтеся до Девіда Готтшалка в будь-який час.
Виникли запитання чи бажаєте отримати особисту консультацію?
Наш бекенд стає яскравішим: Привіт, Стефане!
Новий курс в Академії Blackbit: Основи SEO
Data Director для Pimcore версії 3.7 знаходиться тут
Кейс EGGERS: веб-сайт HubSpot для ефективного управління лідами
Залиште нам відгук