Sucht im Artikelbaum nach Vorgängern zu einem bestimmten Element bzw. zu bestimmten Elementen.
Optional kann dabei die Anzahl Ebenen eingeschränkt werden oder es kann nur der (jeweilige) Vorgänger auf einer bestimmten Hierarchie ermittelt werden.
Anmerkung zum Parameter „IncludeRootLevel“ :
Es gibt besondere Elemente, die sogenannten „root“-Elemente. Dies sind Elemente mit der Hierarchie-Nummer (also „LevelNo“) „1“. Sie zeichnen sich außerdem auch dadurch aus, daß sie sich selbst als Vorgänger haben.
Es gibt nur ein „root“-Artikel-Element, dieses hat immer die ID (sowohl „NodeID“ als auch „TreeNodeID“) „0“. Es gibt noch sogenannte „Page-TreeNodes“ auf „root“-Ebene, die aber nicht zum Artikelbaum gehören, sondern zu statistischen Zwecken angelegt sein können (s.a. im_GetPageTreeNodes_Ad).
Jedes Element im Artikelbaum besitzt genau ein „root“-Element. Das „root“-Element von „TreeNodeID“ wird bei der Ermittlung der Vorgänger (also in dieser Prozedur) default-mäßig immer ausgeschlossen, ist also NICHT in der Ergebnismenge. Möchte man dieses Element aber gerne mit ausgegeben bekommen, ist „IncludeRootLevel“ auf „1“ zu setzen. Wenn das „root“-Element von „TreeNodeID“ aufgrund von „OnlyPredecessorOnLevel“ bzw. „HowManyLevels“ aber sowieso nicht in der Ergebnismenge ist, wird es auch bei „IncludeRootLevel = 1“ nicht mit ausgegeben !
D.h. „IncludeRootLevel = 1“ macht hauptsächlich nur Sinn, wenn „NULL“ für „OnlyPredecessorOnLevel“ und „HowManyLevels“ angegeben wird.
Anmerkung zum Parameter „GetNodeDescriptions“ :
Falls dieser Parameter mit „1“ oder „2“ belegt wird, ermittelt die Prozedur die Bezeichnungen der Vorgänger (in der gewünschten Sprache „LanguageID“).
Bei „GetNodeDescriptions = 1“ wird versucht, als Bezeichnung eine Eigenschaft zum Produktbezeichnungs-Merkmal (zuerst in der gewünschten Sprache „LanguageID“, dann in der Standardsprache) zu finden - wenn nicht vorhanden, dann wird die „NodeDescription“ herangezogen (wieder zuerst in der gewünschten, dann in der Standardsprache).
Übergibt man „GetNodeDescriptions = 2“ wird direkt die „NodeDescription“ herangezogen und erst gar nicht nach einer entsprechenden Eigenschaft gesucht.
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | item management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
TreeNodeID | ID eines Elementes im Artikelbaum, zu dem die Vorgänger ermittelt werden sollen. Bei Angabe von „NULL“ erwartet die Prozedur IDs in „tempdb.dbo.OneID“. | integer | 3.5.0 | |
LanguageID | 0 | ID der Wunschsprache für die Bezeichnungen der Artikelelemente | tinyint | 3.5.0 |
IncludeRootLevel | 0 | „0“ : „root“-Elemente sind grundsätzlich nicht in der Ergebnismenge „1“ : „root“-Elemente werden mit ausgegeben (nur sofern sie nicht durch z.B. „HowManyLevels“ sowieso nicht im Ergebnis vorkommen würden) (s. a. Beschreibung !) | bit | 3.5.0 |
IncludeMyLevel | 0 | Die ID(s) selbst, für die die Vorgänger ermittelt werden sollen… „0“ : …NICHT mit im Ergebnis ausgeben „1“ : … mit im Ergebnis ausgeben | bit | 3.5.0 |
GetNodeDescriptions | 1 | „0“ oder „NULL“ : Keine Bezeichnungen ermitteln „1“ : Ermittlung von Element-Bezeichnungen, wobei zuerst versucht wird, eine „Produktbezeichnungs“-Eigenschaft zu finden „2“ : Als Bezeichnung wird direkt die „NodeDescription“ verwendet (s. Beschreibung) | tinyint | 3.5.0 |
OnlyPredecessorOnLevel | NULL | Eine Hierarchie-Nummer („LevelNo“), die angibt, daß jeweils nur der Vorgänger dieser Hierarchie ausgegeben werden soll - in diesem Fall werden „IncludeRootLevel“, „IncludeMyLevel“, „HowManyLevels“ und „GetLevelNoInfo“ ignoriert ! | tinyint | 3.5.0 |
HowManyLevels | NULL | Gibt an, wieviele Vorgänger maximal ermittelt werden sollen | tinyint | 3.5.0 |
GetLevelNoInfo | 1 | Möchte man in der Rückgabemenge in der Spalte „LevelNo“ nicht die Nummer der Hierarchie des Vorgänger-Elementes ausgegeben bekommen, sondern die Information, um den wievielten Vorgänger es sich handelt, übergibt man hier „0“ | bit | 4.0.11 |
OrderDescByLevelNo | 0 | Bestimmt, ob die Rückgabemenge aufsteigend („0“) oder absteigend („1“) nach „LevelNo“ sortiert werden soll | bit | 4.0.11 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
TreeNodeID | ID eines Vorgänger-Elementes (von „TreeNodeID“) im Artikelbaum | integer | 3.5.0 |
NodeDescription | Bezeichnung des Vorgänger-Elementes. Immer „NULL“, falls „0“ oder „NULL“ für „GetNodeDescriptions“ angegeben wird ! | varchar(1000) | 3.5.0 |
LevelNo | Nummer der Hierarchie des Vorgänger-Elementes - eine höhere Nummer bedeutet eine niedrigere Hierarchie. Ist „GetLevelNoInfo = 0“ steht hier die Angabe, der wievielte Vorgänger „TreeNodeID“ von „TreeNodeID“ ist. | tinyint | 3.5.0 |
NodeID | ID des zur „TreeNodeID“ zugehörigen Artikel-Elementes | integer | 4.0.11 |
wenn OrderDescByLevelNo = 0
wenn OrderDescByLevelNo = 1
Spaltenname | Beschreibung | SQL-Datentyp5) | ab Version |
---|---|---|---|
TreeNodeID | Eine ID, die in „tempdb.dbo.OneID“ übergeben wurde | integer | 4.0.0 |
Predecessor | ID eines Vorgänger-Elementes von „TreeNodeID“ im Artikelbaum | integer | 4.0.0 |
NodeDescription | Bezeichnung des Vorgänger-Elementes „Predecessor“. Immer „NULL“, falls „0“ oder „NULL“ für „GetNodeDescriptions“ angegeben wird ! | varchar(1000) | 4.0.0 |
LevelNo | Nummer der Hierarchie des Vorgänger-Elementes - eine höhere Nummer bedeutet eine niedrigere Hierarchie. Ist „GetLevelNoInfo = 0“ steht hier die Angabe, der wievielte Vorgänger „Predecessor“ von „TreeNodeID“ ist. | tinyint | 4.0.0 |
NodeID | ID des zu „Predecessor“ zugehörigen Artikel-Elementes | integer | 4.0.11 |
wenn OrderDescByLevelNo = 0
wenn OrderDescByLevelNo = 1
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 6) |
---|---|---|
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | nur indirekt |
-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 |
-550 | Fehlender oder falscher Eintrag in Settings | 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 |
-500 | Falsche Parameter | direkt und indirekt |
-286 | Der Benutzer hat nicht die Berechtigung(en), Eigenschaften zu diesem(n) Merkmal(en) zu lesen/ändern | nur indirekt |
-284 | Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu modifizieren | nur indirekt |
-283 | Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu ermitteln | nur indirekt |
-220 | Es konnte keine Merkmal-ID für die Produktbezeichnung ermittelt werden | nur indirekt |
-110 | Das (die) Element(e) ist (sind) nicht vorhanden | direkt und indirekt |
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] |
7.0.1 | 2013-08-07 | 1. Datentyp der Rückgabespalte „NodeDescription“ hat sich erweitert ⇒ Auch Anpassung der Doku 2. Anpassungen des Quellcodes an den aktuellen Standard |
5.0.4 | 2005-09-26 | Fehler in einem Fall, wenn „TreeNodeID“ angegeben und „IncludeRootLevel = 0“ war |
5.0.0 | 2004-12-21 | Fehler falls für ein bestimmtes Element eine bestimmte Anzahl Vorgänger oder alle Vorgänger ermittelt werden sollten und „GetLevelNoInfo = 0“ war : u.U. wurde das „root“-Element immer mit ausgegeben, auch wenn „IncludeRootLevel = 0“ angegeben war ! |
4.0.11 | 2004-03-31 | Komplette Überarbeitung des Codes, u.a. neue Parameter „GetLevelNoInfo“ und „OrderDescByLevelNo“, neue Rückgabespalte „NodeID“, „GetNodeDescriptions“ ist jetzt „tinyint“ |
4.0.0 | 2003-04-03 | 1. Neue Möglichkeit der Übergabe mehrerer „TreeNodeID“s über „tempdb.dbo.OneID“ 2. Kleine Fehler in der Doku 3. Falscher Index-Angabe (für den „optimizer“) in einem Fall |
3.5.0 | 2000-11-23 | 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 GET 'http://<partner>-<project>.dstore.de/default/engine/im_GetPredecessors?TreeNodeID=<value>'
Mit xmllint 7) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/im_GetPredecessors?TreeNodeID=<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_GetPredecessors', array( 'TreeNodeID' => <value>, // 'LanguageID' => 0, // 'IncludeRootLevel' => 0, // 'IncludeMyLevel' => 0, // 'GetNodeDescriptions' => 1, // 'OnlyPredecessorOnLevel' => NULL, // 'HowManyLevels' => NULL, // 'GetLevelNoInfo' => 1, // 'OrderDescByLevelNo' => 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_GetPredecessors"> <Parameters> <Parameter Name="TreeNodeID"><!-- integer value --></Parameter> <!-- <Parameter Name="LanguageID">0</Parameter> --> <!-- <Parameter Name="IncludeRootLevel">0</Parameter> --> <!-- <Parameter Name="IncludeMyLevel">0</Parameter> --> <!-- <Parameter Name="GetNodeDescriptions">1</Parameter> --> <!-- <Parameter Name="OnlyPredecessorOnLevel">NULL</Parameter> --> <!-- <Parameter Name="HowManyLevels">NULL</Parameter> --> <!-- <Parameter Name="GetLevelNoInfo">1</Parameter> --> <!-- <Parameter Name="OrderDescByLevelNo">0</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>