pixiReleaseOrder
Gibt einen angehaltenen Auftrag anhand externer Auftragsnummer und Shop frei, indem dessen Auftragspositionen von Status HAL auf ANG gesetzt werden.
Gibt einen angehaltenen Auftrag (Status HAL) frei, damit er wieder bearbeitet werden kann.
- Die interne Auftragsnummer (
OrderNr) wird inOrderlinesüberOrderNrExternal=@OrderNrExternalermittelt, verknüpft mitCustomersüberCustomerOf=@ShopId. - Die interne Prozedur
GOS_ReleaseOnHoldwird mit dieser Auftragsnummer und dem BenutzerAPIaufgerufen. Sie setzt alle Auftragspositionen des Auftrags mit StatusHALaufANG, setztUpdateDateauf das aktuelle Datum undUpdateEmpaufAPI (payments). - Abschließend wird eine Statuszeile geliefert: die Anzahl der Auftragspositionen mit der angegebenen externen Auftragsnummer und dem Shop, die nun Status
ANGhaben.ReturnCodeistOK, wenn diese Anzahl größer 0 ist, sonstERROR.
Hinweise
AffectedRowsist nicht die Anzahl der tatsächlich freigegebenen Positionen: Gezählt werden alle Positionen mit StatusANG, auch solche, die bereits vor dem AufrufANGhatten. Ein Aufruf für einen nicht angehaltenen Auftrag mitANG-Positionen liefert daher ebenfallsOK.- Wird kein Auftrag gefunden, wird nichts geändert und das Ergebnis ist
ERRORmitAffectedRows= 0. Dasselbe gilt, wenn der Auftrag existiert, danach aber keine Position im StatusANGist (z. B. Positionen in anderen Status). - Teilen sich mehrere Aufträge innerhalb des Shops dieselbe externe Auftragsnummer, wird nur einer davon (die zuletzt gelesene Zeile der Suche) freigegeben, während die Zählung Positionen aller passenden Aufträge umfasst.
- Suche und abschließende Zählung verwenden
NOLOCK; das Ergebnis kann daher nicht festgeschriebene Daten widerspiegeln. - Die Aktualisierung läuft in einer Transaktion (bzw. einem Savepoint, falls bereits eine Transaktion offen ist). Bei einem Fehler wird zurückgerollt, die Fehlerdetails werden in
LogTableprotokolliert und der Fehler erneut ausgelöst.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
OrderNrExternal
Pflicht
|
varchar(50) string |
– |
Externe Auftragsnummer (z. B. die Bestellnummer des Shops) des freizugebenden Auftrags. Beispiel: |
ShopId
Pflicht
|
char(3) string |
– |
Shop-ID; wird mit Beispiel: |
Antwort
Result-Set 1 · Immer, sofern bei der Aktualisierung kein Fehler ausgelöst wird.
Statuszeile mit dem Ergebnis der Freigabe.
| Spalte | Typ | Beschreibung |
|---|---|---|
ReturnCode
|
varchar(5) string |
|
AffectedRows
|
int |
Anzahl der Auftragspositionen mit der angegebenen externen Auftragsnummer und dem Shop im Status |
Beispielantwort
<SqlRowSet1>
<row>
<ReturnCode>OK</ReturnCode>
<AffectedRows>3</AffectedRows>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| ERROR | ERROR | Wird als `ReturnCode` geliefert, wenn nach dem Aufruf keine Auftragsposition des Auftrags im Status `ANG` ist, z. B. weil die externe Auftragsnummer für diesen Shop nicht existiert oder die Positionen einen anderen Status haben. `OrderNrExternal` und `ShopId` prüfen. |
| RAISERROR | {error message} | Beliebiger SQL-Fehler bei der Statusänderung in `GOS_ReleaseOnHold` (z. B. Sperr-Timeout oder Constraint-Verletzung). Die Transaktion wird zurückgerollt, die Details werden in `LogTable` protokolliert und die ursprüngliche Fehlermeldung wird erneut ausgelöst. |
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:pixiReleaseOrder>
<OrderNrExternal>100012345</OrderNrExternal>
<ShopId>ABC</ShopId>
</ns1:pixiReleaseOrder>
</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:pixiReleaseOrder>
<OrderNrExternal>100012345</OrderNrExternal>
<ShopId>ABC</ShopId>
</ns1:pixiReleaseOrder>
</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 = [
'OrderNrExternal' => '100012345',
'ShopId' => 'ABC',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReleaseOrder', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReleaseOrder