pixiReadAddItems
Liefert Zusatzartikel-Datensätze (lieferantenbezogene Artikeldaten wie EAN, Lieferanten-Artikelnummer und Preise) aus `AddItems`, gefiltert nach Schlüssel, Zeitraum und Lieferant.
Liest Datensätze aus der Tabelle AddItems. Diese enthalten lieferantenbezogene Artikeldaten: EAN/UPC, Lieferanten-Artikelnummer, interne Artikelnummer, Preise, MwSt-Satz und das Kennzeichen für den bevorzugten Lieferanten.
Zuerst werden die Parameter vorbereitet:
- Ist
RowCountgesetzt und ungleich0, wird die Anzahl der gelieferten Zeilen aufRowCountbegrenzt. - Wird
AddItemKeynicht übergeben, wird der Wert auf0gesetzt. - Ist
SupplNrleer oder besteht nur aus Leerzeichen, gilt der Filter als nicht gesetzt.
Anschließend wird genau eine der folgenden Abfragen ausgeführt. Es gilt der erste Zweig, dessen Bedingung zutrifft:
- Anlage- oder Änderungsdatum (
CreateAndUpdateDateFromund/oderCreateAndUpdateDateTogesetzt): Datensätze mitAddItemKey>AddItemKey.- Die Untergrenze greift, wenn
CreateDateoderUpdateDate>=CreateAndUpdateDateFromist. - Die Obergrenze greift, wenn
CreateDateoderUpdateDate<CreateAndUpdateDateToist.
- Die Untergrenze greift, wenn
- Anlagedatum (
CreateDateFromund/oderCreateDateTogesetzt): Datensätze mitAddItemKey>AddItemKeyundCreateDate>= Von und < Bis. - Änderungsdatum (
UpdateDateFromund/oderUpdateDateTogesetzt): Datensätze mitAddItemKey>AddItemKeyundUpdateDate>= Von und < Bis. - Schlüsselbereich (
RowCountübergeben, auch als0): Datensätze mitAddItemKey>AddItemKey. - Einzelner Schlüssel (sonst): der Datensatz mit
AddItemKey=AddItemKey.
In allen Zweigen schränkt der optionale Filter SupplNr das Ergebnis auf einen Lieferanten ein. Die Zweige 1 bis 4 sind aufsteigend nach AddItemKey sortiert. Damit ist Paging möglich: den zuletzt erhaltenen AddItemKey zusammen mit RowCount übergeben, um die nächste Seite zu erhalten.
Hinweise
- Die Tabelle wird mit
NOLOCKgelesen, daher können nicht festgeschriebene Änderungen sichtbar sein. - Ohne Parameter wird
AddItemKeyauf0gesetzt und der Einzelschlüssel-Zweig ausgeführt. Dieser liefert in der Regel keine Zeilen. - Bei
RowCount=0wird der Schlüsselbereichs-Zweig ohne Zeilenbegrenzung ausgeführt. Dann werden alle passenden Datensätze geliefert, was bei großen Tabellen langsam sein kann. - Die Grenzen des kombinierten Anlage-/Änderungsfilters werden jeweils gegen eine der beiden Datumsspalten geprüft. Ein Datensatz kann daher auch dann zutreffen, wenn keines der beiden Daten im Zeitraum liegt, etwa wenn
CreateDatevor undUpdateDatenach dem Zeitraum liegt. - Bei
SupplNrwerden nur leere Werte normalisiert. Führende Leerzeichen werden nicht entfernt und können dazu führen, dass kein Datensatz gefunden wird. - Die Datumsfilter haben folgende Rangfolge: kombiniert Anlage/Änderung, Anlage, Änderung. Datumsparameter mit niedrigerem Rang werden ignoriert, wenn ein Parameter mit höherem Rang gesetzt ist.
- Alle Obergrenzen sind exklusiv (
<). - Der Kopfkommentar spricht von Lieferantendaten, die Prozedur liefert jedoch Zusatzartikel-Datensätze.
- Die Spaltentypen sind im Code nicht sichtbar. Als
unknownmarkierte Typen sind aus den Spaltennamen abgeleitet.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
AddItemKey
|
int | NULL |
Schlüssel des Zusatzartikels. Ohne Datumsfilter und ohne Beispiel: |
CreateDateFrom
|
datetime dateTime |
NULL |
Untergrenze (inklusiv) für Beispiel: |
CreateDateTo
|
datetime dateTime |
NULL |
Obergrenze (exklusiv) für Beispiel: |
UpdateDateFrom
|
datetime dateTime |
NULL |
Untergrenze (inklusiv) für Beispiel: |
UpdateDateTo
|
datetime dateTime |
NULL |
Obergrenze (exklusiv) für Beispiel: |
CreateAndUpdateDateFrom
|
datetime dateTime |
NULL |
Untergrenze (inklusiv). Trifft zu, wenn Beispiel: |
CreateAndUpdateDateTo
|
datetime dateTime |
NULL |
Obergrenze (exklusiv). Trifft zu, wenn Beispiel: |
RowCount
|
int | NULL |
Maximale Anzahl gelieferter Zeilen (über Beispiel: |
SupplNr
|
varchar(4) string |
NULL |
Lieferantennummer. Wenn gesetzt, werden nur Datensätze dieses Lieferanten geliefert. Leere oder nur aus Leerzeichen bestehende Werte werden ignoriert. Beispiel: |
Antwort
Result-Set 1 · Immer; genau einer der Abfragezweige wird ausgeführt. Das Ergebnis kann leer sein.
Zusatzartikel-Datensätze aus AddItems. Aufsteigend nach AddItemKey sortiert, außer bei der Einzelschlüssel-Abfrage.
| Spalte | Typ | Beschreibung |
|---|---|---|
AddItemKey
|
int |
Primärschlüssel des Zusatzartikel-Datensatzes. |
EANUPC
Kann leer sein |
string |
EAN-/UPC-Code. |
UPC
Kann leer sein |
string |
UPC-Code. |
ItemNrSuppl
Kann leer sein |
string |
Artikelnummer des Lieferanten. |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
ItemNrOld
Kann leer sein |
string |
Alte Artikelnummer. |
SupplNr
Kann leer sein |
varchar(4) string |
Lieferantennummer. |
Price
Kann leer sein |
decimal |
Preis. |
SupplPrice
Kann leer sein |
decimal |
Lieferantenpreis (Einkaufspreis). |
Curr_Source
Kann leer sein |
string |
Ausgangswährung des Lieferantenpreises. |
MwStSatz
Kann leer sein |
decimal |
MwSt-Satz. |
AutoPrice
Kann leer sein |
string |
Kennzeichen für automatische Preisberechnung. |
CreateDate
Kann leer sein |
datetime dateTime |
Anlagedatum des Datensatzes. |
UpdateDate
Kann leer sein |
datetime dateTime |
Datum der letzten Änderung. |
ItemRef
Kann leer sein |
int |
Referenz auf den Pixi-Artikel. |
LastImportDate
Kann leer sein |
dateTime |
Datum des letzten Imports. |
SKU
Kann leer sein |
string |
SKU (Lagerhaltungsnummer). |
PreferredSupplier
Kann leer sein |
string |
Kennzeichen, ob dieser Lieferant der bevorzugte Lieferant des Artikels ist. |
Active
Kann leer sein |
string |
Aktiv-Kennzeichen des Datensatzes. |
Beispielantwort
<SqlRowSet1>
<row>
<AddItemKey>1201</AddItemKey>
<EANUPC>4006381333931</EANUPC>
<UPC/>
<ItemNrSuppl>SUP-77812</ItemNrSuppl>
<ItemNrInt>100245</ItemNrInt>
<ItemNrOld/>
<SupplNr>LI01</SupplNr>
<Price>19.99</Price>
<SupplPrice>8.50</SupplPrice>
<Curr_Source>EUR</Curr_Source>
<MwStSatz>19.00</MwStSatz>
<AutoPrice>N</AutoPrice>
<CreateDate>2024-03-01T09:15:00</CreateDate>
<UpdateDate>2024-03-05T14:20:00</UpdateDate>
<ItemRef>5531</ItemRef>
<LastImportDate>2024-03-05T14:20:00</LastImportDate>
<SKU>SKU-100245</SKU>
<PreferredSupplier>Y</PreferredSupplier>
<Active>Y</Active>
</row>
</SqlRowSet1>
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:pixiReadAddItems>
<!-- <AddItemKey>0</AddItemKey> -->
<!-- <CreateDateFrom>2024-01-01T00:00:00</CreateDateFrom> -->
<!-- <CreateDateTo>2024-02-01T00:00:00</CreateDateTo> -->
<!-- <UpdateDateFrom>2024-01-01T00:00:00</UpdateDateFrom> -->
<!-- <UpdateDateTo>2024-02-01T00:00:00</UpdateDateTo> -->
<!-- <CreateAndUpdateDateFrom>2024-03-01T00:00:00</CreateAndUpdateDateFrom> -->
<!-- <CreateAndUpdateDateTo>2024-03-02T00:00:00</CreateAndUpdateDateTo> -->
<!-- <RowCount>500</RowCount> -->
<!-- <SupplNr>LI01</SupplNr> -->
</ns1:pixiReadAddItems>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?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:pixiReadAddItems>
<!-- <AddItemKey>0</AddItemKey> -->
<!-- <CreateDateFrom>2024-01-01T00:00:00</CreateDateFrom> -->
<!-- <CreateDateTo>2024-02-01T00:00:00</CreateDateTo> -->
<!-- <UpdateDateFrom>2024-01-01T00:00:00</UpdateDateFrom> -->
<!-- <UpdateDateTo>2024-02-01T00:00:00</UpdateDateTo> -->
<!-- <CreateAndUpdateDateFrom>2024-03-01T00:00:00</CreateAndUpdateDateFrom> -->
<!-- <CreateAndUpdateDateTo>2024-03-02T00:00:00</CreateAndUpdateDateTo> -->
<!-- <RowCount>500</RowCount> -->
<!-- <SupplNr>LI01</SupplNr> -->
</ns1:pixiReadAddItems>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
// 'AddItemKey' => '0',
// 'CreateDateFrom' => '2024-01-01T00:00:00',
// 'CreateDateTo' => '2024-02-01T00:00:00',
// 'UpdateDateFrom' => '2024-01-01T00:00:00',
// 'UpdateDateTo' => '2024-02-01T00:00:00',
// 'CreateAndUpdateDateFrom' => '2024-03-01T00:00:00',
// 'CreateAndUpdateDateTo' => '2024-03-02T00:00:00',
// 'RowCount' => '500',
// 'SupplNr' => 'LI01',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReadAddItems', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReadAddItems