Inaktiv E-Mail-Vorlagen: Eigene Felder aus dem Kunden in den Optionen nutzen

chmod

Gut bekanntes Mitglied
19. März 2012
120
8
Hi T4DT.GmbH,

ich habe das jetzt in mehreren Konstellationen getestet und konnte bisher keine Fehlfunktion feststellen. Nun ist es egal an welcher Stelle der Kontakt in der Kundenmaske beim Ansprechpartner steht und ob es zwei oder mehrere Namen dort gibt. Funktioniert soweit ich das beurteilen kann tadellos. Ich bin mir ganz sicher dass diese fertige Lösung vielen anderen JTL-Kunden weiterhelfen wird denn dass man Rechnungen nicht an eine andere, genau bestimmbare Mailadresse versenden kann, ist ein riesengroßes Problem bei uns im täglichen Ablauf und nur händisch mit Zusatzaufwand zu korrigieren. Jetzt muss nur die stable der V1.4 ganz bald offiziell erscheinen dass das auch in einer Produktivumgebung genutzt werden kann.
Super, vielen Dank für diese Lösung und nochmal Danke an alle anderen, die sich mit meiner Frage auseinandergesetzt haben.

LG
chmod
 

cash0581

Aktives Mitglied
22. September 2016
40
5
Die Schleife hat ein paar kleine Probleme: Ist kein Ansprechpartner hinterlegt, bleibt das Feld leer. Gibt es in der Buchhaltung mehrere Ansprechpartner, werden alle Mail-Adressen hintereinander ausgegeben, somit bekommt keiner die Mail (weil ungültige Adresse). Das löst du in dem du in der Schleife immer dasselbe Feld überschreibst und am Ende, falls es immernoch leer ist, mit dem Kundendatensatz befüllst. Ganz am Ende gibst du dir den Wert aus. In etwa so:
Code:
{% assign mail ='' -%}
{% for jtlAnsprechpartner in Vorgang.Kunde.Ansprechpartner -%}
    {% if jtlAnsprechpartner.Abteilung == 'Buchhaltung' and jtlAnsprechpartner.EMail != empty -%}
        {% assign mail = jtlAnsprechpartner.EMail %}
    {% endif %}
{% endfor -%}
{% if mail == empty -%}
    {% assign mail = Vorgang.Kunde.EMail -%}
{%endif-%}
{{ mail }}


Guten Abend,

ich bin gerade dabei unsere Vorlagen und Mail-Templates auf die neuen Berichtsvorlagen 2.0 umzustellen. Soweit hat auch alles funktioniert. Allerdings scheitere ich jetzt an der Anpassung des o.g bzw nachfolgenden Codes. Kann mir jemand sagen, wie ich nun auf die Ansprechpartner zugreifen kann bzw. wie die neuen englischen Bezeichnungen dazu heißen? Vielen Dank.

{% assign mail ='' -%}
{% for jtlAnsprechpartner in Vorgang.Kunde.Ansprechpartner -%}
{% if jtlAnsprechpartner.Abteilung == 'Buchhaltung' and jtlAnsprechpartner.EMail != empty -%}
{% assign mail = jtlAnsprechpartner.EMail %}
{% endif %}
{% endfor -%}
{% if mail == empty -%}
{% assign mail = Vorgang.Kunde.EMail -%}
{%endif-%}
{{ mail }}
 

Mechanikass

Aktives Mitglied
23. Januar 2019
5
0
Gibt es hier schon Neuigkeiten bezüglich des Zugriff auf die eigenen Feldern in den Kundenstammdaten?

Die Lösung mit den Ansprechpartnern ist bei uns nicht möglich, da diese unser CRM zumüllen.

Grüße
 

Mechanikass

Aktives Mitglied
23. Januar 2019
5
0
Hallo zusammen,

habe folgende Lösung gefunden:

{% capture query %}
SELECT kAttribut from dbo.tAttributSprache WHERE cName = 'Rechnungsmail'
{% endcapture -%}
{% assign result = query | DirectQueryScalar %}
{{ result }}

um die interne Nummer für kAttribut zu bekommen

und dann

{% capture itemquery %}
SELECT cWertVarchar FROM Kunde.tKundeEigenesFeld WHERE kAttribut = 257 AND kKunde = {{ Vorgang.Kunde.InterneKundennummer | SqlEscape }}{% endcapture -%}
{% assign result = itemquery | DirectQueryScalar -%}
{{ result }}

Beste Grüße
 

T4DT.GmbH

Offizieller Servicepartner
SPBanner
6. November 2018
331
165
Hannover
Dann bitte gleich so:
Code:
{% capture itemquery %}
SELECT cWertVarchar FROM [Kunde].[tKundeEigenesFeld]
JOIN dbo.tAttributSprache ON [tKundeEigenesFeld].kAttribut = dbo.tAttributSprache.kAttribut
WHERE tAttributSprache.kSprache = 0 
AND [tKundeEigenesFeld].kKunde = {{ Vorgang.Kunde.InterneKundennummer | SqlEscape }}
AND tAttributSprache.cName = 'Rechnungsmail'
{% endcapture -%}
{% assign result = itemquery | DirectQueryScalar -%}
{{ result }}
Das sind nur halb so viele Datenbank-Zugriffe. Kleiner Tipp ansonsten: Immer wenn eine Tabelle ...Sprache heißt, sollte man unbedingt immer auch auf das Feld kSprache prüfen, da ansonsten unter Felder mehrfach auftreten können. Für eigene Felder (auch bei Artikel etc.) ist kSprache = 0, für Attribute ist für Deutsch kSprache = 1.