Allgemein
Für eine Datentransformation in brandbox benötigen Sie einen ETL basierenden Prozess. ETL steht dabei für Extract, Transform, Load (Lesen, Transformieren, Schreiben). Im folgenden wird beschrieben, welche Aufgaben die jeweiligen Prozessteile übernehmen. Siehe auch: Struktur eines Transformationsprofils
Technische Grundlage für den Transformationsprozess ist https://github.com/wizacode/php-etl (Dokumentation)
Extractor
Extractors sind der Einstiegspunkt eines jeden Prozesses. Um einen Prozess zu starten, müssen Sie einen Extractor einrichten und können dadurch eine Datenquelle (Doctrine oder CSV) lesen.
Quellen
Quellen repräsentieren die zu lesende Datenstruktur. Dabei wird die Datenstruktur in brandbox in der Form konfiguriert, die tatsächlich existiert. Man so also einen zu lesenden Datenbaum erstellen und linearisieren. Beispiel:
Artikelgruppe '-> Artikel '-> Preis
... wird beispielhaft zu
Name der Artikelgruppe | Artikelname | Preis Dekoartikel | Kunstblume | 2,0 € Dekoartikel | Spiegel | 18,0 €
Transformer
Transformer manipulieren nacheinander Daten aus der zuvor im Extraktor definierten Datenquelle. Sie können im selben Prozess Loadern mehrfach verwendet werden.
Feldmapping
Mit dem Feldmapping werden die Daten aus der Quelle in Variablen überführt und anschließend an die Platzhalter-Logik übergeben. Dort findet dann die Transformation statt.
Aus obigem Beispiel wäre folgende Konfiguration möglich:
$1 = Name der Artikelgruppe $2 = Artikelname $3 = Preis
{{ output=$1 }} → {{ output=$2 }} ({{ number=$3 style="currency" decimals=2}}) ...
Lesen Sie mehr (Platzhalter).
Preis-Bezeichnung
Beim Ziel-Datenbankfeld gibt man an, wo der Wert gespeichert werden soll. In diesem Beispeil, die Bezeichnung des Preises.
Loader
Loader sind die Datenausgänge des ETL-Prozesses. Sie können im selben Prozess mehrfach verwendet werden. Im Loader wählen Sie ein Importprofil und steuern dadurch ob Daten angelegt und/oder überschrieben werden sollen. Sie wählen außerdem die Ziel-Datentabelle.