Mappingset - Probleme mit mehreren identischen Wörtern

Tag,


ich habe ein Problem mit dem Mappingset, und zwar geht es darum wenn mehrere Wörter in einer Zeile stehen, diese aber wiederum auch teilweise in anderen Mapping Zeilen vorkommen, als Beispiel:


Green=Grün

Bright Green=Knallgrün

Blue=Blau

Dark Blue=Dunkelblau


Das ist mein Mappingset, jetzt mappt er aber aus z.B.:
Bright Green -> Bright Grün, obwohl ja Bright Green als Mapping vorhanden ist, oder aus Dark Blue -> Dark Blau, obwohl auch dieses als Mapping komplett vorkommt. Gibt es da eine Lösung, das er mir das korrekt Mappt, oder wie geht man da vor?


Gruß


Michael

Hallo Michael,

kannst du mal einen Screenshot deiner Mappingset Konfiguration im Mapper zeigen? Dort ist der Mapping-Modus entscheidend. Es scheint, als hast du den auf "Suchen & Ersetzen" gestellt, was in deinem Fall falsch wäre.

Du müsstest auf einen der anderen Modus stellen, die nicht mit "Suchen & Ersetzen" beginnen.


hmm, hab ich alle durch Problem bleibt bestehen, er soll ja die Werte ersetzen. Was müsste ich den einstellen? Habe es auch mit RegEx probiert, ^Dark Blue$=Dunkelblau sollte dann ja eigentlich genau nach dieser Zeichenkette suchen, ignoriert er aber auch :-)



achso, das Mappingset ist natürlich größer, knapp 140 Zeilen, also diese habe ich nur als Beispiel angegeben um es zu verdeutlichen

Also folgendes ist wichtig:

- der Key muss eindeutig sein (also das im Mappingset vor dem = (Gleichheitszeichen) steht). Ansonsten gewinnt vermutlich das letzte.


Beispiele


korrekt:

Green=Grün

blue=blau


falsch:

Green=Grün

blue=blau

white=weiss

Green=gruen


Im letzten Fall kommt 2 mal der Key "Green" vor. Vermutlich gewinnt der letzte Eintrag, d.h. in der Ausgabe steht (gruen mit ue).


Kannst du im Zweifel mal deinen Anwendungsfall beschreiben, was du erreichen möchtest?

Kannst du zusätzlich auch mal noch ein paar zu mappende Eingabewerte zeigen und mal dein erwartetes Ergebnis?


Vielleicht verstehen wir ja etwas falsch - wie so oft ;)



Hier auch noch mal der Link zur Doku für die Mapping-Modus:

Wenn ihr wollt könnt ihr ja mal ins Backend schauen, Projekt LGO, Flow ist Parts2Plenty einen Zugang müsstet ihr noch vom letzten Problem haben :-)


denke das ist einfacher, als hier das gesamte Mapping reinzuschreiben, wäre natürlich doof wenn es so wäre das das letzte gewinnt. Würde es denn mit Suchen & Ersetzen gehen? Im Zweifelsfall müsste ich da halt 145 Bedingungen basteln, geht das überhaupt?

Ja Support-User war noch vorhanden. Wir haben jetzt mal dein Mappingset komplett in unseren Testaccount übernommen und mal mit den Beispielen von dir oben getestet.

Unserer Meinung nach funktioniert es korrekt und so wie du es willst.



Sieht deine Mapping-Konfiguration genau so aus?





ja, sieht genauso aus, kannst mal reinschauen und dir die Vorschau aus den Daten ziehen, dann sieht man das es teilweise korrekt übernommen wird, teilweise aber bei mehreren nicht wie oben beschrieben. Es funktioniert ja nur nicht wenn im Mappingset mehrere mit dem Wört z.B. Green vorkommen, am besten mal ausprobieren in meinem Account, dann sieht man was gemeint ist. Bei Originalwerte ausgeben, werden ja die englischen und nicht die gemappten ausgegeben, zumindest bei mir

Originalwerte ausgeben bedeutet, dass er den Wert aus deinem Spreadsheet nimmt, wenn er im Mappingset keinen passenden Eintrag findet. Oft sind auch Leerzeichen im Wert deines Spreadsheets eine Ursache.


Dein Flow ist noch gesperrt :)


Ok, jetzt haben wir reingeschaut. Bitte schick doch beim nächsten Mal auch einen Screenshot, da wäre das sehr schnell aufgefallen :) Screenshots kannst du einfach rein-copy-pasten...das geht mit Chrome mittlerweile gut.

Folgendes:


Du prefixt deinen Wert noch mit (Lego Farben).

Dadurch findet er natürlich keinen passenden Eintrag im Mappingset.



Lösungsvorschlag:

Arbeite mit einer Hilfsspalte z.B. tempVariationAttributes: dort schreibst du ins Wertfeld nur : ${color_name!}

und wendest das Mappingset an


Dann machst du rechts daneben die Spalte VariationAttributes und verwendest im Wert-Feld die "Ergebnisspalte" tempVariationAttributes:

(Lego Farben)${result['tempVariationAttributes']!}


Fazit:

Mappingsets sind eine exakte Angelegenheit. Die können nicht irgendwelche Teilstrings ersetzen, sondern nur volle Werte.


Ausnahme: Suchen & Ersetzen. Da kommt es drauf an, in welcher Reihenfolge du das Mappingset aufgebaut hast. In deinem Mappingset steht ganz oben "Green=grün" einzeln. D.h. zuerst wird im Wert das Wort "Green" ersetzt. Deshalb wird aus Bright Green auch Bright grün).













ah, ok. Stolperstein gefunden, super! Das mit dem prefixen wusste ich nicht.


Danke, habt ihr wieder was für euer Cookbook :-)

ok, schön dass es jetzt klappt.

Was genau meinst du? mit "prefix wusste ich nicht"? Der Prefix kam ja von dir.

Kannst du noch mal grob beschreiben, was du im Cookbook erwartet hättest? Welcher Hinweis sollte da stehen, der dir geholfen hätte?

Weil, wie Mappingsets funktionieren steht ja hier.




Hallo Michael,


wir haben mal etwas an der Beschreibung der Mappingsets optimiert und sind auch auf das Thema Prefix bzw. exakter Wert eingegangen.

http://docs.synesty.com/display/SSUD/Spreadsheets#Spreadsheets-Mappingset


Kommt das jetzt besser rüber?


Perfekt! Immer vom DAU ausgehen (bin ich gerne behilflich :-) )