Die neue Version ist da: Pimcore Data Director 3.6

Stefano Viani

Geschäftsleitung

11 Apr 2024 Pimcore Import, Export

Unsere Entwickler:innen erweitern und optimieren unser Import- und Export-Bundle für Pimcore ständig. Auch in Version 3.6 erwarten Sie wieder viele neue kleine und große Verbesserungen, die Ihre täglichen Datenoperationen effizienter machen.

Die neue Version ist da: Pimcore Data Director 3.6

Leistungsverbesserungen in Version 3.6

  • Enorme Reduzierung von Speicherverbrauch bei Exporten
  • Erstellung von Rohdaten-Chunks auf der PHP-Seite, um Rohdaten in MySQL nicht paginieren zu müssen, da Rohdaten-IDs nicht sehr viel Speicher benötigen. Zuvor war das Paginieren von Rohdaten sehr ressourcenintensiv, abhängig davon, wie viele Rohdaten das System gespeichert hat.
  • Verbesserung der Erkennung von Änderungen bei Feldsammlungen. Dadurch werden unveränderte Feldsammlungen besser erkannt und das Datenobjekt muss nicht gespeichert werden. Das Ergebnis: schnellere Importe.
  • Verhinderung des mehrfachen Ladens von Remote Assets während des Imports.
  • Viele kleinere Refactorings verhindern, dass derselbe Code immer wieder ausgeführt wird. Da Import- und Export-Aufgaben normalerweise die Logik für alle Elemente bei jedem Durchlauf wiederholen, gab es hier viel Potenzial, Teilprozesse zu überspringen und dadurch die Performance zu steigern.

Parametrisierte Dataports

Nur noch Parameter, die im Dataport verwendet werden (z.B. in Filterbedingungen oder Callback-Funktionen), werden in der Dataport-Ressource gespeichert. Dadurch wird die Anzahl der Dataport-Ressourcen drastisch reduziert. So macht es z.B. ab jetzt keinen Unterschied mehr, ob zwei verschiedene Benutzer:innen einen Export durchführen, wenn der Dataport nicht den anfragenden Benutzer als Parameter verwendet, z.B. . Dadurch entstehen wesentlich weniger Rohdaten-Duplikate, was Speicherverbrauch und Laufzeit zugutekommt.

Außerdem kann nun auch auf Parameter zugegriffen werden, wenn lediglich der Schritt „Rohdaten verarbeiten“ ausgeführt wird. Vorher war dies nur möglich, wenn die Parameter in Rohdatenfeldern gespeichert wurden, sonst waren die Parameter nicht verfügbar.

Mehrstufige Objekt-Assistenten

Objekt-Assistenten sind Formulare im Pimcore-Backend, mit denen Sie eine Benutzeroberfläche für gängige Datenpflege- oder Exportaufgaben erstellen können. Mit mehrstufigen Objekt-Assistenten wird dieses Konzept nun noch leistungsfähiger. Ein mehrstufiger Objektassistent besteht aus einem oder mehreren einzelnen Objektassistenten-Datenports, die in einer Pipeline miteinander verbunden sind. Praktische Anwendungsfälle sind zum Beispiel:

  • Das Einfügen einer Liste von Artikelnummern in ein Textfeld (Dataport 1), Parsen dieser Nummern und Übergabe als Parameter an Dataport 2.
  • Dataport 2 ist ein Objekt-Assistentenformular mit einer Many-to-Many-Objektbeziehung. Dieses Beziehungsfeld wird mit den Daten aus Dataport 1 vorausgefüllt. Auf diese Weise können Sie überprüfen, welche Produkte in der Copy-Paste-Liste gefunden wurden und geändert bzw. exportiert werden sollen.
  • Noch bemerkenswerter ist, dass Sie damit auch verzweigende Assistenten erstellen können: Abhängig von den Daten eines Objekt-Assistenten-Formulars, kann die nächste Seite Dataport 2 oder Dataport 3 sein. Auf diese Weise können Sie komplexe Assistenten einrichten, wie Sie sie von der Anwendungsinstallation in Windows/MacOS kennen.

