Digital Commerce Blog - Blackbit

Der Data Director für Pimcore in Version 3.7 ist da

Geschrieben von Stefano Viani | am 28.11.24 um 11:08 Uhr

Unser leistungsstarkes Bundle für den Austausch von Daten zwischen Pimcore und externen Datenquellen aller Art hat wieder ein Update bekommen. Lesen Sie hier, was sich mit Version 3.7 beim Data Director ändert.

Überarbeitetes Zusammenfassungsfenster

Das Zusammenfassungsfenster wurde überarbeitet, um Nutzer:innen das Nachvollziehen des Erfolgs von Importen und Exporten zu erleichtern. Es enthält nun ein Akkordeon mit drei Abschnitten:

  • Fehler
    Einschließlich direkter Links zu den betroffenen Elementen.
  • Geänderte Elemente
    Filterbar nach Elementen, die durch den Import geändert bzw. nicht geändert wurden plus Suchfunktion, wenn man nach bestimmten Elementen sucht.
  • Ergebnisdokument
    Stellt Datei oder Ergebnismeldungen als Download bereit.

Auf diese Weise können auch Datenpfleger ohne technische Kenntnisse Importe und Exporte durchführen – zum Beispiel über Hauptmenü-Links oder Objekt-Assistenten-Formulare. Nach Abschluss der Operation erhalten sie eine übersichtliche und visuell ansprechende Ergebniszusammenfassung.

Wiedereinführung des Adminers

In Pimcore 11 wurde das Datenbank-Administrations-Tool entfernt. Für Data Director-Benutzer:innen war dies ein großer Nachteil, da es nun nicht mehr möglich war, Einsicht in die Datenbank zu nehmen, um SQL-Bedingungen für Dataports zu testen. Der Data Director führt diese Möglichkeit für Pimcore 11 nun wieder ein.

Außerdem werden einige nützliche Funktionen hinzugefügt, die auch in älteren Pimcore-Versionen (Pimcore 10 und darunter) nutzbar sind:

  • Behebung des Fehlers „Cannot modify header information“
  • Auto-Suggest für SQL
  • Sticky-Tabellenköpfe, um die Spaltennamen zu sehen, wenn man nach unten scrollt
  • Tooltip für die Anzeige des menschenlesbaren Datumsformats für UNIX-Zeitstempel hinzugefügt

Pimcore-Kernverbesserungen

Das Data Director Bundle bietet nicht nur einen schnellen und flexiblen Weg zur Implementierung von Importen und Exporten, sondern kann für alle Aufgaben im Product Information Management (PIM) verwendet werden. Darum fügt der Data Director einige nützliche (doch überschreibbare) Anpassungen hinzu, um die täglichen PIM-Aufgaben effizienter zu gestalten. Dazu gehören:

  • Unterstützung der Browser-Schaltfläche „Zurück/Vorwärts“, um einfacher zwischen den Tabs zu wechseln.
  • Erweiterung des Kontextmenüs für Tabs, sodass die Tabs links/rechts von der aktuellen Registerkarte geschlossen werden können.
  • Hinzufügen einer Schaltfläche zur Klassendefinition, um einen Dataport direkt aus dem Bearbeitungskontext heraus zu starten.
  • Schnelleres Löschen von Elementen: Statt 2*n aufeinanderfolgenden AJAX-Anfragen werden alle ausgewählten Elemente in einem Hintergrundprozess gelöscht (inkl. Verschieben der gelöschten Elemente in den Papierkorb).
  • Auto-Sync von geänderten Feldern, wenn das geöffnete Element von anderen Benutzer:innen geändert wurde/Import (wenn der Feldwert nicht von aktuellen Benutzer:innen bearbeitet wurde).
  • Anzeige der zuletzt geöffneten Elemente als Untermenü des Menüsymbols „zuletzt geöffnete Elemente“.
  • Übersetzbare Schlüssel/Namen im Elemente-Baum.
  • Live-Updates für Berechneter-Wert-Felder.
  • Geändertes Verhalten der Schnellsuche:
    • nur noch Elemente finden, die ALLE Suchbegriffe enthalten
    • Ausschluss von Dateien in Import-Archiv-Ordnern

In der Serie „Pimcore on Steroids“ führen wir in kurzen Demonstrationsvideos auf YouTube die einfache Aktivierung dieser grundlegenden Änderungen vor und gehen auf deren konkreten Nutzen ein.

