NumException

Zurzeit arbeite ich daran vorhandene Mengen mit geforderten Mengen abzugleichen, um unsere Bestellungen anzupassen.

Um das zu ermöglichen habe ich erstmal alle unsere Warenbestände bzw die Werte
mit ${stock!?trim!?number} in einen nummerischen Wert umgewandelt.
Wenn ich mit "isNumber()" teste, gibt mir die Konsole ein true aus.

Nun zu dem Problem. Ich habe einen kleinen Script geschrieben:


<#assign av_qty = result['netStockInWarehouse']> ### vorhandener Stock


<#list PoQTYMap! as values>
<#if values?trim != "">
<#assign req_qty?number = values?split("=")[1]> ###gebrauchter Stock
${values?split("=")[0]}=


#### ab hier fängt der Fehler an ####


<#if (ava_qty <= 0)>0

<#elseif (req_qty?number >= ava_qty?number)>

${ava_qty!}</#if>
</#if>
</#list>



Ich habe die Datei vollständig angehangen. Sind echt nur wenige Zeilen, aber die NummerischeException kommt obwohl ich die Werte schon umgewandelt habe. Ich verstehe es nicht. Im Anhang ist der vollständige Code, der vorher funktioniert hat bzw in einem anderen Flow funktioniert :)

Interessant wäre, was in PoQTYMap und netStockInWarehouse beispielsweise drin steht und wie genau die Fehlermeldung lautet. Dort stehen meist auch Zeilennummern drin.


Wir haben mal ein Beispiel nachgebaut, welches funktioniert.

Wenn man aber die erste Spalte netStockInWarehouse leer macht, kommt dort auch ein Fehler.


Frage: Kann es sein, dass result['netStockInWarehouse'] leer ist (und somit av_qty)?


Aber wie gesagt: wir haben nur ins blaue geraten, was die Daten sein könnten. Mit echten Daten könnte man besser helfen.



Sehr komisch, aber heute morgen hat es einfach funktioniert.
NetStockInWarehouse ist immer mit einer Zahl befüllt und gibt deshalb keine Probleme.

Ich habe jedoch noch eine Frage:
Und zwar habe ich als Resultat die Mengen bestimmen können die wir absenden, aber weil die Mengen auf zwei Lager geteilt sind muss ich zwei Datastores erstellen, um das festgelegte Schema (PlentyRESTOrderItemPayloadProvider) nicht zu verletzen, wo man nämlich nur eine Quantity angeben darf und auch nur ein Warehouse.

Meine Idee ist die Mengen zu splitten und quasi zwei Bestellungen hinzuzufügen: Einmal mit der MainWarehouseID und dann noch mit SecondaryWarehouseID.
Ein Problem gibt es jedoch beim zurückführen der richtigen Bestände, denn ich musste die Bestellten Mengen pro VariantenID gruppieren und habe folglich weniger Zeilen.
Um den Flow abschließen zu können müsste ich jedoch die Ergebnisse aus der Gruppierung wieder in mehrere Rows zurückführen, also Rows hinzufügen (mit den bearbeiteten Bestandszahlen).
Ich habe in der Freemarker Doku leider keine Einträge für solche Anwendungsfälle gefunden.


Wisst ihr vielleicht, ob das möglich ist?

Einfach gesagt muss ich Werte gruppieren, die Gruppierten Werte bearbeiten und dann die Ergebnisse wieder zu den ungruppierten Werten zuteilen (in einer neuen Spalte)