Gelöst Fehler: Die Länge der Beschreibung überschreitet die zulässige Länge. DAS KANN NICHT SEIN

gnarx

Sehr aktives Mitglied
18. Januar 2018
2.487
231
Folgendes bekomme ich wenn ich versuche einen Artikel abzugleichen: "Die Länge der Beschreibung überschreitet die zulässige Länge."
Wir werten hier die Stücklistenartikel aus und schreiben unter Lieferumfang die Menge und die Titel der Einzelnen Stücklisten Artikel rein.

Wenn ich das ohne den neuen Code mache habe ich um die 18.000 Zeichen. Mit dem Code kommen so um die 500 dazu. Also kann die 50.000 Zeichen Begrenzung nicht greifen. In der JTL Deignvorlage wird alles korrekt angezeigt, das öffnen der Vorschau dauert halt länger. Ich hoffe sehr das mir hier jemand helfen kann.

Code:
        {% if Vorgang.Artikel.Sonstiges.IstStückliste == "true" %}
            <h6><img src="gfx/Liefer_icon.png">{{ GlobaleTexte.JTL-Übersetzungen.Lieferumfang.Deutsch }}<span class="grey"> / {{ GlobaleTexte.JTL-Übersetzungen.Lieferumfang.Englisch }}</span></h6>
                <p>{% capture SLIST %}
                SELECT kStueckliste, fAnzahl, cName FROM tStueckliste, tArtikelBeschreibung
                WHERE tStueckliste.kArtikel = tArtikelBeschreibung.kArtikel
                AND kPlattform = 1
                {% endcapture %}
                {% assign SLISTDaten = SLIST | DirectQuery %}
                {% for item in SLISTDaten.Daten %}
                {% if Vorgang.Artikel.Sonstiges.InterneStuecklistennummer == item.kStueckliste %}
                {{ item.fAnzahl | FormatNumber: 'N0','de-DE' }} x {{ item.cName }}<br>
                {% endif %}
                {% endfor %}</p>
            {% else Vorgang.Artikel.Attribute.Computerstore_Berlin.CSB.Lieferumfang.Deutsch != "" %}
               <h6><img src="gfx/Liefer_icon.png">{{ GlobaleTexte.JTL-Übersetzungen.Lieferumfang.Deutsch }}<span class="grey"> / {{ GlobaleTexte.JTL-Übersetzungen.Lieferumfang.Englisch }}</span></h6>
               <p>{{ Vorgang.Artikel.Attribute.Global.CSB.Lieferumfang.Deutsch }}
               {% if Vorgang.Artikel.Attribute.Global.CSB.Lieferumfang.Englisch != "" %}
                    <span class="grey"><br>{{ Vorgang.Artikel.Attribute.Global.CSB.Lieferumfang.Englisch }}</span>
               {% endif %}</p>
        {% endif %}
 

Rico Giesler

Offizieller Servicepartner
SPBanner
10. Mai 2017
13.202
1.379
Es geht dabei darum was an eBay übertragen wird. Dort kommt nur ein vollständiger HTML-Code an. Die Formel die du hier angibst wird als weit mehr Zeichen erzeugen.
Geh mal auf Marktplätze-> Designvorlagen und dort dann auf deine Vorlage.
Unten dann auf "Angebotsvorlage für Vorschau wählen".
Diese wird dann erstellt/angezeigt.
Nun oben auf den Reiter "Bearbeiten" und dort dann unten auf "Vorschau (Text)".
Kopiere dir den Inhalt raus und prüfe bspw in Notepad++ wie viele Zeichen das wirklich sind.
 

gnarx

Sehr aktives Mitglied
18. Januar 2018
2.487
231
Ah da geht das. Also du hast recht der haut mir in dem Bereich Seitenweise Leerzeichen rein. Konnte ich vorher nicht sehen, in der Vorschau ist ja alles wie es sein soll.

Hmmh nun ist die Frage warum macht der das?

Es geht ja um diese Anweisung:
Code:
{% capture SLIST %}
                SELECT kStueckliste, fAnzahl, cName FROM tStueckliste, tArtikelBeschreibung
                WHERE tStueckliste.kArtikel = tArtikelBeschreibung.kArtikel
                AND kPlattform = 1
                {% endcapture %}
                {% assign SLISTDaten = SLIST | DirectQuery %}
                {% for item in SLISTDaten.Daten %}
                {% if Vorgang.Artikel.Sonstiges.InterneStuecklistennummer == item.kStueckliste %}
                {{ item.fAnzahl | FormatNumber: 'N0','de-DE' }} x {{ item.cName }}<br>
                {% endif %}
                {% endfor %}
 
Zuletzt bearbeitet:

gnarx

Sehr aktives Mitglied
18. Januar 2018
2.487
231
Hmmh danke schon mal aber das ist es nicht. Wenn ich das Replace anwende kommen in der Liste Seitenweise Artikel.
Laut Vorschau ohne Replace schreibt der mir alles richtig rein ins Template.

Auch das habe ich geprüft:
{% if Vorgang.Artikel.Sonstiges.InterneStuecklistennummer == item.kStueckliste %}

Erscheint beides mal die gleiche Nummer, scheint nee interne ID zu sein.
 

Xantiva

Sehr aktives Mitglied
28. August 2016
1.374
201
Düsseldorf
Hast Du mal versucht den Code umzustellen, so dass nach dem for.. und vor dem ..endfor keine Zeichen sind?
Code:
{% for item in SLISTDaten.Daten %}{% if Vorgang.Artikel.Sonstiges.InterneStuecklistennummer == item.kStueckliste %}
                {{ item.fAnzahl | FormatNumber: 'N0','de-DE' }} x {{ item.cName }}<br>
                {% endif %}{% endfor %}
 

gnarx

Sehr aktives Mitglied
18. Januar 2018
2.487
231
Ja das habe ich versucht. Auch der Versuch mit replace zeigt mir nun im Template Seitenweise Artikel an.
Wäre glaube ich gut für Leute die Stücklisten verkaufen wenn da nee Aufzählung der Stücklistenartikel rein kommen könnte.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
4.507
695
Berlin
Ich behaupte ja auch das deine SQL Abfrage fürn popo ist :)

In der Artikel db ist eine spalte für die stücklisten id,
dafür gibt es auch eine Tabelle, die die Beziehung zwischen der stückliste und den einzelnen zugehörigen Artikeln herstellt.

Du brauchst also einen ganz anderen query um die echten Artikel zu bekommen.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
4.507
695
Berlin
Hast Du mal versucht den Code umzustellen, so dass nach dem for.. und vor dem ..endfor keine Zeichen sind?
Code:
{% for item in SLISTDaten.Daten %}{% if Vorgang.Artikel.Sonstiges.InterneStuecklistennummer == item.kStueckliste %}
                {{ item.fAnzahl | FormatNumber: 'N0','de-DE' }} x {{ item.cName }}<br>
                {% endif %}{% endfor %}
Das hier waren dann mal locker mehrere tausend Artikel die ausgelesen wurden, danach kam dann die If schleife die schaute ob der Artikel die gleiche Stücklisten ID hatte, und diese If Abfrage erzeugte dann jeweils mindestens zwei Umbrüche und nen paar Leerzeichen in der Schleife :)