Neue Import-/Exportfunktionen

  • Implementierung einer Vorlage zum Ausfüllen einer vordefinierten Excel-Datei
  • Unterstützung von Platzhaltern (*) für FTP-/SFTP-/FTPS-Importressourcen, z.B. ftp://user:password@example.org/import/*.xml
  • Unterstützung von
    sftp://username:password@example.org/folder/BMEcat_*.xml | latest,
    um Platzhalter in FTP-URLs zu verwenden, aber trotzdem nur die neueste (= zuletzt geänderte) Datei abzurufen
  • Hinzufügen des Data Query Selectors „latestVersionWith“.
    In Überprüfungs- und Genehmigungsworkflows können Objekte mehrere Zustände gleichzeitig haben: Zu Beginn sind die Daten des Objekts nicht genehmigt. Dies kann mit einer Checkbox oder einem Auswahlfeld modelliert werden. Nach der Überprüfung wird der Status auf „genehmigt“ gesetzt. Später werden die Daten aktualisiert und der Status wird wieder auf „nicht genehmigt“ gesetzt. Zu diesem Zeitpunkt kann es aber immer noch notwendig sein, auf die letzten genehmigten Daten zuzugreifen. Dies kann mit dem Datenabfrage-Selektor „latestVersionWith“ erfolgen. Um zum Beispiel den zuletzt genehmigten Namen des Objekts abzurufen, können Sie latestVersionWith#status,approved:name verwenden:
    • latestVersionWith#status,approved ruft die letzte Version ab, die den Status =approved Von dieser Version wird der Name abgerufen.
    • Auf diese Weise können Sie Exporte erstellen, die nur genehmigte Daten exportieren.
    • Wenn Sie einen anderen Vergleichsoperator verwenden wollen, benutzen Sie den dritten Parameter, z.B. latestVersionWith#validUntil,2024-01-01,>=.
  • Unterstützung von Strings als Importressource wie { "sku": , image: } für einen JSON-Import und dynamisches Füllen von Platzhaltern über Parameter.

UI-Verbesserungen

  • Neues Status-Panel, um einen Überblick über alle Datenport-Durchläufe zu erhalten (ähnlich dem History-Panel, aber für alle Datenports).
  • History-Panel:
    • Schnelleres Laden.
    • Dataport-Logs mit > 100 MB werden als Download zur Verfügung gestellt, statt sie im Browser anzuzeigen.
    • Im Falle eines Fehlers wird nur die Fehlermeldung im Tooltip des Log-Links angezeigt, nicht der gesamte Code der Callback-Funktion.
    • Anzeige von Parametern als Import-Ressource für Warteschlangenläufe von parametrisierten Dataports.
    • Verschiebung der Buttons „Rohdaten extrahieren“ und „Rohdaten verarbeiten“ in das Dropdown-Menü des Buttons „Komplett-Import/-Export starten“.
    • Schaltfläche „Queue Processor Monitor“ dynamisch ein- und ausblenden.
  • Vorschau-Panel: Bei der Verarbeitung einzelner Rohdaten wird das Scrollen im Log-Fenster verbessert
  • Dataport-Suche: Unterstützung der stichwortbasierten Suche, sodass die Suche nach „Produkte importieren“ auch den Dataport „Produkte aus ERP importieren“ findet.

Leistungsverbesserungen

  • Wenn die Callback-Funktion Objekt/Array zurückgibt, wird nicht das ganze Objekt serialisiert, sondern Importer::getLogOutput() So müssen Objekte mit vielen zusammenhängenden Elementen nicht extra für die Vorschau geladen werden.
  • Werte für Felder vom Typ „Berechneter Wert (Data Query Selector)“ werden zwischengespeichert.
  • Automatische Exporte werden nicht mehr in die Warteschlange eingereiht, wenn die Rohdaten seit dem letzten Lauf nicht geändert wurden. So befinden sich weniger Elemente in der Warteschlange.

