Motorex
  • Pimcore User Dokumentation
    • 1. Einleitung Pimcore
    • 2. Erste Schritte Pimcore
    • 3. Pimcore Support
    • 4. Pimcore CMS
    • 5. Pimcore DAM
    • 6. Pimcore PIM
      • Navigation: Aufbau der Baumstruktur
      • Was sind Datenobjekte?
      • Erklärung aller Datenobjekte
        • Datenobjekt "Category"
          • Line Zuweisung Spectro Produkte auf MUSA
          • Eine neue Category (Line) erstellen
        • Datenobjekt "DamShareCollection"
        • Datenobjekt "Fair"
        • Datenobjekt "FAQ" + "FAQCategory"
        • Datenobjekt "GoodToKnow"
        • Datenobjekt "Notification"
        • Datenobjekt "ProductExportContainer"
        • Datenobjekt "ProductFilterDefinition"
        • Datenobjekt "RaceCategory"
        • Datenobjekt "RacePilot" + "RaceTeam"
        • Datenobjekt "Topic"
        • Datenobjekt "JobOffer" -
        • Datenobjekt "Outputchannel"
        • Datenobjekt "PublicationArticle"
        • Datenobjekt „PublicationType“
        • Datenobjekt „Printcontainer“
        • Datenobjekt "Product"
          • Technisches Datenblatt (TI) / Produktinformationsblatt (PI)
        • Datenobjekt "ProductAttribute"
  • Troubleshooting für Business Units
    • 1. Webshop / Webseite
      • Login
      • Anzeige im Webshop
      • Preise & Verfügbarkeit
      • Fehlermeldungen (Error)
    • 2. Pimcore
      • E-Mail
      • Login
      • Fehlermeldungen (Error)
    • 3. SAP
      • Stammdaten
      • Marketingattribute
      • Geschäftspartnerrollen
      • Vertriebsbereiche
      • Offerte / Angebot
    • 4. itmX
      • Geschäftspartnerrollen
      • Marketingattribute
        • Markenzuordnung
        • Brand Board
        • Marken
        • Kampagnenattribute
        • Kommunikationsmassnahmen Firmen
        • Mitbewerber
        • Fluid Management
        • Zugehörigkeit
        • Potential Firmen
        • Betriebsbesichtigung
        • Arbeitsinstrumente Firmen
      • Kampagnen und Teilnehmerlisten
Powered by GitBook
On this page
  • Was ist Pimcore?
  • Einsatz Pimcore bei der MOTOREX-BUCHER GROUP AG
  • Datenintegration und API-First-Ansatz:
  • Systemarchitektur
  • Datenfluss und Integration
  • Indexer
  • Projektorganisation
  1. Pimcore User Dokumentation

1. Einleitung Pimcore

PreviousPimcore User DokumentationNext2. Erste Schritte Pimcore

Last updated 4 months ago

Was ist Pimcore?

Pimcore ist eine Open-Source-Plattform für Product Information Management (PIM) und mehr. Ursprünglich entwickelt als PIM-System, hat es sich zu einer umfassenderen Plattform für das digitale Asset Management (DAM), Customer Experience Management (CMS/UX), und eCommerce weiterentwickelt.

Product Information Management (PIM):

Pimcore ermöglicht es Unternehmen, Produktinformationen zentral zu verwalten, zu pflegen und zu synchronisieren. Dies ist besonders nützlich für Unternehmen mit umfangreichen Produktkatalogen.

Content Management System (CMS):

Pimcore bietet Funktionen für das Erstellen und Verwalten von Inhalten für Webseiten, einschließlich Templates, Workflow-Management und mehrsprachige Unterstützung.

Digital Asset Management (DAM):

Es bietet umfangreiche Funktionen für die Verwaltung von digitalen Assets wie Bilder, Videos, Dokumente usw. Diese können zentral organisiert, bearbeitet und für verschiedene Zwecke bereitgestellt werden.

eCommerce Integration (eCom):

Durch die Integration von Pimcore mit eCommerce-Plattformen können Unternehmen nahtlose Einkaufserlebnisse über verschiedene Kanäle hinweg bieten.

Einsatz Pimcore bei der MOTOREX-BUCHER GROUP AG

