Found columns with unmapped values bei Verwendung von Mappingsets im Mapper

Flows werden im Status „WARNUNG“ beendet, wenn Sie in einem Mapper ein unvollständiges Mappingset verwenden.

Beispiel:

Found columns with unmapped values. Showing First 10 (Column, Mappingset, unmapped value):
The value ‚3‘ in column ‚countryID‘ could not be mapped using mappingset ‚LänderID-zu-ISO2‘
The value ‚4‘ in column ‚countryID‘ could not be mapped using mappingset ‚LänderID-zu-ISO2‘

Die Warnung bedeutet, dass in der Spalte „countryID“ für die Werte 3 und 4 im Mappingset „LänderID-zu-ISO2“ kein entsprechender Übersetzungswert gepflegt ist.

Die Warnung kommt, wenn folgende Bedingungen zutreffen:

  • Sie verwenden min. einen SpreadsheetMapper Step (in der Regel fast alle Flows)
  • In diesem SpreadsheetMapper nutzen Sie in min. einer Spalte sog. Mappingsets (Übersetzungstabellen, um einen Wert in einen anderen zu übersetzen z.B. shipping1=DHL, shipping2=GLS)
  • In der Spalte, auf die das Mappingset angewendet wird, existiert ein Wert, für welchen im Mappingset noch keine Übersetzung gepflegt ist.

Angenommen Ihr Mappingset sieht wie folgt aus:

1=DE
2=FR

Hier sind die Werte 1 und 2 auf DE und FR „gemappt“. Wenn jetzt aber die Werte 3 oder 4 geliefert werden, dann existiert dafür noch kein Eintrag im Mappingset.

Keine Panik. Diese Warnung ist eine gute Warnung.

Diese Warnung weißt Sie auf ein unvollständiges Mappingset hin. Auch vor der Warnung war das Mappingset bereits unvollständig, aber Sie haben es nicht bemerkt. Durch die Warnung wird sichtbar was vorher unsichtbar war.

Was sollte ich jetzt machen?

Sie sollten die entsprechenden Mappingsets in der Warnung vervollständigen.
In der Warnung sind max. 10 Werte aufgeführt, zu denen im Mappingset kein Eintrag gefunden werden konnte.
Diese Werte sollten Sie sich vornehmen und in das Mappingset eintragen.

Wenn das Mappingset wieder vollständig ist, dann verschindet die Warnung wieder.

Aber die Warnung im Eventlog zeigt nur die ersten 10 fehlenden Mappingset-Einträge?

Falls Sie noch mehr ungemappte Werte vermuten: Der SpreadsheetMapper hat ein zusätzliches Output-Spreadsheet, welches bis zu 2000 dieser ungemappten Werte als Tabelle enthält. Diese Tabelle könnten Sie sich als CSV-Datei rausschreiben und dann im Mappingset per Hand vervollständigen.

Generelles zu Warnungen

Verwechseln Sie den Status WARNUNG nicht mit dem Status FEHLER. Warnung sind im Grunde so wie ERFOLGREICH, aber bei einigen Zeilen kam es zu Problemen. Warnungen sind eher als Hinweis zu verstehen, dass irgendetwas nicht stimmt.

Wenn z.B. bei einem Preisupdate von 100 Zeilen bei 3 Zeilen die Preisspalte leer ist, dann kommt eine Warnung über leere Preisspalten in 3 Zeilen. Die restlichen 97 Preisupdates haben aber geklappt.

Die Meinungen, ob das ein Fehler ist oder nicht gehen natürlich auseinander. Sie sollten den Warnungen in jedem Fall versuchen nachzugehen, und die Ursache beheben.

Warum sehe ich die unmappedValues nicht in der Step-Vorschau?

Dazu etwas technischer Hintergrund:

Man muss eine Sache beachten, wenn man die unmappedValues verarbeiten und ausgeben will:

Der Step, der die unmappedValues „rausschreibt“, muss nach dem Step kommen, der das Haupt-Spreadsheet des Mappers „rausschreibt“. D.h. möglichst weit am Ende z.B. nach einem CSVWriter.

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 nach 10 Zeilen auf (z.B. wie in der Step-Vorschau), 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 FTP-Server 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 sehen, 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…)