TradebyteAddProducts scheitert an Feldern über 255 Zeichen

Hallo zusammen,

habe grade ein Problem eine P_COMPONENT mit mehr als 255 Zeichen anzulegen. Dort läuft euer Code zur XML-Transformation auf Fehler.
Im Step selbst kriege ich eine sehr allgemeine Warnung:

Wenn man dann aber in der XML selbst schaut, findet man dort den folgenden Fehler.

Script error: Map-Key is limited to 255 characters.: <#if result['isProduct']! == "true" && P_COMPONENTDATA!?trim != ''><#if !P_COMPONENTDATA!?trim?matches('^".*"$')><#--checkt ob der String mit " anfängt und auf " endet--><#assign props = parseField(P_COMPONENTDATA!, "MAP", "TEXT", ";", "=").asMap()><P_COMPONENTDATA><#list props as k, v ><P_COMPONENT identifier="key" key="${k?trim?lower_case?replace('ö','oe')?replace('ä','ae')?replace('ü','ue')?replace('ß','ss')?replace('[^\w]','_','r')}" name="${k?trim?replace('&','_')?replace('"','')}"><VALUE xml:lang="x-default"><![CDATA[${v!?trim}]]></VALUE></P_COMPONENT></#list></P_COMPONENTDATA><#else><#assign props = parseField(P_COMPONENTDATA!, 'MAP', 'TEXT', '";', '=').asMap()><P_COMPONENTDATA><#list props as k, v ><P_COMPONENT identifier="key" key="${k?trim?lower_case?replace('"','')?replace('ö','oe')?replace('ä','ae')?replace('ü','ue')?replace('ß','ss')?replace('[^\w]','_','r')}" name="${k?trim?replace('&','_')?replace('"','')}"><VALUE xml:lang="x-default"><![CDATA[${v!?trim?remove_ending('"')?remove_beginning('"')}]]></VALUE></P_COMPONENT></#list></P_COMPONENTDATA></#if></#if>

Könnt ihr euch das mal anschauen?

Gruß
Gustav

Hallo @gustavfriedeheim,

danke für den Hinweis. Aber kommt das hin, dass dein Key, also das was vor dem = in dem Schlüssel=Wert Paar vorkommt länger als 255 Zeichen ist?
Denn normalerweise dient der Key zur Identifizierung und 255 sind schon ungewöhnlich lang. Im Wertfeld sollte es kein Problem sein, wenn es mehr als 255 Zeichen sind aber weniger als 300, denn das ist das Limit von TB.

Viele Grüße
Lukas

Hallo Lukas,

nun weiß ich, wo das Problem liegt. Das neue Feld ist eine Produktkomponente, welche die Artikelbeschreibung enthält. Dort sind Semikolons in der Beschreibung.
Ein Limit seitens Tradebyte hatte ich auch schon erwartet, aber dachte ich versuch’s einfach mal.

Gibt es eine Möglichkeit, die Semikolons zu escapen? Das die nicht mehr als Seperator der einzelne Key-Value-Paare interpretiert werden?

Gruß
Gustav

Hallo @gustavfriedeheim,

versuch mal den Key und Value in "" zu setzen. Also:

"Key=Value";"Key=Value"

Viele Grüße
Lukas