Optimierung allgemeiner Pimcore-Funktionen

  • Verfolgung von Änderungen an geöffneten Objekten: Wenn ein anderer Benutzer oder Dataport z.B. ein Objekt ändert, wird die Registerkarte neu geladen, sofern es keine Änderungen an den Objektdaten gibt.
  • Im Hauptmenü gibt es einen Eintrag zum Öffnen von Objekten nach ID/Pfad, der nun durch ein Untermenü für jedes indizierte Feld ergänzt wird, z.B. um Objekte direkt per Artikelnummer zu öffnen.
  • Automatisches Setzen des Klassen-Icons (falls noch nicht vorhanden) auf ein zufälliges Objektsymbol, sodass verschiedene Klassen unterschiedlich gefärbte Symbole haben. Dies erleichtert die Unterscheidung von Objekten verschiedener Klassen auf einen Blick.
  • Automatische Tab-Verwaltung: Wenn die verfügbare Breite der Tab-Leiste überschritten wird, wird der Tab, auf den am längsten nicht mehr zugegriffen wurde, automatisch geschlossen.
  • Integration mit dachcom-digital/formbuilder: Der Data Director wird als API-Kanal für dachcom-digital/formbuilder unterstützt, so dass Sie Frontend-Formulare mit dem Formbuilder erstellen und die Verarbeitungslogik im Data Director implementieren können.

Dataport-Einstellungen

  • Unterstützung der Aufteilung von Importdaten in Blöcke von 10.000 Datensätzen, die dann in mehreren parallelen Prozessen importiert werden, um eine optimale Performance zu erzielen.
  • Unterstützung der absteigenden Sortierung von Rohdaten
  • Berechtigungen
    • Hinzufügen der Berechtigung „Data Director Admin“ für Setups mit Benutzer:innen, die keine Pimcore-Admins sind, aber trotzdem auf Datenports zugreifen können sollen.
    • Neu erstellte Dataports werden automatisch auch für Benutzer*innen freigegeben, die die gleiche Rolle innehaben wie derjenige, der den Dataport erstellt hat.
  • Import-Archiv
    • Bei URL-basierten Importen wird die Archivdatei nun mit der richtigen Datei-Erweiterung benannt. Etwa .json für einen JSON-basierten Import – bisher lautete die Datei-Endung .tmp. Dadurch kann man den jeweiligen Inhalt der Archivdateien im Pimcore-Backend einsehen.
    • Bei parametrisierten Importen werden die Archivdateien nun nach Parametern gruppiert, z.B. wird bei der Importressource http://example.org/api?product= die Archivdatei in /archive/ABC abgelegt, wenn der Parameter „product“=ABC verwendet wird.
    • Gruppierung von Archiv-Ordnern nach Datum: Früher hieß eine Archivdatei 2024-01-15-12-00-00-Beispiel.csv, jetzt wird sie in Ordnern abgelegt: 2024/01/15/12-00-00-Beispiel.csv

Attribut-Mapping

  • Unterstützung des Imports von lokalisierten Asset-Metadaten mit der Syntax ['fieldname#de' => 'value'].
  • Callback-Funktionsvorlage für die Umwandlung von HTML in Text hinzugefügt.

Dataport-Ausführungsfenster

  • Fügen Sie Eingabefelder für Parameter einer parametrisierten Dataport-Ressource hinzu. Zum Beispiel kann, wenn http://example.org/api?product= verwendet wird, der Parameter „product“ im Dataport-Ausführungsfenster eingegeben werden.

