Gelöst [1.5.55] [Liquid] Fehler beim Hinzufügen von Number zu Array ("System.Double" kann nicht in den Typ "System.String" konvertiert werden)

Dennis030

Aktives Mitglied
9. Februar 2022
46
15
Ich möchte gerade einen Workflow erstellen, der alle Auftragspostionen darauf überprüft, ob sie jeweils klein genug für Warenpost ist. Wenn keines der Pakete zu groß ist, soll TRUE ausgegeben werden. Ein Problem ist, dass (auch bei unseren FFN-Kunden) die Maße nicht nach der Größe geordnet sind. D.h. mal ist Breite der größte Wert, mal Länge, mal Höhe. Deshalb möchte ich sie sortieren.

Markdown (GitHub flavored):
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.Positionen -%}
{% assign Artikel = Artikelbeschreibungen.Artikel %}
{% assign Höhe = Artikel.Höhe | Plus: 0 %}
{% assign Breite = Artikel.Breite | Plus: 0 %}
{% assign Länge = Artikel.Länge | Plus: 0 %}
#{% assign Maße = Höhe | Append: "," | Append: Breite | Append: "," | Append: Länge %}
{{ Maße }}
{% assign Maße = Maße | Split: "," %}
{% assign Maße = Maße | Sort %}
{% assign Höhe = Maße[0] | Plus: 0 %}
##{% assign Breite = Maße[1] | Plus: 0 %}
###{% assign Länge = Maße[2] | Plus: 0 %}
{% if Höhe > 35.1 or Breite > 24 or Länge > 4.9 %}
{% assign ZuGross = true %}
{% endif %}
{% endfor %}
{% if ZuGross == true %}
TRUE
{% else %}
FALSE
{% endif %}

führt zu folgender Ausgabe:

Markdown (GitHub flavored):
#Liquid error: Das Objekt mit dem Typ "System.Double" kann nicht in den Typ "System.String" konvertiert werden.
Liquid error: Das Objekt mit dem Typ "System.Collections.Generic.List`1[System.Object]" kann nicht in den Typ "System.String" konvertiert werden.
##
###Liquid error: Der Index lag außerhalb des Bereichs. Er darf nicht negativ und kleiner als die Sammlung sein.
Parametername: index
####Liquid error: Der Index lag außerhalb des Bereichs. Er darf nicht negativ und kleiner als die Sammlung sein.
Parametername: index
TRUE

JTL will die Breite nicht der Variable "Maße" zu einem Array anfügen, da sie eine Zahl ist.
Die weiteren Fehler sind logisch, das Array ist an diesen Indizes leer.

Dies ist ein Bug, nehme ich an? Gibt es einen Weg, das zu umgehen und das Array anders zu erstellen?




PS: Für Sort und Reverse gibt es kein Markdown:


PPS: Während ich das schreibe, fällt mir auf, dass ich die Sortierung auch selbst, mit festen Variablen, schreiben könnte. Dies behebt aber nicht das grundsätzliche Problem.
 

Anhänge

  • Screenshot 2023-01-25 091646.png
    Screenshot 2023-01-25 091646.png
    39,7 KB · Aufrufe: 7

Dennis030

Aktives Mitglied
9. Februar 2022
46
15
Markdown (GitHub flavored):
{% assign Maße[0] = Höhe | Plus: 0 %}
{% assign Maße[1] = Breite | Plus: 0 %}
{% assign Maße[2] = Artikel.Länge | Plus: 0 %}


funktioniert leider auch nicht.
 

Dennis030

Aktives Mitglied
9. Februar 2022
46
15
Gelöst per Concat.

Code:
{% comment %}Prüft jede Artikelposition auf ihre Maße, sortiert sie (Höhe immer höchster Wert, dann Breite, Länge kleinster Wert). Gibt TRUE aus, wenn keine Position die Maximalwerte übersteigt{% endcomment %}
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.Positionen -%}
{% assign Artikel = Artikelbeschreibungen.Artikel %}
{% assign Höhe = Artikel.Höhe | Plus: 0 %}
{% assign Breite = Artikel.Breite | Plus: 0 %}
{% assign Länge = Artikel.Länge | Plus: 0 %}
{% assign Maße = Höhe | Concat: Länge | Concat: Breite  %}
{% assign Maße = Maße | Sort %}
{% assign Höhe = Maße[2] | Plus: 0 %}
{% assign Breite = Maße[1] | Plus: 0 %}
{% assign Länge = Maße[0] | Plus: 0 %}
{% if Höhe > 35.1 or Breite > 24 or Länge > 4.9 %}
{% assign ZuGross = true %}
{% endif %}
{% endfor %}
{% if ZuGross == true %}
FALSE
{% else %}
TRUE
{% endif %}

Gekürzt:
Code:
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.Positionen -%}
{% assign Artikel = Artikelbeschreibungen.Artikel %}
{% assign Maße = Artikel.Höhe | Concat: Artikel.Breite | Concat: Artikel.Länge | Sort  %}
{% if Maße[2] > 35.1 or Maße[1] > 24 or Maße[0] > 4.9 %}
{% assign ZuGross = true %}
{% endif %}
{% endfor %}
{% if ZuGross == true %}
FALSE
{% else %}
TRUE
{% endif %}
 

Ähnliche Themen