Kleinere Änderungen

  • Hinzufügen des Data Query Selectors fields zum Abrufen von Felddefinitionen von Klassen und Objektbausteinen einschließlich aller ihrer Einstellungen.
  • Erkennung von Änderungen bei Feldsammlungen: Wenn die gleichen Feldsammlungselemente nach dem Import vorhanden sind, jedoch lediglich in anderer Reihenfolge vorliegen, wird nicht gespeichert.
  • Unterstützung der Übersetzung von Objektbaustein-/Klassifizierungsspeicher-Feldtiteln über objectbrick:labels#en.
  • OpenAI-Integration: Unterstützung der Ableitung von Werten für den Feldtyp „country multiselect“.
  • DeepL-Übersetzung: Unterstützung der automatischen Verwendung von Glossaren.
  • Anzeige der aktuellen DD-Version im Pimcore Icon Tooltip unten links. Ansonsten gibt es keine Möglichkeit, die installierte Version zu sehen, da das Bundles-Panel aus dem Backend entfernt wurde.
  • Callback-Funktionsvorlage hinzugefügt, um HTML in Markdown zu konvertieren.
  • SQL-Bedingung transpilieren: Für die Quelldatenklasse „Asset“ wird nun der direkte Zugriff auf die Eigenschaften über propertyName='value' unterstützt.
  • Bugfix: Wenn ein Objekt zweimal in derselben Sekunde gespeichert wurde, startete der Queue-Prozessor manchmal nicht den automatischen Dataport, weil die erste Version nicht mit der SQL-Bedingung des Dataports übereinstimmte und die zweite Version nicht geprüft wurde.
  • Unterstützung des Imports von lokalisierten Blockfeldern über die #locale-Syntax, z.B. ['fieldName#de' => 'value'].
  • Unterstützung des Feldtyps „Erweiterte Viele-zu-viele-Beziehung“ als Schlüsselfeld.
  • Gestreamtes XML-Parsing: bessere Toleranz, wenn derselbe Tag in den Daten auf unterschiedlichen Ebenen auftaucht, z.B. <Produkt><verwandte_Produkte><Produkt></Produkt></verwandte_Produkte></Produkt>.
  • Mapping-Panel: Trennung von „other mapped fields“ und „environment variables“ in „available variables“.
  • Attribut-Mapping: Wenn der Feldtyp nicht als Schlüsselfeld unterstützt wird, wird jetzt 1=0 als SQL-Bedingung verwendet und eine Warnung geloggt. Vorher wurde dieses Feld ohne Hinzufügen einer Bedingung übersprungen, sodass viele nicht mit der Bedingung übereinstimmende Datensätze gefunden wurden.
  • Unterstützung von PHP-Code für Berechneter-Wert-Felder.
  • Unterstützung des Imports des Feldtyps „Tabelle“.
  • Unterstützung für das Lesen von UTF-16 XML-Dateien.
  • Unterstützung des Starts des Objektassistenten über eine Schaltfläche und Vorbefüllung der übereinstimmenden Felder mit Daten aus dem aktuellen Objekt.
  • Unterstützung von AWS S3 als Importressource.
  • Verschieben der Dataport-Versionsdateien in das Pimcore-Versionsverzeichnis für einfacheres Hinzufügen von var/bundles/BlackbitDataDirectorBundle zu Git.
  • Leistungsverbesserung für Zip-Exporte.
  • Unterstützung des Imports von Daten in dachcom-digital/seo bundle.
  • Bei der Ausführung von automatischen Dataports nicht die „View“-Berechtigung prüfen, sonst könnte ein inkonstanter Zustand entstehen:
    • Benutzer hat nur Zugriff auf Klasse A
    • Benutzer ändert Objekt der Klasse A
    • automatischer Dataport für Quellklasse B wird für Objekte gestartet, die von dem gerade gespeicherten Produkt der Klasse abhängen

Vorher gab es hier einen Fehler, weil der auslösende Benutzer keine Berechtigung für Klasse B hatte. Nun wird bei einem inkonsistenten Zustand der Dataport ausgeführt.

Jetzt auf Version 3.7 updaten!

Im Blackbit Update Abo können Sie die neue Version über Ihren persönlichen BitBucket-Account einfach direkt herunterladen. Wenn Sie Fragen dazu haben, sprechen Sie uns gerne direkt an.

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 – dort finden Sie auch alle bisher erschienenen Episoden unserer neuen Reihe „Pimcore on Steroids“ mit produktivitätssteigernden Tipps für Ihre täglichen Operationen im Pimcore Backend.

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 Daten zu. Gerne bieten wir Ihnen einen Workshop an, indem wir Ihnen zeigen, wie Sie Ihre individuellen Anforderungen mit dem Data Director lösen.