Weitere Änderungen

  • Unterstützung des Imports aller Dateien aus Ordnern, auch wenn das –rm-Flag nicht verwendet wird. Dadurch ist es auch aus dem Pimcore-Backend möglich komplette Ordner zu importieren.
  • Französisch und Italienisch sind nun als UI-Sprachen verfügbar.
  • Die Erstellung von Video-Thumbnails in Exporten wird unterstützt.
  • Dataports, die über das Kontextmenü des Element-Baums ausgeführt werden, werden nun ebenfalls mit force=1 ausgeführt. Ansonsten würden iterative Exporte bei aufeinanderfolgenden Aufrufen mit nicht geänderten Daten nicht erneut ausgeführt, was das Testen erschwert.
  • Datumsfelder werden nun als Schlüsselfelder unterstützt.
  • Attribut-Mapping: Bessere Vorschau für Relationen. Bisher wurde json_encode() Da aber fast alle Felder geschützt sind, wurde bisher praktisch nichts angezeigt, nun wird das Element serialisiert.
  • JSON-Parser
    • Unterstützung von JMESpath/JSON-Pointer-Konvertierung, dadurch istproducts gleichbedeutend zu data/products.
    • Unterstützung von ../ für den Zugriff auf JSON-Daten über den eigentlichen Artikeldaten.
  • Pimcore-Element-basierte Exporte: Unterstützung der Aktivierung bzw. Deaktivierung von Vererbung für Klassen, die keine Vererbung erlauben, aber lokalisierte Felder mit mindestens einer Fallback-Sprache haben.
  • Entfernen von moontoast/math, da es nicht mehr weiterentwickelt wird.
  • ObjectBricksOptionProvider hinzugefügt: Es gibt nun den Options-Provider „@DataDirectorObjectBricksOptionProvider“ für Auswahlfelder.
    Ein praktischer Anwendungsfall: Sie können auf Kategorieebene festlegen, welcher Objektbaustein für alle Produkte gilt, die dieser Kategorie zugeordnet werden. Dazu müssen Sie einen Dataport einrichten, der den Brick-Namen der Kategorie abruft und den entsprechenden Brick in das Objekt-Brick-Containerfeld „importiert“. Aktivieren Sie Run automatically on new data, um diesen Dataport immer automatisch auszuführen, wenn ein Produktobjekt gespeichert wird. Dadurch werden die Objektbausteine automatisch den Produkten zugewiesen, je nachdem, welcher Kategorie sie zugeordnet werden.
  • Regelmäßige Optimierung der Tabelle plugin_pim_rawItemData, um den nötigen Festplattenspeicher zu reduzieren, analog zu pimcore/pimcore#11817.

Hilfreiche Video-Tutorials für den Pimcore Data Director

Detailgenaue Anleitungen und viele praxisnahe Tipps rund um die effiziente Anwendung des Pimcore Data Directors bieten wir Ihnen in den Video-Tutorials in der Blackbit Academy sowie auf dem Blackbit YouTube-Kanal.

Sie kennen das Data Director Bundle noch nicht?

Wenn Sie unser leistungsstarkes Import- und Export-Bundle gerne erst einmal besser kennenlernen möchten, dann testen Sie es doch in unserer kostenfreien Demoinstallation.
Möchten Sie einen speziellen Anwendungsfall testen? Dann senden Sie uns gerne Ihre Aufgabenstellung und Ihre Daten zu. Gerne bieten wir Ihnen einen Workshop an, indem wir Ihnen zeigen, wie Sie Ihre individuellen Anforderungen mit dem Data Director lösen.

Über den Autor

Als Executive Director der Blackbit digital Commerce GmbH leitet Stefano Viani alle Bereiche der Agentur in den Büros in Göttingen, Hamburg, Berlin und Kiew. Seine Leidenschaft gilt der Entwicklung von Marketingstrategien und deren Umsetzung in konkrete Maßnahmen.

In seiner Freizeit fährt Stefano leidenschaftlich gerne Motorrad oder trainiert im Fitnessstudio.