Neu Gelöst - SQL Direct Query gibt Fehler aus bei Nutzung von Variable

stgb

Mitglied
15. Oktober 2021
24
0
Hey,

ich bin vollkommen unwissend was SQL daher sorry falls das hier eine richtig simple Sache ist:
Kann mir jemand sagen wieso diese Abfrage nicht funktioniert?

SQL:
JTL_DirectQuery("SELECT cVersandlandISO  FROM tBestellung WHERE cBestellNr = "+Vorgang.Auftrag.Auftragsnummer)

Als Fehlermeldung bekomme ich:
Code:
Ungültiger Spaltenname: "AU"
Ungültiger Spaltenname "U"

Vorgang.Auftrag.Auftragsnummer = AU-206419-U

Wenn ich die Abfrage so schreibe, funktioniert es problemlos:
SQL:
JTL_DirectQuery("SELECT cVersandlandISO  FROM tBestellung WHERE cBestellNr = 'AU-206419-U'")

Ich brauche aber die Variable weil ich auf der Rechnungsvorlage das Versandland für die angezeigt USt-ID benötige :/

Kann mir jemand einen Tipp geben woran es liegt? Muss ich die Variable noch umwandeln? mit ToString$() hat es nicht funktioniert.
 

stgb

Mitglied
15. Oktober 2021
24
0
Du musst die Variable mit ' ' schreiben, also 'Vorgang.Auftrag.Auftragsnummer' . Dann sollte es klappen.

MfG,
André
Wenn ich es so schreibe geht wird die Variable aber als Zeichenkette angesehen:
SQL:
JTL_DirectQuery("SELECT cVersandlandISO  FROM tBestellung WHERE cBestellNr = "+'Vorgang.Auftrag.Auftragsnummer')

Und ich bekomme die Fehlermeldung der mehrteilige Bezeichner "Vorgang.Auftrag.Auftragsnummer" konnte nicht gebunden werden (wirklich gebunden oder ist das evtl ein Rechtschreibfehler und soll gefunden heissen?)
 

baumaschinenteile24

Sehr aktives Mitglied
2. Mai 2012
435
63
Ach ja, Quatsch, das geht so direkt gar nicht. Du musst es mit capture machen. Also
{% capture SQLquery %}SELECT cVersandlandISO FROM tBestellung WHERE cBestellNr = "+'Vorgang.Auftrag.Auftragsnummer'; {% endcapture %}.
Dann kannst du die Variable SQLquery für deine Abfrage nehmen. Das ist dann ein kompletter String mit deiner Auftragsnummer drin.

MfG,
André
 
  • Gefällt mir
Reaktionen: stgb

stgb

Mitglied
15. Oktober 2021
24
0
Ach ja, Quatsch, das geht so direkt gar nicht. Du musst es mit capture machen. Also

Dann kannst du die Variable SQLquery für deine Abfrage nehmen. Das ist dann ein kompletter String mit deiner Auftragsnummer drin.

MfG,
André

Hey,
danke erstmal für die Hilfe, leider funktioniert auch dies bei mir nicht.

Kann man diese Form von Query überhaupt in den Druckvorlagen anwenden?
Ich versuche mich parallel gerade dazu einzulesen.

Bei deiner Formel scheint ein " zu viel oder zu wenig zu sein, nehme ich das vorhandene weg, erhalte ich die Fehlermeldung '{' kann nicht interpretiert werden :/
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
635
207
JTL_DirectQuery("SELECT cVersandlandISO FROM tBestellung WHERE cBestellNr ='" + Vorgang.Auftrag.Auftragsnummer + "'")
 
  • Gefällt mir
Reaktionen: stgb

stgb

Mitglied
15. Oktober 2021
24
0
JTL_DirectQuery("SELECT cVersandlandISO FROM tBestellung WHERE cBestellNr ='" + Vorgang.Auftrag.Auftragsnummer + "'")

Super, vielen Dank das hat geklappt!

Sieht für mich als Laie zwar etwas umständlich und nicht richtig nachvollziehbar aus wieso da eine Mischung aus " und ' davor und danach stehen müssen, aber ich denke das muss so damit das richtig interpretiert wird.

Vielen Dank!
 

baumaschinenteile24

Sehr aktives Mitglied
2. Mai 2012
435
63
Hey,
danke erstmal für die Hilfe, leider funktioniert auch dies bei mir nicht.

Kann man diese Form von Query überhaupt in den Druckvorlagen anwenden?
Ich versuche mich parallel gerade dazu einzulesen.

Bei deiner Formel scheint ein " zu viel oder zu wenig zu sein, nehme ich das vorhandene weg, erhalte ich die Fehlermeldung '{' kann nicht interpretiert werden :/
Gute Frage, ich hatte das in einem Workflow so gelöst. Man kann auch in Formularen Variablen definieren, wenn mich nicht alles täuscht, aber da stecke ich nicht so drin, jtldudel's Lösung ist mindestens mal deutlich weniger umständlich.

Mfg;
André
 
  • Gefällt mir
Reaktionen: stgb

jtldudel

Sehr aktives Mitglied
4. Januar 2018
635
207
Gute Frage, ich hatte das in einem Workflow so gelöst. Man kann auch in Formularen Variablen definieren, wenn mich nicht alles täuscht, aber da stecke ich nicht so drin, jtldudel's Lösung ist mindestens mal deutlich weniger umständlich.

Mfg;
André
In dem Vorlageneditor müssen die vorgefertigten Funktionen verwendet werden, für die DB Abfragen ist das die Funktion JTL_DirectQuery(). Bei Workflows (und an vielen anderen Stellen in JTL wo der dotLiquid Editor verwendet wird) funktioniert deine Idee mit dem Capture. Der Vorlageneditor macht das so halt nicht, deshalb hier nicht anwendbar.
 
  • Gefällt mir
Reaktionen: baumaschinenteile24
Ähnliche Themen
Titel Forum Antworten Datum
Gelöst: Shipping 4.0 gibt fehler: The product entered is unknown. JTL-Wawi 1.11 6
gelöst: Für diesen User wurde zum angegebenen Mandanten keine Firma gefunden!! JTL-Wawi 1.10 13
(gelöst) Ecomdata - JTL Worker 2.0 - Startet nicht - Schließt ohne Fehlermeldung JTL-Wawi 2.0 10
Neu [Gelöst] Bilder im Product-Stream unterschiedlich groß User helfen Usern - Fragen zu JTL-Wawi 0
WMS Lagerbestand Bezeichnung in SQL Datenbank JTL-Wawi 1.11 2
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 12
Wawi Meldung SQL Servicepack zu installieren - aber welches? Update SQL2022 CU24 nicht möglich JTL-Wawi 1.11 3
CSV Exportvorlage - SQL Abfrage Eigenes Feld JTL-Wawi 2.0 4
Keine Rückmeldung in JTL Wawi sobald SQL Server Memory durch Database Cache ausgeslastet ist JTL-Wawi 2.0 9
Update auf 1.11 verlangt ein Update auf aktuelleren SQL Server JTL-Wawi 1.11 7
Neu SQL Lagerbestand minus in Aufträgen Eigene Übersichten in der JTL-Wawi 3
Neu SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 4
Neu Umzug SQL Datenbank auf neuen Server User helfen Usern - Fragen zu JTL-Wawi 2
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3

Ähnliche Themen