Halli Hallo,
ich habe mal ein wenig rumprobiert und bin auf folgenden Workaround gekommen
Sie brauchen für dafür 2 Spreadsheetmapper und eine Counter Variable (in meinem Fall "maxLength").
SpreadsheetMapper1:
Zwischenspalte: ${col0?replace("([\\D]+)([\\d]+)([\\D]*)","$2", "r")}
(Hier wird die eigentlich Nummer aus der Variantennummer rausgezogen. Das funktioniert unter der Annahme, dass links und rechts von der Nummer nur Alphabetische Werte stehen)
Sortieren Sie diesen Spreadsheetmapper absteigend nach der "length" Spalte.
Spreadsheetmapper 2:
lengthDif (errechnet die Differenz aus dem höchsten "length" Wert und dem "length" Wert der momentanen Zeile): <#if meta.maxLength.get() lt length>${meta.maxLength.inc(length?number) - length?number}<#else>${meta.maxLength.get() - length?number}</#if>
appendedNum (konkateniert den numerischen Teil der VarNr um die lengthDif um den Character '0'): ${Zwischenspalte}<#list 0..<result['lengthDif']?number as i>0</#list>
VariantennummerMod (fügt das ganze wieder Zusammen): ${Variantennummer?replace("([\\D]+)([\\d]+)([\\D]*)","$1${result['appendedNum']}$3", "r")}
Am Ende noch nach VariantennummerMod absteigend sortieren.
Ich hoffe ich konnte helfen.
Viele Grüße
Stefan Helme