Neu Workflow mit DotLiquid Variable

Bernd_Hofi

Aktives Mitglied
13. Mai 2017
91
22
Hallo, liebe Gemeinde

Ich brauche Hilfe mit einem Workflow.

Ausgangslage:

Wenn Auftrag erstellt wird und er den Artikel xy enthält, soll ein Zusatzartikel hinzugefügt werden.

jetzt gehts um die Menge der Zusatzposition und hier würde ich gerne die Menge errechnen lassen.

Die Anzahl soll bestimmt werden aus der Menge der Bestellpositionen, bei denen im Artikelstamm ein Hacken in einer Checkbox in den Eigenen Feldern gesetzt wurde.

Warum? Wir haben für einen Kunden Flyer eingelagert. Wenn der Kunde jetzt bei uns Bestellt, kann er seine eigenen Flyer mitbestellen. Für jeden Unterschiedlichen Flyer verlangen wir eine Pickpauschale. Und Sinnvollerweise steht nacher auf der Rechnung:

Artikel 1. 2x
Artikel 2. 3x
Artikel 3. 2x
Flyer 1. 10x
Flyer 2 2x
Pickpauschale 2x

Jetzt das Problem:

wie muss die Dotliquid Abfrage lauten, damit der gesetzte Wert für den Hacken erkannt und im Loop durch den Auftrag zusammengezählt wird?

Ich hab absoluten Kopfsalat🤯
 

Bernd_Hofi

Aktives Mitglied
13. Mai 2017
91
22
Ok, scheint schwierig zu sein. Dann die Frage an JTL. Könnt Ihr mir sagen, wie das Datenbankfeld heist für die Eigenen Felder? Dann mach ichs über eine Datenbankabfrage
 

hula1499

Sehr aktives Mitglied
22. Juni 2011
5.154
1.073
Artikelattribute findest in tAttribut (die angelegten) dann bei tArtikelAttribut die jeweiligen Zuordnungen (kAttribut)
 

Bernd_Hofi

Aktives Mitglied
13. Mai 2017
91
22
Danke.

Ich schreib mal die Abfrage und poste sie dann gerne. Das thema gabs ja schon öfter. Zusatzartikel nur unter bestimmten Kriterien.

