Ermittelt alle DIREKTEN (!) Eigenschaften (zu einem oder mehreren Merkmalen mit vordefinierten Werten !), die von Nachfolgern (optional nur bis zu einer bestimmten Hierarchie) eines Elementes des Artikelbaums verwendet werden oder einer bestimmten (via „tempdb.dbo.OneID“ zu übergebenden) Menge von Elementen zugewiesen ist.
Optional kann eine Eigenschaft angegeben werden („FilterByCharacteristicID“ und „FilterByCharacValue“), die die Elemente zusätzlich haben müssen (es wird keine Vererbung berücksichtigt !) bzw. NICHT haben müssen (falls „NegateFilterByParams = 1“), d.h. es sind nur Eigenschaften in der Ergebnismenge, zu denen es mindestens ein in Frage kommendes Element gibt, das die Eigenschaft „FilterByCharacValue“ zum Merkmal „FilterByCharacteristicID“ hat bzw. NICHT hat (falls „NegateFilterByParams = 1“).
Zu den gefundenen Eigenschaften kann man sich zusätzlich die (jeweils kleinste) ID eines „Binaries“ ausgeben lassen, das der jeweiligen Eigenschaft zugewiesen ist und eine bestimmte Eigenschaft besitzt.
Bei der Ermittlung der verwendeten Eigenschaften gibt es im Fall „IDsInOneID = 0“ (wenn also Nachfolger-Elemente des durch „TreeNodeID“ angegebenen Elementes beachtet werden sollen) prinzipiell zwei Vorgehensweisen :
Methode 1 : Alle Nachfolger von „TreeNodeID“ ermitteln und dann zu diesen die verschiedenen Eigenschaften zum Merkmal „NodeCharacteristicID“ feststellen
Methode 2 : Von ALLEN Artikel-Elementen die Eigenschaft zu „NodeCharacteristicID“ ermitteln und anschließend diejenigen herausfiltern, die NICHT von Artikel-Elementen verwendet werden, zu denen es ein entsprechendes Element des Artikelbaums („TreeNodeID“) gibt, das unterhalb von „TreeNodeID“ liegt.
Die Prozedur bestimmt standardmäßig selbst, welches Vorgehen wahrscheinlich günstiger ist. Seit Version 3.5.9 kann man aber auch angeben, welche der beiden Methoden die Prozedur verwenden soll.
Anmerkungen zum Parameter „IncludeNumberOfNodesInResult“ und zur Rückgabespalte „NumberOfNodes“ :
Um herauszufinden, von wievielen Elementen eine Eigenschaft verwendet wird, kann man den Parameter „IncludeNumberOfNodesInResult“ angeben. Die Anzahl wird dann in der Spalte „NumberOfNodes“ zurückgegeben. Es gibt folgende mögliche Werte für den besagten Parameter :
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 |
---|---|---|---|---|
NodeCharacteristicID | ID des Merkmals, zu dem verwendete Eigenschaften ermittelt werden sollen. Möchte man die Eigenschaften zu mehreren Merkmalen ermitteln lassen, gibt man „NULL“ an und füllt „CharacteristicIDList“ entsprechend. | smallint | 3.5.0 | |
TreeNodeID | 0 | Wird nur im Fall „IDsInOneID = 0“ beachtet ! ID eines Elementes im Artikelbaum. Bei der Suche nach aktuell verwendeten Eigenschaften sollen nur die Elemente des Artikelbaums betrachtet werden, die Nachfolger dieses Elementes sind. | integer | 3.5.0 |
MaxLevelNo | 6 | Bei der Suche nach aktuell verwendeten Eigenschaften werden nur die Elemente unterhalb „TreeNodeID“ beachtet, deren Hierarchie-Nummer kleiner oder gleich diesem Wert ist | tinyint | 3.5.8 |
BinaryCharacteristicValueID | NULL | ID einer Eigenschaft die „Binaries“ haben können. Falls hier „NULL“ angegeben ist, werden zu den gefundenen Eigenschaften ALLE zugeordneten „Binaries“ ausgegeben, sonst jeweils nur das Binärobjekt mit der KLEINSTEN ID, das diese Eigenschaft besitzt. | integer | 3.5.8 |
Method | NULL | Bestimmt die Vorgehensweise: „1“ : Nachfolger von „TreeNodeID“ und dann die Eigenschaften ermitteln „2“ : Eigenschaften ermitteln, aber nur die ausgeben, die von „TreeNodeID“-Nachfolgern verwendet werden „NULL“ : Günstigste Methode wird geschätzt | tinyint | 3.5.9 |
FilterByCharacteristicID | NULL | Es sind nur Eigenschaften im Ergebnis, zu denen es mindestens ein Element unterhalb von „TreeNodeID“ gibt, das die Eigenschaft „FilterByCharacValue“ zum Merkmal „FilterByCharacteristiciD“ hat. (Achtung: Hierbei wird keine Vererbung berücksichtigt) | smallint | 3.5.12 |
FilterByCharacValue | NULL | Es sind nur Eigenschaften im Ergebnis, zu denen es mindestens ein Element unterhalb von „TreeNodeID“ gibt, das die Eigenschaft „FilterByCharacValue“ zum Merkmal „FilterByCharacteristiciD“ hat. (Achtung: Hierbei wird keine Vererbung berücksichtigt) | varchar(1000) | 3.5.12 |
NegateFilterByParams | 0 | Nur relevant, falls die „FilterBy…“-Parameter angegeben sind ! „1“ bedeutet, daß nur Eigenschaften in der Rückgabemenge sind, zu denen es mindestens ein Element unterhalb von „TreeNodeID“ gibt, das die Eigenschaft „FilterByCharacValue“ NICHT hat. | bit | 4.0.2 |
IncludeNumberOfNodesInResult | 0 | Bestimmt den Wert der Rückgabespalte „NumberOfNodes“ (s. a. Beschreibung !): „0“ : Immer „-1“ „1“ : Anzahl „TreeNodeID“s „2“ : Anzahl „NodeID“s „3“ : Anzahl „Predecesssor“ | tinyint | 5.1.3 |
IDsInOneID | 0 | Gibt an, welche Elemente bei der Ermittlung der Eigenschaften berücksichtigt werden sollen : „0“ : Alle Elemente unterhalb von „TreeNodeID“ „1“ : In „tempdb.dbo.OneID“ übergebene „NodeID“s „2“ : In „tempdb.dbo.OneID“ übergebene „TreeNodeID“s | tinyint | 5.5.0 |
CharacteristicIDList | NULL | Wird nur beachtet, wenn „NULL“ für „NodeCharacteristicID“ übergeben wird ! Eine Liste von IDs (durch „¶“ getrennt) von Merkmalen, zu denen die jeweils verwendeten Eigenschaften ermittelt werden sollen. | varchar(240) | 5.5.0 |
GetValueDetails | 0 | Möchte man „Details“ zu den ermittelten Eigenschaften ausgegeben bekommen, übergibt man hier „1“ (s. Rückgabespalte „Details“). | bit | 6.0.1 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
SortNo5) | Wird nicht ausgegeben, sondern nur zur Sortierung verwendet. Bestimmt die Reihenfolge der Eigenschaft „Value“ innerhalb aller Eigenschaften zum Merkmal „NodeCharacteristicID“ | smallint | 3.5.0 |
NodeCharacteristicID | ID des Merkmals, zu dem die Eigenschaft „ValueID“ gehört | smallint | 5.5.0 |
ValueID | ID der Eigenschaft „Value“ | integer | 3.5.0 |
Value | Eine momentan verwendete Eigenschaft | varchar(1000) | 3.5.0 |
BinaryCodeID | ID eines „Binaries“, das der Eigenschaft „Value“ zugeordnet ist. Falls keine „BinaryCharacteristicValueID“ angegeben ist, werden alle zugewiesenen „Binaries“ ausgegeben, ansonsten nur das Binärobjekt mit der KLEINSTEN ID, das diese Eigenschaft besitzt. | integer | 3.5.8 |
NumberOfNodes | Je nach „IncludeNumberOfNodesInResult“ steht hier die Anzahl Elemente, die „ValueID“ (indirekt) besitzen (s. Beschreibung !) „0“ : Immer „-1“ „1“ : Anzahl „TreeNodeID“s „2“ : Anzahl „NodeID“s „3“ : Anzahl „Predecesssor“ | integer | 5.1.3 |
(parameterunabängige Sortierung)
Spaltenname | Beschreibung | SQL-Datentyp6) | ab Version |
---|---|---|---|
SortNo7) | Wird nicht ausgegeben, sondern nur zur Sortierung verwendet. Bestimmt die Reihenfolge der Eigenschaft „Value“ innerhalb aller Eigenschaften zum Merkmal „NodeCharacteristicID“ | smallint | 3.5.0 |
NodeCharacteristicID | ID des Merkmals, zu dem die Eigenschaft „ValueID“ gehört | smallint | 5.5.0 |
ValueID | ID der Eigenschaft „Value“ | integer | 3.5.0 |
Value | Eine momentan verwendete Eigenschaft | varchar(1000) | 3.5.0 |
BinaryCodeID | ID eines „Binaries“, das der Eigenschaft „Value“ zugeordnet ist. Falls keine „BinaryCharacteristicValueID“ angegeben ist, werden alle zugewiesenen „Binaries“ ausgegeben, ansonsten nur das Binärobjekt mit der KLEINSTEN ID, das diese Eigenschaft besitzt. | integer | 3.5.8 |
NumberOfNodes | Je nach „IncludeNumberOfNodesInResult“ steht hier die Anzahl Elemente, die „ValueID“ (indirekt) besitzen (s. Beschreibung !) „0“ : Immer „-1“ „1“ : Anzahl „TreeNodeID“s „2“ : Anzahl „NodeID“s „3“ : Anzahl „Predecesssor“ | integer | 5.1.3 |
Details | Details zur Eigenschaft „Value“ | text | 6.0.1 |
(parameterunabängige Sortierung)
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 8) |
---|---|---|
-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 | direkt und indirekt |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | 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 |
-120 | Der Benutzer hat keine Berechtigung für das (die) Element(e) | nur indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | „Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670 |
7.0.1 | 2013-08-07 | 1. Datentyp-Erweiterung des Parameters „FilterByCharacValue“ [von 100 auf 1000] 2. Datentyp der Rückgabespalte „Value“ hat sich erweitert ⇒ Anpassung der Doku |
6.5.2 | 2013-02-26 | Fehler : Bei der Überprüfung, ob eine „varchar“-Variable „voll“ ist, muß die Funktion „datalength“ [nicht „char_length“] verwendet werden |
6.0.1 | 2010-07-20 | 1.) Neuer Parameter „GetValueDetails“ 2.) Neue Rückgabespalte „Details“ |
5.5.1 | 2008-07-29 | Berücksichtigung des neuen „Settings“-Eintrags „AssignmentMethodForListVariables“ |
5.5.0 | 2008-01-07 | 1. Neue Parameter „IDsInOneID“ und „CharacteristicIDList“ 2. Neue Rückgabespalte „NodeCharacteristicID“ 3. Ausgabe an die Standard-Ausgabe [via „print“] im Fehler-Fall „-500“, die nähere Informationen über die Ursache enthält |
5.1.3 | 2006-07-27 | 1. Interne Anpassungen, da „_im_GetUsedValues“ überarbeitet wurde 2. Optimierung der Abschätzung im Fall „Method = NULL“ 3. Neue Sortierung der Ergebnismenge 4. Neuer Parameter „IncludeNumberOfNodesInResult“ 5. Neue Rückgabespalte „NumberOfNodes“ |
5.1.1 | 2006-04-05 | 1. Optimierung des Zugriffs auf „NodeProperties“ (bedingt durch die Änderung dieser Tabelle in 5.1.0) 2. Konsequente Fehlerbehandlung |
4.0.2 | 2003-06-11 | Neuer Parameter „NegateFilterByParams“ |
4.0.1 | 2003-05-16 | Ab jetzt wird berücksichtigt, daß in „NodeProperties“ auch Gültigkeitszeiträume in der Zukunft vorhanden sein können ! |
3.5.13 | 2001-12-06 | |
3.5.12 | 2001-10-17 | |
3.5.9 | 2001-06-16 | |
3.5.8 | 2001-05-19 | |
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_GetUsedValues_Pu?NodeCharacteristicID=<value>'
Mit xmllint 9) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/im_GetUsedValues_Pu?NodeCharacteristicID=<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_GetUsedValues_Pu', array( 'NodeCharacteristicID' => <value>, // 'TreeNodeID' => 0, // 'MaxLevelNo' => 6, // 'BinaryCharacteristicValueID' => NULL, // 'Method' => NULL, // 'FilterByCharacteristicID' => NULL, // 'FilterByCharacValue' => NULL, // 'NegateFilterByParams' => 0, // 'IncludeNumberOfNodesInResult' => 0, // 'IDsInOneID' => 0, // 'CharacteristicIDList' => NULL, // 'GetValueDetails' => 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_GetUsedValues_Pu"> <Parameters> <Parameter Name="NodeCharacteristicID"><!-- smallint value --></Parameter> <!-- <Parameter Name="TreeNodeID">0</Parameter> --> <!-- <Parameter Name="MaxLevelNo">6</Parameter> --> <!-- <Parameter Name="BinaryCharacteristicValueID">NULL</Parameter> --> <!-- <Parameter Name="Method">NULL</Parameter> --> <!-- <Parameter Name="FilterByCharacteristicID">NULL</Parameter> --> <!-- <Parameter Name="FilterByCharacValue">NULL</Parameter> --> <!-- <Parameter Name="NegateFilterByParams">0</Parameter> --> <!-- <Parameter Name="IncludeNumberOfNodesInResult">0</Parameter> --> <!-- <Parameter Name="IDsInOneID">0</Parameter> --> <!-- <Parameter Name="CharacteristicIDList">NULL</Parameter> --> <!-- <Parameter Name="GetValueDetails">0</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>