Die MOTOREX-BUCHER GROUP AG setzt Pimcore ein um die folgenden Webseiten und deren Inhalte zu verwalten:

  1. https://motorex.com/

  2. https://york-lubricants.com/

  3. https://www.spectro-oils.com/

  4. https://media.motorex.com/

  5. https://intranet.motorex.com/

Datenintegration und API-First-Ansatz:

Pimcore unterstützt die Integration mit anderen Systemen und Diensten über eine API, was die nahtlose Verbindung mit bestehenden IT-Infrastrukturen ermöglicht.

Systemarchitektur

Die Architektur umfasst eine bidirektionale Integration zwischen SAP ERP und Pimcore, die über eine REST-API realisiert wird. Dies ermöglicht einen nahtlosen Datenaustausch und die Synchronisation von Informationen zwischen den beiden Systemen.

Hauptkomponenten der Architektur

  • SAP ERP Modul: Enthält verschiedene Module wie MM (Material Management), SD (Sales and Distribution), PP (Production Planning), und FI/CO (Finance and Controlling).

  • Pimcore: Besteht aus PIM, DAM, CMS und MDM, die für das Management und die Bereitstellung konsistenter Daten und Inhalte verantwortlich sind.

Datenfluss und Integration

Datenreplikation Pimcore:

Daten aus SAP (z.B. Produktstammdaten, Bestandsdaten, Preisdaten) werden regelmäßig in Pimcore importiert. Der Datentransfer erfolgt zunächst durch einen Initial Load und wird anschließend über einen Event-Mechanismus mit RFC-Aufrufen und Funktionsbausteinen aktualisiert. Änderungen an den SAP-Datenobjekten werden erkannt, in eine Synchronisationstabelle geschrieben, und Pimcore liest diese Tabelle regelmäßig (alle 5 Minuten) aus. Bei erkannten Änderungen liest Pimcore die aktualisierten Daten aus SAP. Die Architektur ist so gestaltet, dass nur ein Minimum an Schnittstellen zwischen Pimcore und SAP erforderlich ist.

Folgende Business Objekte werden aus dem SAP System zu Pimcore repliziert

  • Produkte (Dokumentinfosätze im ERP), Objekt: PRODUCT

  • Artikel (Materialstamm im ERP), Objekt: ARTICLE

  • Rezepturen (Materialstamm im ERP), Objekt: RECIPE

  • Auftraggeber, Warenempfänger (Geschäftspartner im CRM), Objekt: BPARTNER

  • Ansprechpartner (Geschäftspartner im CRM), Objekt: BPARTNER

  • Händler (Geschäftspartner im CRM), Objekt: BPARTNER

  • Distributor (Geschäftspartner im CRM), Objekt: BPARTNER

  • Klassen (Klassifizierung im ERP), Objekt: CLASS

  • Merkmale (Klassifizierung im ERP), Objekt: CHARACTERISTIC

Datenreplikation zu Pimcore manuell anstossen

Für die initiale Datenübertragung wird im SAP das Programm ZPC_INITIAL_LOAD über die Transaktion ZPC_SYNCH_OBJ ausgeführt. Dabei wählt man anhand des Business Objekttyps passende Selektionskriterien, um die zu synchronisierenden Objekte einzuschränken. Mit der Option "abhängige Objekte selektieren" können auch verknüpfte Objekte, wie z.B. Rezepte eines Produkts, mit synchronisiert werden. Wenn die Verarbeitung erfolgreich ist und neue Synchronisationseinträge erstellt wurden, werden diese nach Abschluss als Liste angezeigt. Pimcore startet danach automatisch den Synchronisationsprozess.

Synch Einträge anzeigen

Durch setzen eines "x" unter "Synch Einträge anzeigen" kann der Synch-Status eines Objekts überprüft werden.

Synch-Status
Beschrieb

U (Änderung offen)

Status der gleich nach Anstossen des Synch-Eintrags gesetzt wird. Das Objekt wird in die Warteschlange gesetzt. Dieser Status sollte innert kürzester Zeit auf Status P wechseln.

P (Sync-Prozess läuft)

Der Synchronisations-Prozess läuft.

S (Synchronisiert)

Die Daten wurden erfolgreich zu Pimcore repliziert

  • Bleibt der Synch-Status auf U hängen liegt in der Regel ein Problem bei SAP vor

  • Bleibt der Status auf P hängen liegt in der Regel ein Problem bei Pimcore vor