Und nicht böse sein, aber ich seh es nicht ein, den Kollegen für solche Erweiterungen dafür Geld zu geben, wenn`s JTL kann.
 

T4DT.GmbH

Offizieller Servicepartner
SPBanner
6. November 2018
318
129
Hannover
SQL:
SELECT tas.cName, taas.nWertInt FROM dbo.tArtikelAttributSprache taas
JOIN dbo.tArtikelAttribut taa ON taa.kArtikelAttribut = taas.kArtikelAttribut
JOIN dbo.tAttributSprache tas ON tas.kAttribut = taa.kAttribut AND tas.cName = 'Pickpauschale'
WHERE taas.kSprache = 0 AND tas.kSprache = 0  AND taas.nWertInt =1 
AND taa.kArtikel    = 12345

Müsste entsprechend eingepasst werden
 
  • Gefällt mir
Reaktionen: Bernd_Hofi

Bernd_Hofi

Aktives Mitglied
13. Mai 2017
91
22
SQL:
SELECT tas.cName, taas.nWertInt FROM dbo.tArtikelAttributSprache taas
JOIN dbo.tArtikelAttribut taa ON taa.kArtikelAttribut = taas.kArtikelAttribut
JOIN dbo.tAttributSprache tas ON tas.kAttribut = taa.kAttribut AND tas.cName = 'Pickpauschale'
WHERE taas.kSprache = 0 AND tas.kSprache = 0  AND taas.nWertInt =1
AND taa.kArtikel    = 12345

Müsste entsprechend eingepasst werden
Hi.
Wow. Da warst du um einiges schneller wie ich. Ich hab grad noch Tabellen gesucht🤫
 

T4DT.GmbH

Offizieller Servicepartner
SPBanner
6. November 2018
318
129
Hannover
Hi.
Wow. Da warst du um einiges schneller wie ich. Ich hab grad noch Tabellen gesucht🤫
Sorry. Konnte mir das nicht verkneifen, nach dem einem Kommentar mit dem bezahlen :D
Das machen vernünftige Servicepartner in weniger als 240 Sekunden. Würde meinen Kunden hier (240 Sekunden / 3600 Sekunden/Stunde * 90 €/Stunde) = 6 € kosten :D Wieviel ist dir deine Zeit wert? :p
 
  • Gefällt mir
Reaktionen: Bernd_Hofi

Bernd_Hofi

Aktives Mitglied
13. Mai 2017
91
22
Gute Arbeit, darf gute Arbeit kosten. Aber für eine SQL-Profi DARF so eine Anfrage keine Kunst sein. Siehe T4DT.GMBH

Das schätze ich so an diesem Forum. Danke Vielmals.
 
  • Gefällt mir
Reaktionen: T4DT.GmbH

T4DT.GmbH

Offizieller Servicepartner
SPBanner
6. November 2018
318
129
Hannover
Die Abfrage müsste an den jeweiligen Zweck natürlich angepasst werden. Das ist nur die Datengrundlage. Möchtest du das als Bedingung, würde ich SELECT COUNT(*) .. machen und dann gucken, ob Wert größer 0 ist, als Workflowbedingung
 

Bernd_Hofi

Aktives Mitglied
13. Mai 2017
91
22
Nicht als Bedingung. Als Ergebniss. Die Abfrage ist relativ simpel in Worte gefasst.

Wieviele Artikel in diesem Auftrag haben in dem Eigenen Feld„Test“ einen Hacken.

Thats it.

mit Worten einfach. Für leihen im Code unmöglich.
 

T4DT.GmbH

Offizieller Servicepartner
SPBanner
6. November 2018
318
129
Hannover
SQL:
SELECT COUNT(*) FROM dbo.tArtikelAttributSprache taas
JOIN dbo.tArtikelAttribut taa ON taa.kArtikelAttribut = taas.kArtikelAttribut
JOIN dbo.tAttributSprache tas ON tas.kAttribut = taa.kAttribut AND tas.cName = 'Test'
JOIN dbo.tbestellpos bp ON bp.tArtikel_kArtikel = taa.kArtikel
WHERE taas.kSprache = 0 AND tas.kSprache = 0 AND taas.nWertInt =1
AND bp.tBestellung_kBestellung = {{interne BestellNr}}
 

Bernd_Hofi

Aktives Mitglied
13. Mai 2017
91
22
Kurzes Update:

Hab den Code jetzt mal in DotLiquid versucht zu Übersetzten.
Sieht jetzt so aus:

{% capture query -%}
SELECT COUNT(*) FROM dbo.tArtikelAttributSprache taas
JOIN dbo.tArtikelAttribut taa ON taa.kArtikelAttribut = taas.kArtikelAttribut
JOIN dbo.tAttributSprache tas ON tas.kAttribut = taa.kAttribut AND tas.cName = 'Test'
JOIN dbo.tbestellpos bp ON bp.tArtikel_kArtikel = taa.kArtikel
WHERE taas.kSprache = 0 AND tas.kSprache = 0 AND taas.nWertInt =1
AND bp.tBestellung_kBestellung = '{{interne BestellNr}}'
{% endcapture -%}
{% assign result = query | DirectQueryScalar %}\
{{ result }}


Der Wert, der nun zurückgegeben wird ist 0. Erwarteter Wert wären 2 gewesen.

Was ist falsch?

Wahrscheinlich die Übersetzung nach DotLiquid.

Schande über mir.:rolleyes:
 

T4DT.GmbH

Offizieller Servicepartner
SPBanner
6. November 2018
318
129
Hannover
Wenn du es als erweiterte Eigenschaft in den Workflows zu einem Auftrag anlegen willst:
Code:
{% capture query -%}
SELECT COUNT(*) FROM dbo.tArtikelAttributSprache taas
JOIN dbo.tArtikelAttribut taa ON taa.kArtikelAttribut = taas.kArtikelAttribut
JOIN dbo.tAttributSprache tas ON tas.kAttribut = taa.kAttribut AND tas.cName = 'Test'
JOIN dbo.tbestellpos bp ON bp.tArtikel_kArtikel = taa.kArtikel
WHERE taas.kSprache = 0 AND tas.kSprache = 0 AND taas.nWertInt =1
AND bp.tBestellung_kBestellung = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
{% endcapture -%}
{% assign result = query | DirectQueryScalar %}\
{{ result }}
Rückgabetyp ist hier "Zahl"
 

Bernd_Hofi

Aktives Mitglied
13. Mai 2017
91
22
Abschließender Beitrag:

Danke an T4DT.GmbH
Sie hatten die Lösung

Zusammengefasst:

Ihr wollt einem Auftrag einen Zusatzartikel für bestimmte Artikel per Workflow anhängen.

Die Artikel wurden per Checkbox in den Artikeldaten unter EigeneFelder selektiert.

Nun die Bedingung:

Wenn auftrag erstellt -> und Kunde ist aus dem Onlineshop (als Beispiel)

Bedingung: Füge Zusatzartikel für jeden Artikel hinzu, der einen Hacken in der Checkbox hat.

Also:

Positzion Hinzufügen

Modus -> Artikel
Aktikel wählen

Menge: Da kommt jetzt keine Zahl sonder der Code rein.

Öffnet die Erweiterten Eigenschaften und fügt Folgenden Code ein:

{% capture query -%}
SELECT COUNT(*) FROM dbo.tArtikelAttributSprache taas
JOIN dbo.tArtikelAttribut taa ON taa.kArtikelAttribut = taas.kArtikelAttribut
JOIN dbo.tAttributSprache tas ON tas.kAttribut = taa.kAttribut AND tas.cName = 'Test'
JOIN dbo.tbestellpos bp ON bp.tArtikel_kArtikel = taa.kArtikel
WHERE taas.kSprache = 0 AND tas.kSprache = 0 AND taas.nWertInt =1
AND bp.tBestellung_kBestellung = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
{% endcapture -%}
{% assign result = query | DirectQueryScalar %}\
{{ result }}


Das rote Test ersetzt Ihr durch den Namen der Checkbox.

Was macht der Code:

Er sucht in der Datenbank innerhalb des Auftrags nach allen Artikeln, wo Ihr den Hacken gesetzt habt.
Dann zählt er alles zusammen und gibt euch das Ergebniss als Zahl aus.


Viel Vergnügen mit dem Workflow

(Hinweis): Prüft nach jedem JTL-Update die Datenbankabfrage. Die Tabellen können sich ändern.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Workflow-Auswahl ... mit ins Kontext-Menü aufnehmen (rechten Maustaste) JTL-Wawi - Ideen, Lob und Kritik 2
Neu Workflow mit Freipositionen in Email Gelöste Themen in diesem Bereich 3
JTL Mahnwesen Workflow- Email nach 30 Tagen noch nicht bezahlt. JTL-Wawi 1.8 0
Neu Workflow der bei Stücklisten: Überverkäufe de-/aktivieren User helfen Usern - Fragen zu JTL-Wawi 11
Neu Workflow Aktion E-Mail senden kann nicht Plain und HTML Email zusammen versenden Arbeitsabläufe in JTL-Wawi 6
Workflow Manuell HTML Request wie Server Antwort verarbeiten JTL-Wawi 1.7 0
Workflow Marktplätze - Otto, Kaufland, etc. JTL-Wawi 1.6 0
Workflow Artikel + Anzahl in Einkaufsliste aktualisieren JTL-Wawi 1.8 0
Neu Workflow Web-Request Post für mollie Arbeitsabläufe in JTL-Wawi 5
Workflow MwSt.-Sätze ersetzen 0% -> 19% ändert netto in Positionen aber nicht in der Auftragssumme JTL-Wawi 1.7 2
Neu API Integration via Workflow Arbeitsabläufe in JTL-Wawi 8
In Diskussion Automatische Zuweisung der Kategorien für Artikel durch Workflow JTL-Workflows - Ideen, Lob und Kritik 3
In Bearbeitung Workflow offene Aufträge zusammenfassen bei ausgelieferten JTL-Workflows - Ideen, Lob und Kritik 1
Neu Benachrichtigung per Workflow bei Wareneingang User helfen Usern - Fragen zu JTL-Wawi 24
Workflow für Artikel versandklassen JTL-Wawi 1.7 1
Gelöst Per Workflow im Servicedesk eine Mail versenden. Gelöste Themen in diesem Bereich 4
Workflow für Versandart Wenn/Und JTL-Wawi 1.7 0
Workflow für Amazon Zahlart erstellen JTL-Wawi 1.7 0
In Diskussion Workflow von Stornobelege Rechnung JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Auftraqspositionen per Email an Kunden senden JTL-Wawi 1.7 3
Gelöst Servicedesk Workflow Datei erstellen um einen Auftrag zu ändern Gelöste Themen in diesem Bereich 1
Neu Workflow > Rechnungen > Label Setzen ? (1.8.11) User helfen Usern - Fragen zu JTL-Wawi 6
Neu Workflow Ereignis auslösen wenn alle Bedingungen erfüllt sind. Sonst anderes Ereignis auslösen. JTL-Wawi - Ideen, Lob und Kritik 0
Beantwortet Kunde von Firma per Workflow setzen JTL-Workflows - Ideen, Lob und Kritik 1
Neu Workflow für Rechnung gesucht Arbeitsabläufe in JTL-Wawi 1
Workflow - Debitorennummer JTL-Wawi 1.8 2
In Diskussion Workflow - Artikelmerkmale setzen? JTL-Workflows - Ideen, Lob und Kritik 2
Workflow: Mahnungen - Fehler JTL-Wawi 1.8 5
Neu Workflow Lieferantenartikel-Nummer vor Artikelname setzen JTL-Wawi 1.7 1
In Diskussion Workflow wenn offene Rechnungen, dann weitere offene Aufträge sperren und im Kundensatz Sperrung setzten. JTL-Workflows - Ideen, Lob und Kritik 0
Workflow für Kaufland greift nicht mehr 1.8.11.0 kaufland.de - Anbindung (SCX) 5
[JTL-WAWI API] - Trigger Sales Order Workflow Event JTL-Wawi 1.8 3
Workflow-Bug: 1.8.11 Attribute in Workflow setzen JTL-Wawi 1.8 10
In Diskussion Workflow, Wert setzen aus Zwischenablage/Clipboard JTL-Workflows - Ideen, Lob und Kritik 0
Neu EK-Preise per Workflow in Lieferantenbestellung einfügen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow Rechnungsvorlage ändern klappt nicht - Wawi 1.7.13.1 User helfen Usern - Fragen zu JTL-Wawi 0
Neu per Workflow: WhatsApp oder ähnliches senden User helfen Usern - Fragen zu JTL-Wawi 0
Workflow Bug: Rechnungskorrektur erstellen aus Retoure JTL-Wawi 1.8 4
Gelöst In Workflow auf Stücklistenartikel zugreifen und dessen Eigenschaften anzeigen Gelöste Themen in diesem Bereich 7
Neu Manueller Workflow alle Artikel markieren funktioniert nicht JTL-Wawi - Fehler und Bugs 3
Englische Artikelbezeichnung in einem Workflow JTL-Wawi 1.7 0
In Diskussion Workflow für unbearbeitete Pickliste (versehentlich unbearbeitete in Auftrag verpacken verschieben) JTL-Workflows - Ideen, Lob und Kritik 2
Neu Suche Workflow Bedingung: "Wenn nicht storniert?" User helfen Usern - Fragen zu JTL-Wawi 2
Speichern von Retouren-Workflow schlägt fehl (JTL 1.6.39.0) JTL-Wawi 1.6 2
Neu Workflow: Vorname bei Auftragserstellung löschen Wawi 1.5 Gelöste Themen in diesem Bereich 3
Neu Vorschlag: Per Workflow Tickets erstellen Servicedesk (Beta) 1
Neu Workflow - Oberkategorie prüfen Eigene Übersichten in der JTL-Wawi 10
Neu CSV Auftrag mit Artikeldaten (GTIN, Beschreibung, etc.) exportieren Arbeitsabläufe in JTL-Wawi 1
Neu PrestaShop Connector für Prestashop 8 mit PHP 8.2 wird nicht unterstützt PrestaShop-Connector 0
Neu Packtisch: In der Liste der Aufträge neue Feld-Spalte mit Spalteneditor hinzufügen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0

Ähnliche Themen