Prozedur zur Produktsuche (Artikel-Elemente auf der in „Settings“ durch „ProductLevelID“ angegebenen Hierarchie) innerhalb eines Bereiches des Artikelbaums über Eigenschaften.
Such-Algorithmus : Falls …
Anmerkungen zum Parameter „IncludeValueDetails“:
1. Eine Suche über „Detail“-Eigenschaften (→ Tabelle „ValueDetails“) kostet u.U. erheblich mehr Performance !
2. Falls in „ValueDetails“ gesucht werden soll (also „1“ für diesen Parameter übergeben wird), können wir leider NICHT die Funktion „lower“ verwenden (Beschränkung des ASE für den Datentyp „text“) ! Daher wird gesucht nach…
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 |
---|---|---|---|---|
DomainTreeNodeID | 0 | ID eines Elementes im Artikelbaum. Die Suche bezieht sich nur auf Nachfolger (nicht nur direkte sondern auch Nachfolger der Nachfolger usw.) dieses Elementes. | integer | 3.5.11 |
NodeCharacteristicIDs | NULL | Eine Liste von IDs (durch das '¶'-Zeichen getrennt) von den Merkmalen, in deren Eigenschaften nach dem Suchbegriff „Value“ gesucht werden soll | varchar(255) | 3.5.11 |
Value | Der Suchbegriff | varchar(1000) | 3.5.11 | |
IsLike | 0 | „0“ : Gesucht wird nach „Value“ - „SearchCaseSensitive“ entscheidet, ob dabei Groß- und Kleinschreibung beachtet wird oder nicht „1“ : Gesucht wird nach „%<Value>%“ (d.h. „Value“ muß ENTHALTEN sein) - Groß- und Kleinschreibung wird NICHT beachtet ! | bit | 3.5.11 |
IncludeInherited | 1 | „0“ : Nur dirket zugewiesene Eigenschaften werden beachtet „1“ : Auch geerbte Eigenschaften werden berücksichtigt | bit | 3.5.11 |
StartAtRowNo | 1 | Erste Zeile der Ausgabe innerhalb des gesamten Suchergebnisses. Zusammen mit „RowCount“ kann man sich so durch das gesamte Ergebnis „blättern“. | smallint | 3.5.11 |
RowCount | 100 | Anzahl der auszugebenden Datensätze des Suchergebnisses („0“ für alle Datensätze). Zusammen mit „StartAtRowNo“ kann man sich so durch das gesamte Ergebnis „blättern“. | tinyint | 3.5.11 |
IncludeValueDetails | 0 | „0“ : Nach dem Suchbegriff wird nur in den Eigenschaften gesucht „1“ : Nach dem Suchbegriff wird auch in Detail-Informationen zu Eigenschaften („ValueDetails“) gesucht (siehe Beschreibung !) | bit | 3.5.11 |
IncludeVariants | 1 | Soll auch in den Varianten gesucht werden? (zurückgegeben werden aber trotzdem immer nur Produkt-Elemente !) | bit | 3.5.11 |
IncludeInactiveNodes | 1 | „0“ : Nur aktive Elemente berücksichtigen „1“ : Auch inaktive Elemente können im Suchergebnis sein | bit | 3.5.11 |
SearchCaseSensitive | 0 | Wird nur im Falls „IsLike = 0“ beachtet (!) und entscheidet darüber, ob Groß- und Kleinschreibung beachtet werden soll („1“) oder nicht („0“) | bit | 4.0.5 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
SortNo5) | Wird nicht zurückgegeben, aber zur Sortierung der Rückgabemenge verwendet. Bestimmt die Reihenfolge des Elementes „TreeNodeID“ innerhalb aller Nachfolger von „PredecessorTreeNodeID“ | smallint | 3.5.12 |
PredecessorSortNo6) | Wird nicht zurückgegeben, aber zur Sortierung der Rückgabemenge verwendet. Bestimmt die Reihenfolge des Elementes „PredecessorTreeNodeID“ innerhalb aller Nachfolger von „PrePredecessorTreeNodeID“ | smallint | 3.5.12 |
PrePredecessorsTreeNodeID | ID des Vor-Vorgänger-Elementes im Artikelbaum des gefundenen Produkte-Elementes | integer | 3.5.11 |
PrePredecessorsDescription | Bezeichnung des Vor-Vorgängers | varchar(100) | 3.5.11 |
PrePredecessorsLevelNo | Hierarchie des Vor-Vorgängers | tinyint | 3.5.12 |
PredecessorsTreeNodeID | ID des Vorgänger-Elementes im Artikelbaum des gefundenen Produkte-Elementes | integer | 3.5.11 |
PredecessorsDescription | Bezeichnung des Vorgängers | varchar(100) | 3.5.11 |
PredecessorsLevelNo | Hierarchie des Vorgängers | tinyint | 3.5.12 |
Product | Bezeichnung des gefundenen Produkt-Elementes | varchar(100) | 3.5.11 |
TreeNodeID | ID des gefundenen Produkte-Elementes im Artikelbaum | integer | 3.5.11 |
Active | Ist das Produkt-Element aktiviert oder nicht ? („0“ : Nein, „1“ : Ja) | bit | 3.5.11 |
NodeID | ID des gefundenen Produkt-Artikel-Elementes | integer | 3.5.11 |
MatchingValue | Eigenschaft der „NodeID“, durch die das Produkte-Element gefunden wurde | varchar(1000) | 3.5.11 |
(parameterunabängige Sortierung)
Count | Ausgabeparameter, um zu erfahren, wieviele Produkte insgesamt gefunden wurden |
Code | Beschreibung | Quelle 7) |
---|---|---|
-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 |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
-500 | Falsche Parameter | nur 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 |
-110 | Das (die) Element(e) ist (sind) nicht vorhanden | 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 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
7.0.1 | 2013-08-07 | 1. Datentyp-Erweiterung des Parameters „Value“ [von 100 auf 1000] 2. Datentyp der Rückgabespalte „MatchingValue“ hat sich erweitert ⇒ Auch Anpassung der Doku 3. Anpassungen des Quellcodes an den aktuellen Standard |
7.0.0 | 2013-06-04 | Kleiner Doku-Fehler [verwendete Prozeduren] |
6.5.3 | 2013-03-18 | Interne Anpassungen wg. UTF8-Unterstützung |
5.1.5 | 2006-08-29 | Fehler : „LockedNodeCharacteristics“ wurde bisher GAR NICHT beachtet ! |
5.0.0 | 2004-12-21 | Interner Fehler bzgl. des Aufrufs von „_mi_StartProcedure“ : Es dürfen in einem „ParameterNamesAndTypes_List…“-Parameter nicht mehr als 10 Elemente übergeben werden ! |
4.0.13 | 2004-05-18 | 1. Aufruf der Prozeduren „_mi_StartProcedure“, „_mi_FinishProcedure“ und „_mi_ChooseParamValueSeperator“ 2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur |
4.0.5 | 2003-10-04 | 1. Neue Parameter „Count“ und „SearchCaseSensitive“ 2. Überarbeitung der Doku |
4.0.0 | 2003-04-03 | Durch die im letzten Update eingeführte Sortierung funktionierte das „Blättern“ via „StartAtRowNo“ und „RowCount“ nicht mehr ! |
3.5.12 | 2001-10-17 | |
3.5.11 | 2001-09-06 | 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_SearchProductTreeNodes_Ad?Value=<value>'
Mit xmllint 8) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/im_SearchProductTreeNodes_Ad?Value=<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_SearchProductTreeNodes_Ad', array( 'Value' => '<value>', // 'DomainTreeNodeID' => 0, // 'NodeCharacteristicIDs' => NULL, // 'IsLike' => 0, // 'IncludeInherited' => 1, // 'StartAtRowNo' => 1, // 'RowCount' => 100, // 'IncludeValueDetails' => 0, // 'IncludeVariants' => 1, // 'IncludeInactiveNodes' => 1, // 'SearchCaseSensitive' => 0 ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray(); $OutputParams = $xml_result->getOutputParametersAsArray();
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_SearchProductTreeNodes_Ad"> <Parameters> <Parameter Name="Value"><!-- varchar value --></Parameter> <!-- <Parameter Name="DomainTreeNodeID">0</Parameter> --> <!-- <Parameter Name="NodeCharacteristicIDs">NULL</Parameter> --> <!-- <Parameter Name="IsLike">0</Parameter> --> <!-- <Parameter Name="IncludeInherited">1</Parameter> --> <!-- <Parameter Name="StartAtRowNo">1</Parameter> --> <!-- <Parameter Name="RowCount">100</Parameter> --> <!-- <Parameter Name="IncludeValueDetails">0</Parameter> --> <!-- <Parameter Name="IncludeVariants">1</Parameter> --> <!-- <Parameter Name="IncludeInactiveNodes">1</Parameter> --> <!-- <Parameter Name="SearchCaseSensitive">0</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>