Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_fuzzysearch_ad

im_FuzzySearch_Ad

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-MethodPOST
HTTP-AuthOptional
Tags
Engine-Kategorieitem management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
NodeCharacteristicID ID des Merkmals für das die „unscharfe“ Suche durchgeführt werden soll
smallint3.5.13
FuzzyType0 0: Suche nach Elementen die KEINE Eigenschaft zu dem Merkmal haben
1: Suche nach Elementen die IRGENDEINE Eigenschaft zu dem Merkmal haben
tinyint3.5.13
IncludeInactiveNodes0 0: Es werden nur aktive Elemente berücksichtigt
1: Auch inaktive Elemente werden gesucht
bit3.5.13
FromDateNULL s. Prozedur-Beschreibung
datetime3.5.13
ToDateNULL s. Prozedur-Beschreibung
datetime3.5.13
LevelIDNULL Sollen nur Elemente auf einer bestimmten Hierarchie in Frage kommen, ist hier die entsprechende ID der Hierarchie zu übergeben
tinyint3.5.13
DomainTreeNodeIDNULL ID eines Elementes im Artikelbaum. Die Suche bezieht sich nur auf Nachfolger dieses Elementes.
integer3.5.13
FilterByCharacteristicIDNULL Nur Elemente, die „FilterByCharacValue“ als Eigenschaft zum Merkmal „FilterByCharacteristicID“ haben. (Achtung: Hierbei wird keine Vererbung berücksichtigt)
smallint3.5.13
FilterByCharacValueNULL Nur Elemente, die „FilterByCharacValues“ als Eigenschaft zum Merkmal „FilterByCharacteristicID“ haben. (Achtung: Hierbei wird keine Vererbung berücksichtigt)
varchar(1000)3.5.13
StartAtRowNo1 Ab welchem Datensatz (um durch eine größere Ergebnismenge „blättern“ zu können) soll die Rückgabemenge ausgegeben werden
smallint3.5.13
RowCount100 Wieviele Datensätze sollen maximal zurückgegeben werden („0“ für alle)
tinyint3.5.13
NegateFilterByParams0 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.
bit4.0.2

Rückgabe

(parameterunabhängig)

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“
smallint3.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“
smallint3.5.13
Product7)In Version 3.5.14 entfernt ! (siehe „NodeDescription“)
varchar(100)3.5.13
PrePredecessorsTreeNodeIDID des Vor-Vorgänger-Elementes im Artikelbaum des gefundenen Elementes
integer3.5.13
PrePredecessorsDescriptionBezeichnung des Vor-Vorgängers
varchar(100)3.5.13
PrePredecessorsLevelNoHierarchie des Vor-Vorgängers
tinyint3.5.13
PredecessorsTreeNodeIDID des Vorgänger-Elementes im Artikelbaum des gefundenen Elementes
integer3.5.13
PredecessorsDescriptionBezeichnung des Vorgängers
varchar(100)3.5.13
PredecessorsLevelNoHierarchie des Vorgängers
tinyint3.5.13
NodeDescriptionBezeichnung des gefundenen Artikel-Elementes
varchar(100)3.5.14
TreeNodeIDID des gefundenen Elementes im Artikelbaum
integer3.5.13
ActiveIst „TreeNodeID“ z.Zt. aktiviert ? („0“ : Nein, „1“ : Ja)
bit3.5.13
NodeIDID des gefundenen Artikel-Elementes
integer3.5.13
Sortierungen der Rückgabe

wenn RowCount = 0

  • PrePredecessorsTreeNodeID (aufsteigend)
  • PredecessorSortNo (absteigend)
  • SortNo (absteigend)

wenn RowCount > 0

  • TreeNodeID (aufsteigend)

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 8)
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameternur indirekt
-286Der Benutzer hat nicht die Berechtigung(en), Eigenschaften zu diesem(n) Merkmal(en) zu lesen/ändernnur indirekt
-284Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu modifizierennur indirekt
-283Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu ermittelnnur indirekt
-110Das (die) Element(e) ist (sind) nicht vorhandennur indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
7.0.1 2013-08-07Datentyp des Parameters „FilterByCharacValue“ erweitert [von 100 auf 1000]
6.5.3 2013-03-18Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung
5.1.5 2006-08-29Die intern verwendete Prozedur „_im_FuzzySearch“ hat einen weiteren Parameter bekommen ⇒ entspr. Anpassung
5.1.4 2006-08-14Explizites „ORDER BY“ eingefügt, um die Sortierung der Rückgabemenge zu garantieren
5.0.0 2004-12-21Interner 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-311. 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-11Neuer Parameter „NegateFilterByParams“
3.5.14 2002-01-23
3.5.13 2001-12-06Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

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 -
dStore_php
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();
engine/execute

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>
1)
Pflichtparameter sind unterstrichen
5) , 6) , 7)
Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.
8)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
9)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/im_fuzzysearch_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)