Items
Schreiben
pixiSetItemCategory
Weist einem Artikel, identifiziert über Artikel-Key oder interne Artikelnummer, eine Kategorie aus der Tabelle TontrArten zu.
Setzt die Kategorie eines einzelnen Artikels.
- Artikel ermitteln: Ist
ItemKEyangegeben, wird dieser direkt verwendet. Ist erNULL, wird der Artikel überItemNRInt(interne Artikelnummer) initemsgesucht. Bei mehreren Treffern wird ein beliebiger verwendet (TOP (1)ohne Sortierung). - Kann kein Artikel-Key ermittelt werden, wird eine Zeile mit
Error=Item not found.geliefert; es erfolgt keine Änderung. - Kategorie suchen: Die Kategorie wird in
TontrArtenüber ihren Text gesucht (TontrText=Category). Gelesen werdenTontrArt(Konfigurationstyp) undTontrArtKey(Kategorie-ID) des ersten Treffers. - Wird keine Kategorie gefunden oder hat der gefundene Datensatz kein
TontrArt, wird eine Zeile mitError=Category is not existing.geliefert; es erfolgt keine Änderung. - Andernfalls werden die Spalten
ConfigTypeundCategoryIddes Artikels aktualisiert und eine Zeile mitError=OKgeliefert.
Der Aufruf liefert immer genau eine Zeile mit der Spalte Error, die den Statustext enthält.
Hinweise
- Wird
ItemKEyübergeben, wird dessen Existenz nicht geprüft. Bei einem nicht vorhandenen Key ändert das Update keine Zeile, der Aufruf liefert trotzdemOK. - Werden
ItemKEyundItemNRIntgemeinsam übergeben, wirdItemNRIntignoriert. - Die Kategorie wird über ihren Anzeigetext gesucht, nicht über den Key. Haben mehrere Kategorien denselben Text, wird eine beliebige verwendet.
- Die Lesezugriffe verwenden
NOLOCK(Dirty Reads möglich); das Update verwendetROWLOCK. Es wird keine explizite Transaktion verwendet. - Die Statusspalte heißt auch im Erfolgsfall (
OK)Error.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemKEy
|
int | NULL |
Interner Key des Artikels ( Beispiel: |
ItemNRInt
|
varchar(50) string |
NULL |
Interne Artikelnummer ( Beispiel: |
Category
Pflicht
|
varchar(50) string |
– |
Text der Kategorie, wie in Beispiel: |
Antwort
Result-Set 1 · Immer (genau eine Zeile)
Statuszeile des Vorgangs.
| Spalte | Typ | Beschreibung |
|---|---|---|
Error
|
varchar(25) string |
|
Beispielantwort
<SqlRowSet1>
<row>
<Error>OK</Error>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| Error | Item not found. | `ItemKEy` ist `NULL` und es existiert kein Artikel mit der angegebenen `ItemNRInt` (oder `ItemNRInt` ist ebenfalls `NULL`). Einen gültigen Artikel-Key oder eine gültige interne Artikelnummer übergeben. |
| Error | Category is not existing. | Kein Datensatz in `TontrArten` hat `TontrText` gleich `Category`, oder der gefundene Datensatz hat kein `TontrArt`. Den exakten Kategorietext wie in Pixi definiert verwenden. |
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:pixiSetItemCategory>
<!-- <ItemKEy>10234</ItemKEy> -->
<!-- <ItemNRInt>ART-100245</ItemNRInt> -->
<Category>Textilien</Category>
</ns1:pixiSetItemCategory>
</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:pixiSetItemCategory>
<!-- <ItemKEy>10234</ItemKEy> -->
<!-- <ItemNRInt>ART-100245</ItemNRInt> -->
<Category>Textilien</Category>
</ns1:pixiSetItemCategory>
</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 = [
// 'ItemKEy' => '10234',
// 'ItemNRInt' => 'ART-100245',
'Category' => 'Textilien',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiSetItemCategory', $soapArguments);
Verwendete Tabellen
items · Schreiben
TontrArten · Lesen
- SQL-Objekt:
- dbo.pipiSetItemCategory
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben