pixiSupplierOrderLineLocQtyUpdate
Aktualisiert die Menge und/oder offene Menge eines Lagerort-Mengendatensatzes einer Lieferantenbestellposition.
Aktualisiert einen einzelnen Lagerort-Mengendatensatz einer Lieferantenbestellposition, identifiziert über SupplierOrderLineLocQtyId. Die eigentliche Aktualisierung übernimmt die interne Prozedur pixi.SupplierOrderLineLocQtyUpdate. Dieser Wrapper geht so vor:
- Öffnet eine Transaktion. Besteht beim Aufrufer bereits eine offene Transaktion, wird stattdessen ein Savepoint gesetzt.
- Ermittelt den Benutzer. Ist
UserIdangegeben, wird diese unverändert verwendet. Andernfalls wird der Benutzer überUserNameinUCS_USERSgesucht. Existiert kein Benutzer mit diesem Namen, wird der BenutzerpixiAdministrationverwendet. - Normalisiert die Parameter:
ConsiderPackageUnitsundConsiderMinOrderQtywerden beiNULLzu0.QtyundUndeliveredQtywerden beiNULLoder0zuNULL.
- Ruft
pixi.SupplierOrderLineLocQtyUpdatemit diesen Werten auf. Dabei wird immerReturnUpdatedIds = 1übergeben, die interne Prozedur soll also die aktualisierten IDs zurückgeben. - Bestätigt die Transaktion, sofern sie von diesem Aufruf geöffnet wurde.
Bei einem Fehler wird die Transaktion bzw. der Savepoint zurückgerollt. Der Aufruf liefert dann eine Zeile mit ReturnCode = 'ERROR' und der SQL-Fehlermeldung.
Hinweise
- Interne Prozedur nicht beigefügt: Die Definition von
pixi.SupplierOrderLineLocQtyUpdateliegt nicht vor. Daher ist offen:- welche Tabellen sie ändert,
- welche Prüfungen sie durchführt,
- welche Spalten ihre Ergebnismenge im Erfolgsfall hat,
- wie sie
NULLfürQtyoderUndeliveredQtybehandelt (vermutlich "unverändert lassen").
- Wert
0nicht setzbar: Wegen der PrüfungISNULL(@Qty, '') = ''wird der Wert0wie "nicht angegeben" behandelt und alsNULLweitergegeben. Dasselbe gilt fürUndeliveredQty. Eine Menge lässt sich über diesen Aufruf also nicht auf0setzen. - Ungenutzter Parameter:
AppNameist Pflicht, wird im Code aber nicht verwendet. - Rollback im Fehlerfall: Wird die Transaktion durch einen Fehler nicht mehr festschreibbar, rollt der Code auf den Savepoint zurück. SQL Server erlaubt das bei nicht festschreibbaren Transaktionen nicht und kann einen weiteren Fehler auslösen.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
AppName
Pflicht
|
varchar(255) string |
– |
Name der aufrufenden Anwendung. Pflichtfeld, wird im Code aber nicht verwendet. Beispiel: |
UserId
|
int | NULL |
ID des ausführenden Benutzers. Fehlt sie, wird der Benutzer über Beispiel: |
UserName
Pflicht
|
varchar(50) string |
– |
Benutzername, über den der Benutzer ermittelt wird, wenn Beispiel: |
SupplierOrderLineLocQtyId
Pflicht
|
int | – |
ID des zu aktualisierenden Lagerort-Mengendatensatzes der Lieferantenbestellposition. Beispiel: |
ConsiderPackageUnits
|
bit boolean |
0 |
Ob Verpackungseinheiten berücksichtigt werden. Erlaubte Werte
Beispiel: |
ConsiderMinOrderQty
|
bit boolean |
0 |
Ob die Mindestbestellmenge berücksichtigt wird. Erlaubte Werte
Beispiel: |
Qty
|
int | NULL |
Neue Bestellmenge. Beispiel: |
UndeliveredQty
|
int | NULL |
Neue offene (nicht gelieferte) Menge. Beispiel: |
Antwort
Result-Set 1 · Bei Erfolg: was pixi.SupplierOrderLineLocQtyUpdate zurückgibt (Aufruf mit ReturnUpdatedIds = 1)
Ergebnis der internen Prozedur, vermutlich die IDs der aktualisierten Datensätze. Die Spalten sind im vorliegenden Code nicht sichtbar.
Result-Set 2 · Im Fehlerfall
Fehlerzeile mit der SQL-Fehlermeldung.
| Spalte | Typ | Beschreibung |
|---|---|---|
ReturnCode
|
varchar(5) string |
Immer |
ErrorMessage
Kann leer sein |
nvarchar(4000) string |
Text des aufgetretenen SQL-Fehlers. |
Beispielantwort
<SqlRowSet1>
<row>
<ReturnCode>ERROR</ReturnCode>
<ErrorMessage>Supplier order line location quantity not found.</ErrorMessage>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| ERROR | {ERROR_MESSAGE()} | Jeder Fehler bei der Benutzerermittlung oder innerhalb von `pixi.SupplierOrderLineLocQtyUpdate`, z. B. eine ungültige `SupplierOrderLineLocQtyId` oder fehlgeschlagene Prüfungen. Die Änderungen werden zurückgerollt. Die eigentliche Ursache steht im Meldungstext. |
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:pixiSupplierOrderLineLocQtyUpdate>
<AppName>MyWarehouseTool</AppName>
<!-- <UserId>12</UserId> -->
<UserName>jdoe</UserName>
<SupplierOrderLineLocQtyId>4711</SupplierOrderLineLocQtyId>
<!-- <ConsiderPackageUnits>0</ConsiderPackageUnits> -->
<!-- <ConsiderMinOrderQty>0</ConsiderMinOrderQty> -->
<!-- <Qty>24</Qty> -->
<!-- <UndeliveredQty>10</UndeliveredQty> -->
</ns1:pixiSupplierOrderLineLocQtyUpdate>
</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:pixiSupplierOrderLineLocQtyUpdate>
<AppName>MyWarehouseTool</AppName>
<!-- <UserId>12</UserId> -->
<UserName>jdoe</UserName>
<SupplierOrderLineLocQtyId>4711</SupplierOrderLineLocQtyId>
<!-- <ConsiderPackageUnits>0</ConsiderPackageUnits> -->
<!-- <ConsiderMinOrderQty>0</ConsiderMinOrderQty> -->
<!-- <Qty>24</Qty> -->
<!-- <UndeliveredQty>10</UndeliveredQty> -->
</ns1:pixiSupplierOrderLineLocQtyUpdate>
</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 = [
'AppName' => 'MyWarehouseTool',
// 'UserId' => '12',
'UserName' => 'jdoe',
'SupplierOrderLineLocQtyId' => '4711',
// 'ConsiderPackageUnits' => '0',
// 'ConsiderMinOrderQty' => '0',
// 'Qty' => '24',
// 'UndeliveredQty' => '10',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiSupplierOrderLineLocQtyUpdate', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiSupplierOrderLineLocQtyUpdate