pixiReadPOSItems
Liefert Kassenbon-Positionen (POS) aus `POSitem2`, gefiltert nach Schlüssel oder nach Anlage-/Änderungsdatum des POS-Kopfs, mit optionalem schlüsselbasiertem Paging.
Liest Positionen von Kassenbons (POS). Wird POSItemKey nicht übergeben, wird 0 verwendet. Der erste zutreffende Zweig bestimmt den Filter:
- Anlage- oder Änderungsdatum – wenn
CreateAndUpdateDateFromoderCreateAndUpdateDateTogesetzt ist: Positionen, deren POS-Kopf (POSheader2) im Zeitraum angelegt oder geändert wurde. Die Untergrenze gilt als erfüllt, wennPHCreateDateoderPHUpdateDate>=dem Von-Wert ist, die Obergrenze, wennPHCreateDateoderPHUpdateDate<dem Bis-Wert ist. - Anlagedatum – sonst, wenn
CreateDateFromoderCreateDateTogesetzt ist:PHCreateDatedes Kopfs>=Von und<Bis. - Änderungsdatum – sonst, wenn
UpdateDateFromoderUpdateDateTogesetzt ist:PHUpdateDatedes Kopfs>=Von und<Bis. - Schlüsselbereich – sonst, wenn
RowCountübergeben wird: alle Positionen mitPOSitemKeygrößer alsPOSItemKey. - Einzelne Position – andernfalls: die Position mit genau
POSitemKey=POSItemKey.
In den Zweigen 1–4 werden nur Positionen mit POSitemKey > POSItemKey geliefert, aufsteigend sortiert nach POSitemKey. Die Zweige 1–3 liefern nur Positionen mit vorhandenem POS-Kopf (Inner Join).
RowCount begrenzt die Anzahl der gelieferten Zeilen (sofern nicht 0). Für Paging wird der zuletzt erhaltene POSitemKey im nächsten Aufruf als POSItemKey übergeben.
Hinweise
- Alle Lesezugriffe erfolgen mit
NOLOCK; es können nicht festgeschriebene Daten geliefert werden. - Die Zeilenbegrenzung erfolgt über
SET ROWCOUNT. - Ein Aufruf ohne Parameter landet im Einzelpositions-Zweig mit Schlüssel
0und liefert normalerweise ein leeres Ergebnis. RowCount=0wählt trotzdem den Schlüsselbereichs-Zweig (der Wert ist nicht NULL), setzt aber keine Begrenzung; es werden alle Positionen oberhalb vonPOSItemKeygeliefert.- Die Obergrenzen der Datumsfilter sind exklusiv (
<). Beim kombinierten Anlage-/Änderungsfilter werden die Grenzen unabhängig geprüft; eine Zeile kann die Untergrenze über das eine und die Obergrenze über das andere Datum erfüllen. - Die Datumsfilter beziehen sich auf den POS-Kopf, nicht auf die Position selbst.
- Der letzte Zweig "no data" im Code ist nicht erreichbar, da
POSItemKeynach der Standardwertbehandlung nie NULL ist.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
POSItemKey
|
int | NULL |
Schlüssel einer POS-Position. Exakter Treffer im Einzelpositions-Zweig; sonst werden nur Positionen mit größerem Schlüssel geliefert (Paging-Start). NULL wird als 0 behandelt. Beispiel: |
CreateDateFrom
|
datetime dateTime |
NULL |
Untergrenze (inklusiv) für das Anlagedatum des POS-Kopfs. Beispiel: |
CreateDateTo
|
datetime dateTime |
NULL |
Obergrenze (exklusiv) für das Anlagedatum des POS-Kopfs. Beispiel: |
UpdateDateFrom
|
datetime dateTime |
NULL |
Untergrenze (inklusiv) für das Änderungsdatum des POS-Kopfs. Wird ignoriert, wenn ein Anlage- oder kombinierter Filter gesetzt ist. Beispiel: |
UpdateDateTo
|
datetime dateTime |
NULL |
Obergrenze (exklusiv) für das Änderungsdatum des POS-Kopfs. Wird ignoriert, wenn ein Anlage- oder kombinierter Filter gesetzt ist. Beispiel: |
CreateAndUpdateDateFrom
|
datetime dateTime |
NULL |
Untergrenze (inklusiv), geprüft gegen Anlage- oder Änderungsdatum des Kopfs. Hat Vorrang vor allen anderen Datumsfiltern. Beispiel: |
CreateAndUpdateDateTo
|
datetime dateTime |
NULL |
Obergrenze (exklusiv), geprüft gegen Anlage- oder Änderungsdatum des Kopfs. Hat Vorrang vor allen anderen Datumsfiltern. Beispiel: |
RowCount
|
int | NULL |
Maximale Anzahl Zeilen (0 oder NULL = keine Begrenzung). Wird der Wert ohne Datumsfilter übergeben, wird der Schlüsselbereichs-Zweig verwendet ( Beispiel: |
Antwort
Result-Set 1 · Immer (einer der Filterzweige); kann leer sein.
POS-Positionen aus POSitem2.
| Spalte | Typ | Beschreibung |
|---|---|---|
POSitemKey
|
int |
Primärschlüssel der POS-Position. |
PIheaderRef
Kann leer sein |
int |
Verweis auf den POS-Kopf ( |
PIitemRef
Kann leer sein |
int |
Verweis auf den Artikel. |
PIeanUpc
Kann leer sein |
string |
EAN/UPC des Artikels. |
PIitemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
PIqty
Kann leer sein |
decimal |
Menge. |
PIprice
Kann leer sein |
decimal |
Einzelpreis. |
PIdiscount
Kann leer sein |
decimal |
Rabatt. |
PIendPrice
Kann leer sein |
decimal |
Endpreis nach Rabatt. |
PIvatInPrice
Kann leer sein |
decimal |
Im Preis enthaltene MwSt. |
PIstockReduced
Kann leer sein |
boolean |
Kennzeichen, ob für die Position Bestand abgebucht wurde. |
PIstockBinRef
Kann leer sein |
int |
Verweis auf den verwendeten Lagerplatz. |
PIstockReducedWithRef
Kann leer sein |
int |
Verweis auf die Bestandsbuchung der Abbuchung. |
PIcustomerTookItem
Kann leer sein |
boolean |
Kennzeichen, ob der Kunde den Artikel direkt mitgenommen hat. |
PIstockAfter
Kann leer sein |
decimal |
Bestand nach der Buchung. |
ScanCode
Kann leer sein |
string |
Gescannter Code. |
VatPercent
Kann leer sein |
decimal |
MwSt-Satz in Prozent. |
ItemTotal
Kann leer sein |
decimal |
Positionssumme. |
ItemNameChanged
Kann leer sein |
boolean |
Kennzeichen, ob der Artikelname an der Kasse geändert wurde. |
ItemNameNew
Kann leer sein |
string |
Geänderter Artikelname. |
BundleOrderlineRef
Kann leer sein |
int |
Verweis auf die Set-Auftragsposition. |
OrderlineKey
Kann leer sein |
int |
Schlüssel der zugehörigen Auftragsposition. |
SerialNr
Kann leer sein |
string |
Seriennummer. |
Beispielantwort
<SqlRowSet1>
<row>
<POSitemKey>15231</POSitemKey>
<PIheaderRef>4102</PIheaderRef>
<PIitemRef>8812</PIitemRef>
<PIeanUpc>4006381333931</PIeanUpc>
<PIitemNrInt>ART-10023</PIitemNrInt>
<PIqty>2</PIqty>
<PIprice>19.99</PIprice>
<PIdiscount>0</PIdiscount>
<PIendPrice>19.99</PIendPrice>
<PIvatInPrice>3.19</PIvatInPrice>
<PIstockReduced>1</PIstockReduced>
<PIstockBinRef>311</PIstockBinRef>
<PIstockReducedWithRef>99821</PIstockReducedWithRef>
<PIcustomerTookItem>1</PIcustomerTookItem>
<PIstockAfter>14</PIstockAfter>
<ScanCode>4006381333931</ScanCode>
<VatPercent>19</VatPercent>
<ItemTotal>39.98</ItemTotal>
<ItemNameChanged>0</ItemNameChanged>
<ItemNameNew/>
<BundleOrderlineRef>0</BundleOrderlineRef>
<OrderlineKey>552310</OrderlineKey>
<SerialNr/>
</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:pixiReadPOSItems>
<!-- <POSItemKey>15230</POSItemKey> -->
<!-- <CreateDateFrom>2024-03-01T00:00:00</CreateDateFrom> -->
<!-- <CreateDateTo>2024-04-01T00:00:00</CreateDateTo> -->
<!-- <UpdateDateFrom>2024-03-01T00:00:00</UpdateDateFrom> -->
<!-- <UpdateDateTo>2024-04-01T00:00:00</UpdateDateTo> -->
<!-- <CreateAndUpdateDateFrom>2024-03-01T00:00:00</CreateAndUpdateDateFrom> -->
<!-- <CreateAndUpdateDateTo>2024-04-01T00:00:00</CreateAndUpdateDateTo> -->
<!-- <RowCount>500</RowCount> -->
</ns1:pixiReadPOSItems>
</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:pixiReadPOSItems>
<!-- <POSItemKey>15230</POSItemKey> -->
<!-- <CreateDateFrom>2024-03-01T00:00:00</CreateDateFrom> -->
<!-- <CreateDateTo>2024-04-01T00:00:00</CreateDateTo> -->
<!-- <UpdateDateFrom>2024-03-01T00:00:00</UpdateDateFrom> -->
<!-- <UpdateDateTo>2024-04-01T00:00:00</UpdateDateTo> -->
<!-- <CreateAndUpdateDateFrom>2024-03-01T00:00:00</CreateAndUpdateDateFrom> -->
<!-- <CreateAndUpdateDateTo>2024-04-01T00:00:00</CreateAndUpdateDateTo> -->
<!-- <RowCount>500</RowCount> -->
</ns1:pixiReadPOSItems>
</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 = [
// 'POSItemKey' => '15230',
// 'CreateDateFrom' => '2024-03-01T00:00:00',
// 'CreateDateTo' => '2024-04-01T00:00:00',
// 'UpdateDateFrom' => '2024-03-01T00:00:00',
// 'UpdateDateTo' => '2024-04-01T00:00:00',
// 'CreateAndUpdateDateFrom' => '2024-03-01T00:00:00',
// 'CreateAndUpdateDateTo' => '2024-04-01T00:00:00',
// 'RowCount' => '500',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReadPOSItems', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReadPOSItems