Gelöst Stored Procedure in DotLiquid aufrufen möglich?

Der_Bob

Gut bekanntes Mitglied
10. August 2007
218
9
Hallo,

Ist es möglich, eine Stored Procedure in Dotliquid aufzurufen? Hintergrund ist der, dass wir eine komplexe selbstgeschrieben Abfrage haben für die Liefertermine einzelner für unsere Kunden.
Diese gibt uns genau aus welche Artikelpositionen bis zu welchem Liefertermin verfügbar sein werden unter Berücksichtigung anderer Bestellungen etc. Da es sich um eine größere Abfrage handelt, die bei mehreren Workflows Anwendung findet und ich ungern in jeden Workflow die komplette Abfrage schreiben würden, die dann auch immer überall geupdatet werden müsste, würde ich lieber überall auf eine zentrale SP zugreifen. Ist das irgendwie möglich? Mit

{% capture itemquery %}
'exec SP_Beispiel '152874'
{% endcapture -%}

geht es leider nicht, aber wahrscheinlich müsste auch eher erst die Prozedur ausgeführt werden, die die Ergebnisse in eine eigene Tabelle schreibt und diese dann mit capture abfragt, oder?

Viele Grüße,
Marcus
 

sebjo82

Sehr aktives Mitglied
3. Juni 2021
511
130
sorry fürs ausgraben, ich lerne aktuell SQL und DotLiquid und versuche mich gern an Problemen 😅

'exec SP_Beispiel '152874'
hat 3x ', was an sich schonmal ein Problem darstellen sollte.

außerdem funktioniert {% capture <name> -%} eh ohne die Query in einen String zu setzen, d.h. ich hätte die sp entsprechend so aufgerufen:
Code:
{% capture itemquery %}
exec SP_Beispiel '152874'
{% endcapture -%}
{% assign resultQuery = itemquery | DirectQuery -%}
{{ resultQuery }}

Soweit ich weiß, spuckt DotLiquid so aber immer nur TOP(1) und Spalte 1 aus, d.h. man müsste DotLiquid entsprechend umbauen mit einer Schleife
 
Zuletzt bearbeitet:

jtldudel

Sehr aktives Mitglied
4. Januar 2018
547
182
sorry fürs ausgraben, ich lerne aktuell SQL und DotLiquid und versuche mich gern an Problemen 😅

'exec SP_Beispiel '152874'
hat 3x ', was an sich schonmal ein Problem darstellen sollte.

außerdem funktioniert {% capture <name> -%} eh ohne die Query in einen String zu setzen, d.h. ich hätte die sp entsprechend so aufgerufen:
Code:
{% capture itemquery %}
exec SP_Beispiel '152874'
{% endcapture -%}
{% assign resultQuery = itemquery | DirectQuery -%}
{{ resultQuery }}

Soweit ich weiß, spuckt DotLiquid so aber immer nur TOP(1) und Spalte 1 aus, d.h. man müsste DotLiquid entsprechend umbauen mit einer Schleife
Ich hab keine Ahnung ob das von dir so klappt aber mit der Funktion "JTL_DirectTableQuery" kannst du auch eine ganze Tabelle ausgeben.
Du musst in der Funktion noch den Spaltentrenner und den Zeilentrenner angeben, sonst geht das.
 
  • Gefällt mir
Reaktionen: sebjo82