Postman-Collection
Items Lesen

pixiGetResolvedItemDependencies

Löst eine Liste von Artikeln in die tatsächlichen Lagerartikel auf: Nicht-Bundle-Artikel bleiben erhalten, Bundles werden durch ihre Bestandteile mit multiplizierten Mengen ersetzt.

Nimmt eine Liste von Artikeln mit Mengen als XML entgegen und liefert die Artikel, von denen die Anfrage tatsächlich abhängt, z. B. um Bestand für einen Auftrag zu prüfen oder zu reservieren.

Ablauf:

  1. Das XML in ItemXML wird ab /Items/Item gelesen. Jedes Item kann den Artikel über ItemKey, über ItemNrInt oder über beide identifizieren und enthält eine Menge Qty.
  2. Fehlende Kennungen werden aus der Tabelle Items ergänzt: fehlt ItemKey, wird er über ItemNrInt ermittelt; fehlt ItemNrInt, wird sie über ItemKey ermittelt.
  3. Einträge, deren ItemKey nicht ermittelt werden kann (unbekannte Artikelnummer), werden ohne Meldung verworfen.
  4. Auflösung:
    • Artikel mit IsBundle = 0 werden mit der angefragten Menge Qty geliefert.
    • Artikel mit IsBundle = 1 werden selbst nicht geliefert. Stattdessen wird jeder Bestandteil aus BundleItems mit der Menge Qty × Bestandteilmenge geliefert.
  5. Das Ergebnis wird nach ItemKey gruppiert: Mengen desselben Artikels (mehrfach angegeben oder in mehreren Bundles enthalten) werden summiert.

Wird ItemXML nicht übergeben, wird eine leere Ergebnismenge geliefert. Eine Sortierung ist nicht festgelegt.

Hinweise

  • Nur lesend; alle Zugriffe auf Items und BundleItems erfolgen mit NOLOCK, daher können nicht festgeschriebene Daten geliefert werden.
  • Bundles werden nur eine Ebene tief aufgelöst. Ein Bestandteil, der selbst ein Bundle ist, wird unverändert geliefert und nicht weiter aufgelöst.
  • Sind ItemKey und ItemNrInt beide angegeben, wird ItemKey verwendet; ItemNrInt wird nicht dagegen geprüft.
  • Unbekannte Artikel werden ohne Fehlermeldung verworfen; bei Bedarf das Ergebnis mit der Anfrage abgleichen.
  • Fehlt Qty bei einem Eintrag, ist dessen Menge NULL und trägt nicht zur summierten Qty bei (die Summe ist NULL, wenn alle Beiträge NULL sind).
  • Ungültiges XML führt zu einem SQL-Fehler aus sp_xml_preparedocument, der als SqlMessage zurückkommt.
  • Der Datentyp der gelieferten Qty hängt vom Typ von BundleItems.Qty ab, der im Code nicht sichtbar ist.

Parameter

Parameter Typ Standardwert Beschreibung
ItemXML
varchar(max)
xml
NULL

XML-Liste der angefragten Artikel. Wurzel Items, je Eintrag ein Element Item mit den Kindelementen ItemKey und/oder ItemNrInt sowie Qty. Bei NULL ist das Ergebnis leer.

Beispiel:

<Items>
  <Item>
    <ItemKey>1052</ItemKey>
    <ItemNrInt>ART-10052</ItemNrInt>
    <Qty>2</Qty>
  </Item>
  <Item>
    <ItemNrInt>BUNDLE-200</ItemNrInt>
    <Qty>1</Qty>
  </Item>
</Items>

Antwort

Result-Set 1 · Immer (leer, wenn ItemXML NULL ist oder kein Artikel aufgelöst werden konnte)

Eine Zeile je aufgelöstem Lagerartikel mit der benötigten Gesamtmenge.

Spalte Typ Beschreibung
ItemKey int

Schlüssel des aufgelösten Artikels (Nicht-Bundle-Artikel aus der Anfrage oder Bundle-Bestandteil).

ItemNrInt
Kann leer sein
varchar(50)
string

Interne Artikelnummer des aufgelösten Artikels aus Items.

Qty
Kann leer sein
decimal

Benötigte Gesamtmenge: Summe der angefragten Mengen, bei Bundle-Bestandteilen multipliziert mit der Bestandteilmenge.

Beispiele

POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
  <SOAP-ENV:Body>
    <ns1:pixiGetResolvedItemDependencies>
      <!-- <ItemXML><![CDATA[<Items><Item><ItemKey>1052</ItemKey><ItemNrInt>ART-10052</ItemNrInt><Qty>2</Qty></Item><Item><ItemNrInt>BUNDLE-200</ItemNrInt><Qty>1</Qty></Item></Items>]]></ItemXML> -->
    </ns1:pixiGetResolvedItemDependencies>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Items · Lesen BundleItems · Lesen
SQL-Objekt:
dbo.pipiGetResolvedItemDependencies
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben