Prozedur für eine „unscharfe“ Suche von aktiven (und falls gewünscht auch inaktiven) Elementen innerhalb eines Bereichs: es werden die Elemente des Artikelbaums gesucht, die KEINE oder IRGENDEINE Eigenschaft zu einem bestimmten Merkmal haben.
Zusätzlich kann man eine Hierarchie angeben, auf der die Elemente sein müssen.
Desweitern kann optional eine Eigenschaft angegeben werden („FilterByCharacteristicID“ und „FilterByCharacValue“), die die Elemente zusätzlich haben müssen (es wird keine Vererbung gerücksichtigt !!), d.h. alle Artikel-Elemente, die diese Eigenschaft NICHT haben, sind NICHT in der Ergebnismenge. Setzt man „NegateFilterByParams“ auf „1“, sind NUR Elemente, die diese Eigenschaft NICHT haben, in der Ergebnismenge.
Wie gewohnt kann man sich mit Hilfe von „StartAtRowNo“ und „RowCount“ durch das Ergebnis „blättern“. Um alle Datensätze zu bekommen, gibt man „RowCount = 0“ an.
Die Parameter „FromDate“ und „ToDate“ bedeuten je nach Belegung folgendes :
1.) „FromDate“ UND „ToDate“ sind „NULL“ : Suche Elemente, die keine oder irgendeine Eigenschaft zum AKTUELLEN ZEITPUNKT (des Aufrufs der Prozedur) haben
2.) „FromDate“ is angegeben, „ToDate“ ist „NULL“ : Suche Elemente, die keine oder irgendeine Eigenschaft SEIT dem durch „FromDate“ angegebenen Zeitpunkt haben.
3.) „FromDate“ ist „NULL“, „ToDate“ is angegeben : Suche Elemente, die keine oder irgendeine Eigenschaft BIS zum durch „ToDate“ angegebenen Zeitpunkt haben.
4.) Sowohl „FromDate“ als auch „ToDate“ sind angegeben : Suche Elemente, die keine oder irgendeine Eigenschaft im angegebenen Zeitraum haben.
Sonderfall : „FromDate“ und „ToDate“ sind identisch ⇒ Suche Elemente, die keine oder irgendeine Eigenschaft ZUM angegebenen ZEITPUNKT haben.
Anmerkung : „FromDate < ToDate“ ist natürlich NICHT erlaubt.
HTTP-Method | POST |
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 für das die „unscharfe“ Suche durchgeführt werden soll | smallint | 3.5.13 | |
FuzzyType | 0 | 0: Suche nach Elementen die KEINE Eigenschaft zu dem Merkmal haben 1: Suche nach Elementen die IRGENDEINE Eigenschaft zu dem Merkmal haben | tinyint | 3.5.13 |
IncludeInactiveNodes | 0 | 0: Es werden nur aktive Elemente berücksichtigt 1: Auch inaktive Elemente werden gesucht | bit | 3.5.13 |
FromDate | NULL | s. Prozedur-Beschreibung | datetime | 3.5.13 |
ToDate | NULL | s. Prozedur-Beschreibung | datetime | 3.5.13 |
LevelID | NULL | Sollen nur Elemente auf einer bestimmten Hierarchie in Frage kommen, ist hier die entsprechende ID der Hierarchie zu übergeben | tinyint | 3.5.13 |
DomainTreeNodeID | NULL | ID eines Elementes im Artikelbaum. Die Suche bezieht sich nur auf Nachfolger dieses Elementes. | integer | 3.5.13 |
FilterByCharacteristicID | NULL | Nur Elemente, die „FilterByCharacValue“ als Eigenschaft zum Merkmal „FilterByCharacteristicID“ haben. (Achtung: Hierbei wird keine Vererbung berücksichtigt) | smallint | 3.5.13 |
FilterByCharacValue | NULL | Nur Elemente, die „FilterByCharacValues“ als Eigenschaft zum Merkmal „FilterByCharacteristicID“ haben. (Achtung: Hierbei wird keine Vererbung berücksichtigt) | varchar(1000) | 3.5.13 |
StartAtRowNo | 1 | Ab welchem Datensatz (um durch eine größere Ergebnismenge „blättern“ zu können) soll die Rückgabemenge ausgegeben werden | smallint | 3.5.13 |
RowCount | 100 | Wieviele Datensätze sollen maximal zurückgegeben werden („0“ für alle) | tinyint | 3.5.13 |
NegateFilterByParams | 0 | Wird nur berücksichtigt, falls die „FilterBy…“-Parameter angegeben sind ! Bei Angabe von „1“ für diesen Parameter sind nur Elemente in der Rückgabemenge, die die Eigenschaft „FilterByCharacValue“ zum Merkmal „FilterByCharacteristicID“ NICHT haben. | bit | 4.0.2 |
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.13 |
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.13 |
Product7) | In Version 3.5.14 entfernt ! (siehe „NodeDescription“) | varchar(100) | 3.5.13 |
PrePredecessorsTreeNodeID | ID des Vor-Vorgänger-Elementes im Artikelbaum des gefundenen Elementes | integer | 3.5.13 |
PrePredecessorsDescription | Bezeichnung des Vor-Vorgängers | varchar(100) | 3.5.13 |
PrePredecessorsLevelNo | Hierarchie des Vor-Vorgängers | tinyint | 3.5.13 |
PredecessorsTreeNodeID | ID des Vorgänger-Elementes im Artikelbaum des gefundenen Elementes | integer | 3.5.13 |
PredecessorsDescription | Bezeichnung des Vorgängers | varchar(100) | 3.5.13 |
PredecessorsLevelNo | Hierarchie des Vorgängers | tinyint | 3.5.13 |
NodeDescription | Bezeichnung des gefundenen Artikel-Elementes | varchar(100) | 3.5.14 |
TreeNodeID | ID des gefundenen Elementes im Artikelbaum | integer | 3.5.13 |
Active | Ist „TreeNodeID“ z.Zt. aktiviert ? („0“ : Nein, „1“ : Ja) | bit | 3.5.13 |
NodeID | ID des gefundenen Artikel-Elementes | integer | 3.5.13 |
wenn RowCount = 0
wenn RowCount > 0
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 | 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 | Datentyp des Parameters „FilterByCharacValue“ erweitert [von 100 auf 1000] |
6.5.3 | 2013-03-18 | Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung |
5.1.5 | 2006-08-29 | Die intern verwendete Prozedur „_im_FuzzySearch“ hat einen weiteren Parameter bekommen ⇒ entspr. Anpassung |
5.1.4 | 2006-08-14 | Explizites „ORDER BY“ eingefügt, um die Sortierung der Rückgabemenge zu garantieren |
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.11 | 2004-03-31 | 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.2 | 2003-06-11 | Neuer Parameter „NegateFilterByParams“ |
3.5.14 | 2002-01-23 | |
3.5.13 | 2001-12-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 POST 'http://<partner>-<project>.dstore.de/default/engine/im_FuzzySearch_Ad?NodeCharacteristicID=<value>'
Mit xmllint 9) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/im_FuzzySearch_Ad?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_FuzzySearch_Ad', array( 'NodeCharacteristicID' => <value>, // 'FuzzyType' => 0, // 'IncludeInactiveNodes' => 0, // 'FromDate' => NULL, // 'ToDate' => NULL, // 'LevelID' => NULL, // 'DomainTreeNodeID' => NULL, // 'FilterByCharacteristicID' => NULL, // 'FilterByCharacValue' => NULL, // 'StartAtRowNo' => 1, // 'RowCount' => 100, // 'NegateFilterByParams' => 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_FuzzySearch_Ad"> <Parameters> <Parameter Name="NodeCharacteristicID"><!-- smallint value --></Parameter> <!-- <Parameter Name="FuzzyType">0</Parameter> --> <!-- <Parameter Name="IncludeInactiveNodes">0</Parameter> --> <!-- <Parameter Name="FromDate">NULL</Parameter> --> <!-- <Parameter Name="ToDate">NULL</Parameter> --> <!-- <Parameter Name="LevelID">NULL</Parameter> --> <!-- <Parameter Name="DomainTreeNodeID">NULL</Parameter> --> <!-- <Parameter Name="FilterByCharacteristicID">NULL</Parameter> --> <!-- <Parameter Name="FilterByCharacValue">NULL</Parameter> --> <!-- <Parameter Name="StartAtRowNo">1</Parameter> --> <!-- <Parameter Name="RowCount">100</Parameter> --> <!-- <Parameter Name="NegateFilterByParams">0</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>