-> In beiden Fällen soll das Webshop Team kontaktiert werden.

Datenanreicherung in Pimcore:

In Pimcore werden die importierten Daten weiter angereichert und verwaltet. Pimcore ermöglicht die Anreicherung von Produktinformationen, Verwaltung von digitalen Assets (Bilder, Videos, Dokumente), und die zentrale Steuerung von Marketing- und Vertriebskanälen.

Datenexport aus Pimcore:

Angereicherte und validierte Daten können aus Pimcore zurück in SAP exportiert werden oder in andere Systeme und Kanäle (wie eCommerce-Plattformen, Print-Kataloge, Mobile Apps) übertragen werden.


Indexer

Der Indexierungsprozess wird verwendet, um Daten in OpenSearch zu aktualisieren und sicherzustellen, dass die neuesten Informationen in Pimcore und somit auch im Frontend verfügbar sind. Dabei werden Daten regelmässig verarbeitet und aktualisiert. Es gibt ein paar Regeln und Zeitpläne, die beachtet werden müssen.

Regelmässige Updates - Funktionsweise:

Zur vollen Stunde wird ein neuer Indexierungsprozess initiiert. Die Entscheidung, ob und welche Indizes aktualisiert werden, hängt von folgenden drei Faktoren ab:

  1. Timeout: Wenn ein Index aktualisiert wird, wird dieser gesperrt („gelocked“). Das Lock bleibt auf den Umgebungen QA und P für zwei Stunden aktiv, auf D/Demo dauert es länger. Nach Abschluss der Indexbearbeitung wird das Lock entfernt, was verhindert, dass der Prozess mehrmals gestartet wird. Der Status des Locks kann im "Report Indexer Status" in der Spalte „Timeout“ eingesehen werden, die den Ablauf des Locks anzeigt und somit den Startzeitpunkt des Prozesses erkennen lässt. Die Dauer des Locks ist im Code festgelegt und kann von Valantic angepasst werden. Im Falle eines katastrophalen Fehlers wird das Lock nicht entfernt; es sollte dann Valantic informiert werden. Ein entsprechender Report sieht wie folgt aus:

    • Name: Product

    • Messages: 0

    • Errors: 0

    • Timeout: ausgefüllt

    • Cooldown: entweder ausgefüllt oder nicht (vermutlich nicht)

    Dies kann auch geschehen, wenn es keine Objekte für einen Index gibt, z.B. bei Intranet-Indizes. Das Lock läuft in jedem Fall nach der angegebenen Zeit ab.

  2. Cooldown: Nachdem ein Index fertiggestellt wurde, wird das Timeout Lock entfernt und ein Cooldown Lock erstellt, welches auf P+QA eine Stunde und auf D/Demo zwei Stunden dauert. Ein Cooldown Lock hat denselben Effekt wie das Timeout Lock; während des Cooldowns wird kein neuer Durchlauf für diesen spezifischen Index gestartet, jedoch wird der Lock nicht programmatisch entfernt, sondern es wird immer das Ablaufen des Timeouts abgewartet.

  3. Nicht verarbeitete Nachrichten: Wenn Nachrichten in der Queue sind, die noch nicht verarbeitet wurden, wird der Prozess nicht gestartet, und beim nächsten Durchlauf wird ein erneuter Versuch unternommen.

Parallelisierung:

Die Indizes werden durch mehrere Symfony-Messenger-Consumer aktualisiert, die aus einer gemeinsamen Queue Nachrichten abarbeiten. Obwohl vier Consumer gleichzeitig eingesetzt werden können, bedeutet das nicht, dass sie simultan an vier verschiedenen Indizes arbeiten. Stattdessen holen sich die Consumer die nächstverfügbare Nachricht aus der Queue und bearbeiten somit bis zu vier Dokumente gleichzeitig, die aber zum selben Index gehören können.

Diese Konfiguration ermöglicht eine effiziente Verarbeitung von Dokumenten in der Weise, dass mehrere Dokumente parallel bearbeitet werden, während die Indexaktualisierung selbst sequenziell erfolgt. Dadurch wird gewährleistet, dass die Ressourcen optimal genutzt werden, indem die Consumer gleichzeitig Aktionen ausführen können, ohne auf die Fertigstellung von Aufgaben eines anderen Consumers zu warten.

Dauer des Indexierungsprozesses:

Bedeutung der Gesamtdauer des Indexierungsprozesses im Kontext der Queue-Verarbeitung:

Bei dieser Implementierung wird für den vollständigen Aufbau der Indizes eine Queue verwendet, wobei jede Stunde für jedes Dokument eine Nachricht generiert und in die Queue eingefügt wird. Die verfügbaren Consumer verarbeiten diese Nachrichten aus der Queue. Sobald alle Dokumente eines Indexes abgearbeitet wurden, erfolgt ein 'Blue/Green'-Switch, um den aktualisierten Index live zu schalten.

Die Gesamtdauer des Indexierungsprozesses ist zwar weiterhin von Bedeutung, jedoch ist die Priorität auf die kontinuierliche Verarbeitung der einzelnen Nachrichten und die Vollständigkeit jedes Indexes vor dem Umschalten gelegt. Die Dauer des gesamten Prozesses hängt folglich weniger vom Zeitpunkt des Beginns und der Beendigung ab, sondern vielmehr von der kontinuierlichen und effizienten Abarbeitung der Nachrichten in der Queue. Dies führt zu einer gleichmäßigeren Lastverteilung im System und einer stetigen Aktualisierung der Indizes, was die Sichtbarkeit der Gesamtdauer relativiert.

Die Konzentration auf die Verarbeitungsgeschwindigkeit und -qualität jeder einzelnen Nachricht innerhalb der Queue stellt sicher, dass Indizes effizient und zuverlässig aktualisiert werden, ohne dass ein einzelner, zeitlich umfangreicher Indexierungsprozess notwendig ist.

Benchmarks auf dem Q System haben eine Gesamtdauer von ca. 25 Minuten gezeigt!

Fehlerbehandlung:

Falls während des Aufbaus des Index ein Fehler in einem Dokument auftritt, wird der gesamte Prozess für diesen Index gesperrt. Der Fehler wird im Report angezeigt und geloggt, und es werden keine weiteren Dokumente generiert oder ein Wechsel durchgeführt. Nach einer Stunde wird ein erneuter Versuch gestartet. Derzeit werden noch keine Benachrichtigungen ausgelöst. Motorex hat momentan keine Möglichkeit, die Ursache des Fehlers zu analysieren, was sich jedoch in Zukunft ändern könnte. Valantic kann den Fehler in der Datenbank (Tabelle: messenger_messages; queue_name: elastica_bridge_failed) analysieren.

Report "Indexer Status"

  1. Name: Index Name

  2. Messages Remaining: Nachrichten welche noch verarbeitet werden müssen um den aktuellen Prozess abzuschliessen

  3. Errors: Fehler die aufgetreten sind. Dieser Count wird nur von valantic zurückgesetzt.

  4. Timeout: Wenn der Prozess aktiv ist, wird hier angezeigt wie lange es dauert, bis theoretisch ein neuer Prozess gestartet werden kann, ohne dass der aktuelle abgeschlossen ist. (Es müssen dann trotzdem alle Nachrichten abgearbeitet worden sein)

  5. Cooldown: Frühester Zeitpunkt wenn der nächste Prozess startet

Weiterführende Informationen:

Symfony Messenger Developer Documentation: https://symfony.com/doc/current/messenger.html

Symfony Messenger Component: https://symfony.com/doc/current/components/messenger.html


Projektorganisation

Das Projekt "E-Com" umfasst den Aufbau und die Weiterentwicklung des Webshops bzw. Pimcore. Das Projektteam besteht aus Mitarbeitenden der MOTOREX sowie dem externen Dienstleister Valantic.

Weitere Informationen zum Projekt können bei den Projektverantwortlichen eingeholt werden. Zusätzlich stehen folgende Links den berechtigten Mitarbeitenden zur Verfügung:

Beschrieb
Link

Netzwerkordner Projekt E-Com

P:\Projekte\E-Commerce Plattform

Systemdokumentation E-Com

P:\Projekte\E-Commerce Plattform\10_Dokumentationen\00_Systemdokumentationen

REST API Dokumentation E-Com

P:\Projekte\S4HANA\00_S4-HANA (Motorex)\02_Arbeitsdokumente\TP010 E-Shop Integration


Der Report Indexer Status gibt auskunft über den Status des wiederkehrenden Prozesses
Vor der S/4HANA Conversion präsentierte sich das Framework gemäss nachfolgender Darstellung.