Gelöst Warum erzeugt Dot Liquid bei der Ausgabe in einer case-Auswahl leere Zeilen?

JohnFrea

Sehr aktives Mitglied
21. September 2017
720
214
Hallo,

ich möchte per Dotliquid eine CSV Datei ausgeben und habe immer leere Zeilen, die so stören.

Ich benötige einen Codeblock, in dem ich eine Variable belege aber anscheinend werden durch den Block gleich leere Zeilen mit in die Datei geschrieben.
Wie verhindere ich das? Gib es eine Möglichkeit in dotliquid für einen Code-Block, in dem keine Ausgabe erfolgt?

Mein Code:

Code:
{% when 'DPD Paket' %}
{% assign aftership_courier = 'dpd-de' %}
{% when 'GLS Paket (JTL Shipping)' or 'GLS Paket' %}
{% assign aftership_courier = 'gls' %}
{% when 'DHL Paket Deutschland' %}
{% assign aftership_courier = 'dhl-germany' %}
{% when 'Einschreiben' %}
{% assign aftership_courier = 'deutsch-post' %}
{% else %}
{% assign aftership_courier = 'no_export' %}
{% endcase %}
 

ThorstenW

Aktives Mitglied
16. März 2017
7
3
Jede Codezeile erzeugt ein CRLF.

Um das zu verhindern kannst du entweder am Zeilenende ein Backslash setzen:
{% when 'DPD Paket' %}\
{% assign aftership_courier = 'dpd-de' %}\
...

oder ein Minus vor dem Prozent setzen:
{% when 'DPD Paket' -%}
{% assign aftership_courier = 'dpd-de' -%}
...
 
  • Gefällt mir
Reaktionen: Gual61

JohnFrea

Sehr aktives Mitglied
21. September 2017
720
214
DANKE, Thorsten.

Leider finden sich solche basic infos nicht in der Doku...zumindest habe ich sie nicht gefunden!
 

ThorstenW

Aktives Mitglied
16. März 2017
7
3
Das stimmt leider.
Ich schau mir immer wieder mal die Standard Vorlagen unter Druck- u. Emailvorlagen an, zb. Auftrag / Mailen.
Dort sind in den Emailvorlagen ein paar gute Codezeilen drin zum verstehen wie Dotliquid arbeitet.
 

Björn Ponsen

Moderator
Mitarbeiter
1. Juli 2016
961
84
Ich würde das Beispielsweise so lösen:

{% if Vorgang.Lieferung.Versandart.Name == 'Hermes S'%}\
{% assign aftership_courier = 'dpd-de' %}\
{% elsif Vorgang.Lieferung.Versandart.Name == 'GLS Paket (JTL Shipping)'%}\
{% assign aftership_courier = 'gls' %}\
{% else %}\
{% assign aftership_courier = 'DHL Paket Deutschland' %} \
{% endif %}\
{{aftership_courier}}
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.694
1.610
Berlin
ich würde alles in ein capture machen und am ende nur den wert ausgeben

Code:
{% capture blub %}\
{% if Vorgang.Lieferung.Versandart.Name == 'Hermes S'%}
{% assign aftership_courier = 'dpd-de' %}
{% elsif Vorgang.Lieferung.Versandart.Name == 'GLS Paket (JTL Shipping)'%}
{% assign aftership_courier = 'gls' %}
{% else %}
{% assign aftership_courier = 'DHL Paket Deutschland' %}
{% endif %}
{% endcapture %}\
{{ aftership_courier }}

dann können dir bei dieser Abfrage alle Returns innerhalb dieses Blocks egal sein, denn du brauchst ja am Ende nur den Variablenwert.