Neu XML Order Vorlage - EK netto nicht per Variable

NiPe

Neues Mitglied
25. Juni 2026
6
0
Wir bauen gerade eine XML-Order-Vorlage. Hierbei fehlt uns lediglich der EK vom Lieferanten. Dies ist per Variable nicht möglich.

<preisnetto>{% capture query -%} DECLARE @kArtikel INT = TRY_CAST('{{ SalesOrderPosition.ProductKey | String }}' AS INT); DECLARE @cArtNr NVARCHAR(100) = '{{ SalesOrderPosition.SKU | SqlEscape }}'; SELECT TOP 1 CAST(fEKNetto AS DECIMAL(10,2)) FROM dbo.tArtikel WITH (NOLOCK) WHERE (@kArtikel > 0 AND kArtikel = @kArtikel) OR (@kArtikel IS NULL AND cArtNr = @cArtNr AND @cArtNr <> ''); {% endcapture -%} {% assign sqlResult = query | DirectQuery -%} {% assign ekValue = sqlResult.Scalar -%} {{ ekValue | Default: '0.00' }}
</preisnetto>

Funktioniert leider nicht. Jemand eine Idee noch besser Lösung?
 

John

Sehr aktives Mitglied
3. März 2012
4.190
1.073
Berlin
Die Lieferanten EKs kommen aus tliefartikel.fEKNetto
Da muss man aber ggf. schauen, WELCHEN Lieferantenpreis Du wirklich haben möchtest, wenn ein Artikel mehr als einen Lieferanten hat.
 

NiPe

Neues Mitglied
25. Juni 2026
6
0
da wird es nur einen geben. Ich habe das mal so gemacht, jedoch bleibt der Wert nicht sichtbar
<preisnetto>{{ tliefartikel.fEKNetto }}</preisnetto>
 

NiPe

Neues Mitglied
25. Juni 2026
6
0
{% capture ekQuery -%}
SELECT TOP 1 fEKNetto FROM tliefartikel WHERE tArtikel_kArtikel = {{ SalesOrderPosition.ProductInternalId }}
{% endcapture -%}
{% assign ekPreis = ekQuery | DirectQueryScalar -%}
<preisnetto>{{ ekPreis | Divided_By: 1.0 | Round: 2 }}</preisnetto>
 

John

Sehr aktives Mitglied
3. März 2012
4.190
1.073
Berlin
Funktioniert das?
Warum Divided_by und Round?

Das geht mit FORMAT im SQL schöner.
z.b. für zwei Nachkommastellen und Komma als Dezimaltrenner:

SELECT TOP 1 FORMAT(fEKNetto, 'N2', 'de-de')...
 

NiPe

Neues Mitglied
25. Juni 2026
6
0
hat mir "Claude" gesagt und funktioniert.
Wie würde denn dein kompletter Code aussehen?

Kann man irgendwo die Variablen einsehen?
 

John

Sehr aktives Mitglied
3. März 2012
4.190
1.073
Berlin
Müsste sein:

Code:
{% capture ekQuery -%}
SELECT TOP 1 FORMAT(fEKNetto, 'N2', 'de-de') FROM tliefartikel WHERE tArtikel_kArtikel = {{ SalesOrderPosition.ProductInternalId }}
{% endcapture -%}
{% assign ekPreis = ekQuery | DirectQueryScalar -%}
<preisnetto>{{ ekPreis }}</preisnetto>
 
  • Gefällt mir
Reaktionen: NiPe