Mapping Set alle fehlende Werte anziegen

Hallo zusammen,

wir nutzen das Mapping Sets um Farben auf eine Hauptfarbe zu mappen. Bsp. himmelblau = Blau.


Funktioniert sowei auch super! Nur wenn wir eine Tabelle mit vielen Zeilen haben, kann es sein, dass mehrere Werte im Mappingset noch nicht hinterlegt wurden. Daher kommt wie gewünscht eine Warnung im Flow, die bsp so aussieht:


WARNING
Step: Output-Flow - Magento_CSV > SpreadsheetMapper - Magento Simple Products: WARNING:Found unmapped values:
'amerikarot' in column 'color' not found in COLORSYNONYME Mappingset,
'zinkgelb' in column 'color' not found in COLORSYNONYME Mappingset,

Das Problem ist, dass wir in der Warning max. 2 Werte aufgezeigt bekommen, die nicht gemapped werden können.

Wir würden aber gerne sämtliche Werte in der Warning erfahren, damit wir unser Mappingset erweitern können.


Wie bekomme ich diese Information? Aktuell müssen wir die zwei Werte ergänzen, erneut durchlaufen lassen, die nächsten 2 Werte ergänzen etc.


Danke im Voraus!

Lg

Christian


Aus dem SpreadsheetMapper kommt ein weiteres Spreadsheet namens "unmappedValues" raus, welches die ungemappten Werte enthält.

Hallo Synesty Team,

etwas spät mit der Antwort, aber es ist jetzt erst wieder aufgefallen, dass es scheinbar nicht funktioniert.


Ich habe zwar das unmappedValues gefunden, dass als Fogleschritt aus dem Spreadsheetmapper kommt, jedoch ist dieses IMMER leer.

Ich habe bereits versucht beim Mapping Modus unterschiedliche Einstellungen vorzunehmen (Original Werte ausgeben, Nicht gemappte Werte Präfixen etc.) doch leider bleibt das unmappedValues Sheet IMMER leer.


Bitte um Hilfe!

Danke im Voraus!


Ok, das werden wir in der Doku etwas verbessern.

Und zwar muss man eine Sache beachten: Den Step, der die unmappedValues "rausschreibt", muss nach dem Step kommen, der das Haupt-Spreadsheet des Mappers "rausschreibt". D.h. möglichst weit am Ende.


Zum (technischen) Hintergrund.

Alles was aus dem Mapper kommt ist aus Performance-Gründen "lazy". Das bedeutet, dass es erst beginnt zu existieren, wenn das Spreadsheet auch "konsumiert" wurde. Mit anderen Worten, erst wenn z.B. ein CSVWriter versucht alle Zeilen des Spreadsheets zu schreiben (also "konsumiert"), fängt der Mapper auch erst an zu arbeiten - und zwar zeilenweise. Hört man z.B. wie in der Step-Vorschau nach 10 Zeilen auf, dann werden Zeilen 11-xx nicht "konsumiert".


Für die unmappedValues bedeutet das, dass diese erst existieren, sobald einmal an einer Zeile "vorbei gekommen" wurde, in der es einen unmappedValue gab.

Für die Step-Vorschau bedeutet das, dass es dort vermutlich leer angezeigt wird, sollte in den 10 Vorschauzeilen kein unmappedValue dabei sein. D.h. so richtig sinnvoll wird es erst zur echten Ausführung eines Flows. Daher sollte man sich die unmappedValues am besten irgendwo am Ende in eine CSV-Datei weg schreiben, und auf einen FTPServer laden (oder in einen Datastore schreiben).






Das Eventlog beinhaltet dann auch eine Ausgabe, die aber auf wenige Zeilen reduziert ist und sozusagen nur dazu dient, zu sehen, ob es ungemappte Werte gibt. Will man es noch genauer wissen, dann muss man sich das unmappedValues Spreadsheet weg schreiben.



Hinweis: Im Screenshot des Eventlog steht ein "-" (Bindestrich) statt der Name des Mappingsets. Das liegt daran, dass im Test ein Inline-Mappingset, direkt im Mapper genommen wurde und kein Mappingset, welches unter Data Management gepflegt wird.



Zusammenfassung:

Um die unmappedValues zu bekommen, braucht man:


1. einen Mapper, der ein Mappingset verwendet (und wo es auch evtl. ungemappte Werte gibt)

2. einen schreibenden Step der das "spreadsheet" des Mappers komplett durchläuft (z.B. CSVWriter, SpreadsheetDatastoreWriter etc..... irgendetwas, was ein Spreadsheet wohin schreibt)

3. einen weiteren schreibenden Step (wie bei 2.) der das "unmappedValues" schreibt

4. und einen Step, der Step 3. irgendwo wegsichert (z.B. FTPUpload, EmailSend...)



Hey! Sorry für die sehr späte Antwort, aber es ist jetzt aufgefallen, dass der Fehler niemals vollständig behoben wurde.


Ich habe es zwar geschafft nun die unmapped values per Excel zu exportieren, leider sind es jedoch niemals alle Einträge. Es handelt sich dabei immer nur um die Einträge, die auch in der Vorschau / im Log angezeigt werden.

Ich habe im folgenden Beispiel die Daten mehrfach durchlaufen lassen und die unapped values immer ergänzt, danach kamen jedoch wiede neue unmapped values etc.

Hier ein paar Screenshots zum Log, der Excel und meinen Steps.



image


image

image


Ein Entwickler schaut sich das nochmal an. Danke für die Screenshots und Details. Das ist sehr hilfreich.










Wir haben noch ein Problem gefunden. Ein Fix ist in Arbeit. Wir sagen hier Bescheid, sobald das live ist.

Es sollten jetzt wesentlich mehr Zeilen in den unmappedValues erscheinen. Pro Spalte kommen jetzt bis zu 1000 ungemappte Werte.