Neu DotLiquid Ausgabe von mehreren Positionen?

  • "Hermes B2C" wird zum 29.02.2020 abgeschaltet und durch das neue "Hermes-Shipping-Interface" (HSI) ersetzt.
    Wer noch "Hermes B2C" nutzt sollte rechtzeitig umsteigen
    Weiterführende Infos gibt es hier: Infos zur Schnittstelle

WebworkerX

Aktives Mitglied
20. Oktober 2016
60
4
Hallo,
ich habe eine Datei geschrieben für die Versendung von Aufträgen an unseren Lieferanten.
Wenn ich das Script im Workflows ausführen lasse dann schreibt er nur für den ersten Artikel in der Rechnung.
Was muss ich machen damit er auch die restlichen Artikel aus der Rechnung anzeigt?
Vielleicht eine Schleife?, habe es zumindest so versucht mit dem Ergebnis das er den ersten Artikel 4 mal anzeigt und auch nicht untereinander sondern fortlaufend.
Hier mein Script:
{% for item in Vorgang.Rechnungsnummer %}
POA{{ Vorgang.Auftrag.Positionen.ErstesObjekt.InternePositionsnummer | FormatNumber: 'N0'| AlignLeft: 10 }} {{ Vorgang.Auftrag.Positionen.ErstesObjekt.Artikelnummer | AlignLeft: 15 }}{{ Vorgang.Auftrag.Positionen.ErstesObjekt.Menge | Times: 100 | FormatNumber: 'N0'| AlignLeft: 11 }}{{ Vorgang.Auftrag.Positionen.ErstesObjekt.Bezeichnung | AlignLeft: 40 }}{{ Vorgang.Auftrag.Positionen.ErstesObjekt.ArtikelbeschreibungKurz | AlignLeft: 40 }}{{ Vorgang.Auftrag.Positionen.ErstesObjekt.NettopreisEinzel | FormatNumber: 'N2'| AlignLeft: 11 }}2{{ Vorgang.Auftrag.Positionen.ErstesObjekt.NettopreisEinzel | Times: Vorgang.Auftrag.Positionen.ErstesObjekt.Menge | FormatNumber: 'N2'| AlignLeft: 11 }}
{% endfor %}
END

Kann mir da jemand einen Tip geben?
Vielen Dank im Voraus.
 
  • Gefällt mir
Reaktionen: Charly B.

Maekaey

Sehr aktives Mitglied
11. November 2016
239
44
Ohne das selbst schon einmal gemacht zu haben...
Deine Variablen beziehen sich ja immer auf "ErstesObjekt", daher wird er vermutlich auch immer nur den ersten Artikel nehmen und mit einer Schleife den Artikel nur wiederholen.
Wie macht das denn der Berichtscontainer in den Standardvorlagen? Vielleicht kannst du das als Beispiel ansehen.
Hoffe diese Gedanken sind nicht völlig daneben, vielleicht bringts dich ja weiter.
 

WebworkerX

Aktives Mitglied
20. Oktober 2016
60
4
Habe jetzt die Lösung selber gefunden.
Script:
{% for position in Vorgang.Auftrag.Positionen %}POA{{ position.InternePositionsnummer | FormatNumber: 'N0'| AlignLeft: 10 }} {{ position.Artikelnummer | AlignLeft: 15 }}{{ position.Menge | Times: 100 | FormatNumber: 'N0'| AlignLeft: 11 }}{{ position.Bezeichnung | AlignLeft: 40 }}{{ position.ArtikelbeschreibungKurz | AlignLeft: 40 }}{{ position.NettopreisEinzel | FormatNumber: 'N2'| AlignLeft: 11 }}2{{ position.NettopreisEinzel | Times: Vorgang.Auftrag.Positionen.ErstesObjekt.Menge | FormatNumber: 'N2'| AlignLeft: 11 }}{% endfor %}
END

Nur ein Problem besteht noch, das er die Positionen immer weiter schreibt. Habe versucht mit "\n" innerhalb der Schleife einen Zeilenumbruch zu erzwingen aber ohne Ergebnis.
Hat jemand da einen Tip wie in der Schleife ein Zeilenumbruch gemacht werden kann? Gibt es da ein spezielles Kommandowort so Ähnlich wie NewLine oder so? o_O
 

Charly B.

Aktives Mitglied
9. August 2017
72
1
Berlin
Hallo, ich habe ein ähnliches Problem. Das mit dem return vor {* endfor *} hat soweit geklappt das die Position 2 und 3 nun darunter sind aber leider noch in der falschen Spalte. Nämlich ist Artikelnummer und Menge nun in Spalte A und B.
Wie kann man die in die richtige Spalte schicken? Danke