Prozedur zum Anlegen, Ändern und Löschen von Kategorien für Artikel-Merkmale.
Allgemeine Hinweise :
1. Einer Kategorie können MAXIMAL 255 Kategorien untergeordnet sein
2. Eine Kategorie kann nur gelöscht werden, wenn sie KEINE untergeordneten Kategorien mehr besitzt
Anmerkungen zum Parameter „MoveSortNo“ :
1. Ist „MoveSortNo“ angegeben (und ungleich „0“), wird die Reihenfolge von „NodeCharacCategoryID“ innerhalb aller Kategorien der übergeordneten Kategorie (von „NodeCharacCategoryID“) RELATIV geändert : Ein positiver Wert bedeutet, daß die interne „SortNo“ (die die Reihenfolge bestimmt) um den Wert „MoveSortNo“ ERHÖHT wird, d.h. die Kategorie „rückt nach unten“. Ein negativer Wert ERNIEDRIGT die „SortNo“ entsprechend, d.h. die Kategorie „steigt nach oben“.
2. Würde der Wert von „MoveSortNo“ dazu führen, daß die neue „SortNo“ kleiner als „1“ oder größer als die bisherige größte „SortNo“ aller Kategorien (die die gleiche übergeordnete Kategorie besitzen) wäre, gibt es keinen Fehler, sondern die „SortNo“ wird dann auf „1“ gesetzt bzw. so geändert, daß „NodeCharacCategoryID“ die größte „SortNo“ innerhalb aller Kategorien der übergeordneten Kategorie (von „NodeCharacCategoryID“) besitzt.
Anmerkungen zum Parameter „PredecessorCategoryID“ :
1. Wird KEINE „PredecessorCategoryID“ angegeben oder die ID der Kategorie, die aktuell die übergeordnete Kategorie von „NodeCharacCategoryID“ darstellt, wird nur die „CategoryDescription“ (dem gleichnamigen Parameter entsprechend) geändert UND/ODER die Reihenfolge innerhalb aller der gleichen übergeordneten Kategorie zugehörigen Kategorien verändert (→ „MoveSortNo“).
Anmerkung : Möchte man die „CategoryDescription“ nicht verändern, kann man die bereits vorhandene „CategoryDescription“ oder „NULL“ im Parameter „CategoryDescription“ angeben.
2. Bei Angabe einer „PredecessorCategoryID“, die eine andere Kategorie darstellt, als die aktuelle übergeordnete Kategorie (von „NodeCharacCategoryID“), wird „NodeCharacCategoryID“ quasi „verschoben“, d.h. der angegebenen Kategorie untergeordnet. Die Kategorie wird in der neuen Hauptkategorie ganz „nach unten“ eingeordnet, d.h. sie besitzt die größte „SortNo“ aller „PredecessorCategoryID“ zugeordneten Kategorien.
Anmerkung : In diesem Fall werden „CategoryDescription“ und „MoveSortNo“ NICHT beachtet, und es gibt einen Fehler („-500“), wenn „PredecessorCategoryID“ eine UNTER-geordnete Kategorie von „NodeCharacCategoryID“ ist !
HTTP-Method | POST |
HTTP-Auth | Optional |
Alias | im_ModifyNodeCharacteristicCategories_Ad |
Tags | |
Engine-Kategorie | configurations |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
NodeCharacCategoryID | Ist „NULL“ angegeben, wird eine neue Kategorie für Artikel-Merkmale angelegt. Ansonsten entscheidet „DeleteCategory“ darüber, ob die vorhandene Kategorie geändert („0“) oder gelöscht („1“) wird. | smallint | 5.1.9 | |
CategoryDescription | Bezeichnung der (neuen) Kategorie. ACHTUNG : Wird NICHT beachtet, wenn sowohl „NodeCharacCategoryID“ als auch „PredecessorCategoryID“ angegeben sind ! | varchar(100) | 5.1.9 | |
PredecessorCategoryID | NULL | ID einer Kategorie für Artikel-Merkmale. Ist hier UND für „NodeCharacCategoryID“ nichts (also „NULL“) angegeben, wird eine neue Hauptkategorie angelegt. Ist hier eine ID angegeben, wird die (neue) Kategorie unterhalb dieser erstellt bzw. verschoben. | smallint | 5.1.9 |
MoveSortNo | NULL | Wird nur beachtet, wenn „NodeCharacteristicID“ angegeben, „DeleteCategory = 0“ ist und es sich NICHT um eine Hauptkategorie handelt ! Falls angegeben, wird die „SortNo“ relativ um diesen Wert geändert (s. Beschreibung). | smallint | 5.1.9 |
DeleteCategory | 0 | Wird nur beachtet, wenn „NodeCharacCategoryID“ angegeben ist. Dieser Parameter entscheidet darüber, ob die vorhandene Kategorie geändert („0“) oder gelöscht („1“) wird. | bit | 5.1.9 |
Die Prozedur hat keine Rückgaben.
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 4) |
---|---|---|
-569 | Der Benutzer hat kein Ausführungsrecht für die Prozedur | nur indirekt |
-567 | Die Prozedur darf z. Zt. nicht ausgeführt werden | nur indirekt |
-566 | Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden | nur indirekt |
-535 | Das Datum liegt nicht in der Vergangenheit | nur indirekt |
-530 | Der Wert ist nicht konvertierbar | nur indirekt |
-510 | Der Benutzer ist nicht registriert | nur indirekt |
-504 | Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochen | nur indirekt |
-503 | Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabe | nur direkt |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
-500 | Falsche Parameter | direkt und indirekt |
-292 | Die Kategorie kann nicht gelöscht werden, da sie noch Unterkategorien enthält | nur direkt |
-291 | Kategorie kann nicht verschoben werden, da man einer Kategorie max. 255 Kategorien unterordnen kann | nur direkt |
-290 | Kategorie kann nicht angelegt werden, da man einer Kategorie max. 255 Kategorien unterordnen kann | nur direkt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
6.5.4 | 2013-04-29 | Anpassungen an aktuellen Code-Standard [print-Ausgaben ins Englische übersetzt] |
6.5.3 | 2013-03-18 | Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung |
5.1.9 | 2007-01-26 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
Unformatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/im_ModifyNodeCharacCats_Ad?NodeCharacCategoryID=<value>&CategoryDescription=<value>'
Mit xmllint 5) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/im_ModifyNodeCharacCats_Ad?NodeCharacCategoryID=<value>&CategoryDescription=<value>' | xmllint --format -
use dStore_php\WebService; $service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80); $request = new WebService\Requests\Engine\Procedure\Request( new WebService\Requests\AccessData('default'), 'im_ModifyNodeCharacCats_Ad', array( 'NodeCharacCategoryID' => <value>, 'CategoryDescription' => '<value>', // 'PredecessorCategoryID' => NULL, // 'MoveSortNo' => NULL, // 'DeleteCategory' => 0 ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray();
XML zur Ausführung mit der Methode engine/execute, z.B. per
curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?> <ListOfBatches> <Batch No="0"> <Procedure Name="im_ModifyNodeCharacCats_Ad"> <Parameters> <Parameter Name="NodeCharacCategoryID"><!-- smallint value --></Parameter> <Parameter Name="CategoryDescription"><!-- varchar value --></Parameter> <!-- <Parameter Name="PredecessorCategoryID">NULL</Parameter> --> <!-- <Parameter Name="MoveSortNo">NULL</Parameter> --> <!-- <Parameter Name="DeleteCategory">0</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>