Gelöst DotLiquid Befehle in Workflow - Anhang einer E-Mail

Faruq

Aktives Mitglied
6. November 2017
51
8
Mannheim
Hallo an alle
ich bin gerade dabei, einen Workflow zu basteln, der immer wenn eine entsprechende Charge im Auftrag vorkommt, die Materialzertifikate zu dieser Charge abruft und als Mail rausschickt.

Nun arbeite ich mit Bedingungen im Anhang des Workflows. Meine einzige Frage ist, ob ich das Ergebnis der for-Schleife so noch nachträglich bearbeiten kann im DotLiquid - der Workflow führt nämlich zu folgendem Problem: Da die Dateipfade immer ein Semikolon hintendrin haben und der letzte Dateipfad folglich mit einem Semikolon endet, kommt es zu einer Fehlermeldung. Ich würde also gerne das Ergebnis der for Schleife einmal um dieses letzte Semikolon bereinigen. Zusätzlich würde ich gerne Dopplungen vermeiden, also wenn mehrere Artikel eine Charge haben, dass das Zertifikat nur einmal versendet wird.

Kann mir da jemand von euch weiterhelfen? Hier einmal mein bisheriger Code..

{% for Artikelbeschreibungen in Vorgang.Auftrag.Positionen -%}
{% capture query -%}
SELECT TOP 1 ISNULL(tWarenLagerEingang.cChargenNr, '') FROM vStandardArtikel AS tartikel
LEFT JOIN tWarenLagerEingang ON tartikel.kArtikel = tWarenLagerEingang.kArtikel
LEFT JOIN tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
LEFT JOIN vLagerBestandProLager ON tartikel.kArtikel = vLagerBestandProLager.kArtikel
AND tWarenLagerPlatz.kWarenLager = vLagerBestandProLager.kWarenLager
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE tWarenLagerEingang.kWarenLagerPlatz = 1 AND tArtikel.cArtNr LIKE '%FX%' AND vLagerBestandProLager.fBestand > 0 AND cAktiv = 'Y' AND nIstVater != 1 AND tArtikel.kArtikel = {{ Artikelbeschreibungen.InterneArtikelnummer }}
GROUP BY ISNULL(tWarenLagerEingang.cChargenNr, '')
HAVING ISNULL(SUM(ISNULL(tWarenLagerEingang.fAnzahlAktuell, 0.0)), 0.0) > 0
ORDER BY ISNULL(tWarenLagerEingang.cChargenNr, '') DESC
{% endcapture -%}
{% assign Charge = query | DirectQueryScalar %}{% if Charge == '20190005.3' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190005.3_DE_EN.pdf;{% elseif Charge == '20190005.4' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190005.4_DE_EN.pdf;{% elseif Charge == '20190261.3' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190261.3_DE_EN.pdf;{% elseif Charge == '20190261.4' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190261.4_DE_EN.pdf;{% elseif Charge == '20190261.5' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190261.5_DE_EN.pdf;{% elseif Charge == '20190261.7' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190261.7_DE_EN.pdf;{% elseif Charge == '20190261.8' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190261.8_DE_EN.pdf;{% elseif Charge == '20190261.9' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190261.9_DE_EN.pdf;{% elseif Charge == '20190261.10' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190261.10_DE_EN.pdf;{% elseif Charge == '20190261.11' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190261.11_DE_EN.pdf;{% elseif Charge == '20190261.12' -%}C:\Users\Useradmin\Desktop\Chargen-Zertifikate\20190261.12_DE_EN.pdf{% endif -%}{% endfor -%}

Vielen Dank im Voraus.

Liebe Grüße,

Faruq Nanouche
 

kelvin.

Sehr aktives Mitglied
15. Februar 2023
166
65
Frankfurt
Versuch mal die Query mit der Tabelle Auftragpositionen und in WHERE die ChargenNR zu erweitern.
Mit DISTINCT bekommst du alle Doppelungen raus.
Nutze DirectQuery, statt DirectQueryScalar. Dann kannst du eine Schleife über deine Ausgabe machen und weißt dann genau, wie viele ChargenNr du in den Auftrag hast und so dann die genaue Anzahl an Semikolons gesetzt werden.
 

Faruq

Aktives Mitglied
6. November 2017
51
8
Mannheim
Hi!
Danke dir für deine Antwort. Hab zwischenzeitlich mit einem Servicepartner was erarbeitet, hatte meine Abfrage dann noch verfeinert und das etwas justiert mit ihm.

Haben es ein bisschen anders gelöst, aber danke für deinen Input, vielleicht hilft der ja auch noch anderen!

Liebe Grüße,

Faruq
 

Ähnliche Themen