pixiDFGetChangesConfirmation
Bestätigt eine verarbeitete Auftragshistorien-Änderung für einen Direct-Fulfillment-Lieferanten, setzt das ClientNotified-Flag und optional das Tracking-Versanddatum einer Rechnung.
Quittiert einen Eintrag der Auftragshistorie aus der Direct-Fulfillment-API. Ein Lieferant ruft dies auf, nachdem er eine Änderung verarbeitet hat, damit die Änderung als übermittelt markiert wird.
- Authentifizierung: Der Lieferant wird in
SuppliersüberSupplNrgesucht, mitCustNr=Secret, nicht deaktiviert (Disabled<> 1) und für Direct Fulfillment freigeschaltet (CanDoDirectFulfillment= 1).- Wird kein Lieferant gefunden und hat die Einstellung
DFAPIAllowFullAccessWithoutSecretden Wert0, liefert der Aufruf den Status403. Fehlt die Einstellung, gilt ebenfalls0. - Bei jedem anderen Wert der Einstellung entfällt die Secret-Prüfung.
- Wird kein Lieferant gefunden und hat die Einstellung
- Suche: Existiert der
OrderHistKeynicht inOrderHistory, liefert der Aufruf den Status404. - Aktualisierung: Andernfalls wird die interne Prozedur
GOSUpdateOHClientNotifiedXMLausgeführt:- Der Historieneintrag erhält
ClientNotified=Y(nur wennOrderHistKey<> 0). - Ist
InvoiceKey<> 0, wirdInvoices.TrackingIDSentder Rechnung auf das aktuelle Datum mit Uhrzeit gesetzt. - Bei Erfolg ist der Status
200. Tritt ein Fehler auf, ist der Status500mit der SQL-Fehlermeldung.
- Der Historieneintrag erhält
Der Aufruf liefert immer genau eine Zeile mit Status und ErrorMsg.
Hinweise
- Der Code prüft nicht, ob
OrderHistKeyoderInvoiceKeyzum authentifizierten Lieferanten gehört. Jeder vorhandene Historieneintrag kann bestätigt werden. InvoiceKeywird nicht validiert. Existiert die Rechnung nicht, wird keine Zeile geändert, der Status ist trotzdem200.- Die beiden Updates laufen nicht in einer expliziten Transaktion. Schlägt das Rechnungs-Update fehl, kann das
ClientNotified-Flag bereits gesetzt sein, obwohl der Aufruf500liefert. - Lieferantensuche und Existenzprüfung verwenden
NOLOCK. - Ist
OrderHistKeyNULL, wird die404-Meldung durch die ZeichenverkettungNULL.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
SupplNr
Pflicht
|
varchar(4) string |
– |
Lieferantennummer des Direct-Fulfillment-Lieferanten. Beispiel: |
Secret
Pflicht
|
varchar(20) string |
– |
Secret des Lieferanten. Es wird mit dem Feld Beispiel: |
OrderHistKey
Pflicht
|
int | – |
Schlüssel des zu bestätigenden Eintrags der Auftragshistorie. Der Eintrag erhält Beispiel: |
InvoiceKey
|
int | 0 |
Optionaler Rechnungsschlüssel. Ist er ungleich 0, wird Beispiel: |
Antwort
Result-Set 1 · Immer
Eine Statuszeile mit dem Ergebnis der Bestätigung.
| Spalte | Typ | Beschreibung |
|---|---|---|
Status
|
varchar(3) string |
HTTP-ähnlicher Statuscode: |
ErrorMsg
Kann leer sein |
varchar(2000) string |
Meldungstext: Erfolgsbestätigung oder Fehlerbeschreibung. |
Beispielantwort
<SqlRowSet1>
<row>
<Status>200</Status>
<ErrorMsg>ClientNotified flag successfully set for OrderHistKey(584213).</ErrorMsg>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| 403 | Not Authorized. Secret or SupplNr is incorrect. | Kein aktiver Direct-Fulfillment-Lieferant passt zu `SupplNr` und `Secret`, und die Einstellung `DFAPIAllowFullAccessWithoutSecret` ist `0` oder fehlt. Lieferantennummer, Secret (`CustNr`), das Flag `Disabled` und `CanDoDirectFulfillment` prüfen. |
| 404 | OrderHistKey({value}) not found. | Es gibt keinen Eintrag mit dem angegebenen `OrderHistKey` in `OrderHistory`. Einen Schlüssel aus dem Änderungs-Feed verwenden. |
| 500 | {ERROR_MESSAGE()} | Beim Aktualisieren von `OrderHistory` oder `Invoices` ist ein SQL-Fehler aufgetreten. Die Meldung enthält den ursprünglichen SQL-Fehlertext. |
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:pixiDFGetChangesConfirmation>
<SupplNr>L001</SupplNr>
<Secret>K12345</Secret>
<OrderHistKey>584213</OrderHistKey>
<!-- <InvoiceKey>0</InvoiceKey> -->
</ns1:pixiDFGetChangesConfirmation>
</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:pixiDFGetChangesConfirmation>
<SupplNr>L001</SupplNr>
<Secret>K12345</Secret>
<OrderHistKey>584213</OrderHistKey>
<!-- <InvoiceKey>0</InvoiceKey> -->
</ns1:pixiDFGetChangesConfirmation>
</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 = [
'SupplNr' => 'L001',
'Secret' => 'K12345',
'OrderHistKey' => '584213',
// 'InvoiceKey' => '0',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiDFGetChangesConfirmation', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiDFGetChangesConfirmation