pixiCanAddOrderlines
Prüft, ob einem Auftrag noch neue Auftragspositionen hinzugefügt werden dürfen, abhängig von Zahlungsart und Status der vorhandenen Positionen.
Ermittelt für den Auftrag PixiOrderNr, ob weitere Auftragspositionen hinzugefügt werden können. Das Ergebnis wird in den Output-Parameter CanAdd geschrieben, optional als Statuszeile zurückgegeben und zusätzlich als Rückgabewert der Prozedur verwendet.
Der Auftragskopf (OrderHeader) wird mit seiner Adresse (Addresses, über AddrRef) verknüpft. Die Entscheidung hängt von der Zahlungsart-Spalte APayment ab:
- Zahlungsart ungleich
KoderC:CanAdd = 1, wenn der Auftrag keine Auftragspositionen mit StatusEINoderAUShat. Sonst0. - Zahlungsart
KoderC:CanAdd = 1nur, wenn alle Auftragspositionen einen der StatusNEW,ANG,HAL,MIN,OPH,BES,STO,NLBhaben. Sobald eine Position einen anderen Status hat, ist das Ergebnis0. - Ein Auftrag ohne Auftragspositionen liefert daher immer
1, sofern eine Zahlungsart gesetzt ist. - Ist
APaymentNULL, trifft keine Bedingung zu und das Ergebnis ist0.
Bei SupressOutput = 0 (Standard) wird eine Zeile mit CanAdd, OrderNr und ErrorMessage (immer NULL) zurückgegeben. Bei SupressOutput = 1 wird keine Ergebnismenge geliefert; das Ergebnis steht dann nur im Output-Parameter und im Rückgabewert.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK; das Ergebnis kann daher nicht festgeschriebene Änderungen widerspiegeln. - Existiert der Auftrag nicht (oder gibt es keinen passenden Adressdatensatz), wird kein Wert zugewiesen:
CanAddbehält den übergebenen Wert (in der RegelNULL), und die zurückgegebene Zeile zeigt diesen Wert. Eine Fehlermeldung wird nicht erzeugt;ErrorMessageist immerNULL. EinNULLinCanAddist als „Auftrag nicht gefunden“ zu werten. CanAddist alsOUTPUTohne Standardwert deklariert und muss daher im Request mitgesendet werden (z. B. leer oder0).- Die Spalte
APaymentwird ohne Tabellenalias referenziert und ausOrderHeaderoderAddressesaufgelöst. Die Bedeutung der ZahlungsartenKundCist im Code nicht festgelegt. - Auftragspositionen mit Status
NULLwerden bei der Prüfung für die ZahlungsartenK/Cnicht berücksichtigt. - Die Prozedur ändert keine Daten.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
PixiOrderNr
Pflicht
|
int | – |
Pixi-Auftragsnummer ( Beispiel: |
CanAdd
OUTPUT
|
bit boolean |
– |
Ausgabe: Erlaubte Werte
Beispiel: |
SupressOutput
|
bit boolean |
0 |
Steuert, ob die Ergebniszeile zurückgegeben wird. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Wenn SupressOutput = 0 (Standard)
Eine Zeile mit dem Prüfergebnis für den Auftrag.
| Spalte | Typ | Beschreibung |
|---|---|---|
CanAdd
Kann leer sein |
bit boolean |
|
OrderNr
|
int |
Die geprüfte Auftragsnummer (Rückgabe von |
ErrorMessage
Kann leer sein |
int string |
Immer |
Beispielantwort
<SqlRowSet1>
<row>
<CanAdd>1</CanAdd>
<OrderNr>104523</OrderNr>
</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:pixiCanAddOrderlines>
<PixiOrderNr>104523</PixiOrderNr>
<!-- <CanAdd>0</CanAdd> -->
<!-- <SupressOutput>0</SupressOutput> -->
</ns1:pixiCanAddOrderlines>
</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:pixiCanAddOrderlines>
<PixiOrderNr>104523</PixiOrderNr>
<!-- <CanAdd>0</CanAdd> -->
<!-- <SupressOutput>0</SupressOutput> -->
</ns1:pixiCanAddOrderlines>
</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 = [
'PixiOrderNr' => '104523',
// 'CanAdd' => '0',
// 'SupressOutput' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiCanAddOrderlines', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiCanAddOrderlines