Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_searchproducttreenodes_ad

im_SearchProductTreeNodes_Ad

Prozedur zur Produktsuche (Artikel-Elemente auf der in „Settings“ durch „ProductLevelID“ angegebenen Hierarchie) innerhalb eines Bereiches des Artikelbaums über Eigenschaften.

Such-Algorithmus : Falls …

  • „IsLike = 1“ → Suche zuerst mit dem „LIKE“-Operator (nach „%“ + Value + „%“) in „NodeCharacteristicValues“. Suche dann (zusätzlich) mögliche Eigenschaften über „SearchItems“ („… WHERE SearchValue = Value…“)
  • „IsLike = 0“ → Suche zuerst in „NodeCharacteristicValues“, wobei „SearchCaseSensitive“ entscheidet, ob case-sensitiv oder -insensitiv gesucht werden soll. Wenn NICHTS gefunden wurde, geht man über „SearchItems“, wobei nur die Datensätze mit „UseLike = 0“ beachtet werden

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…

  • dem exakten Vorkommen von „Value“
  • „Value“ komplett in Groß- bzw. in Kleinbuchstaben
  • „Value“ komplett in Kleinbuchstaben, mit Ausnahme des ersten Zeichens (auf dieses wird die „upper“-Funktion angewendet)
HTTP-MethodGET
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
DomainTreeNodeID0 ID eines Elementes im Artikelbaum. Die Suche bezieht sich nur auf Nachfolger (nicht nur direkte sondern auch Nachfolger der Nachfolger usw.) dieses Elementes.
integer3.5.11
NodeCharacteristicIDsNULL 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
IsLike0 „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 !
bit3.5.11
IncludeInherited1 „0“ : Nur dirket zugewiesene Eigenschaften werden beachtet
„1“ : Auch geerbte Eigenschaften werden berücksichtigt
bit3.5.11
StartAtRowNo1 Erste Zeile der Ausgabe innerhalb des gesamten Suchergebnisses. Zusammen mit „RowCount“ kann man sich so durch das gesamte Ergebnis „blättern“.
smallint3.5.11
RowCount100 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“.
tinyint3.5.11
IncludeValueDetails0 „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 !)
bit3.5.11
IncludeVariants1 Soll auch in den Varianten gesucht werden? (zurückgegeben werden aber trotzdem immer nur Produkt-Elemente !)
bit3.5.11
IncludeInactiveNodes1 „0“ : Nur aktive Elemente berücksichtigen
„1“ : Auch inaktive Elemente können im Suchergebnis sein
bit3.5.11
SearchCaseSensitive0 Wird nur im Falls „IsLike = 0“ beachtet (!) und entscheidet darüber, ob Groß- und Kleinschreibung beachtet werden soll („1“) oder nicht („0“)
bit4.0.5

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.12
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.12
PrePredecessorsTreeNodeIDID des Vor-Vorgänger-Elementes im Artikelbaum des gefundenen Produkte-Elementes
integer3.5.11
PrePredecessorsDescriptionBezeichnung des Vor-Vorgängers
varchar(100)3.5.11
PrePredecessorsLevelNoHierarchie des Vor-Vorgängers
tinyint3.5.12
PredecessorsTreeNodeIDID des Vorgänger-Elementes im Artikelbaum des gefundenen Produkte-Elementes
integer3.5.11
PredecessorsDescriptionBezeichnung des Vorgängers
varchar(100)3.5.11
PredecessorsLevelNoHierarchie des Vorgängers
tinyint3.5.12
ProductBezeichnung des gefundenen Produkt-Elementes
varchar(100)3.5.11
TreeNodeIDID des gefundenen Produkte-Elementes im Artikelbaum
integer3.5.11
ActiveIst das Produkt-Element aktiviert oder nicht ? („0“ : Nein, „1“ : Ja)
bit3.5.11
NodeIDID des gefundenen Produkt-Artikel-Elementes
integer3.5.11
MatchingValueEigenschaft der „NodeID“, durch die das Produkte-Element gefunden wurde
varchar(1000)3.5.11
Sortierung der Rückgabe

(parameterunabängige Sortierung)

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

Output-Parameter

CountAusgabeparameter, um zu erfahren, wieviele Produkte insgesamt gefunden wurden

Mögliche Return-Codes

Code Beschreibung Quelle 7)
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-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
-550Fehlender oder falscher Eintrag in Settingsnur 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-071. 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-04Kleiner Doku-Fehler [verwendete Prozeduren]
6.5.3 2013-03-18Interne Anpassungen wg. UTF8-Unterstützung
5.1.5 2006-08-29Fehler : „LockedNodeCharacteristics“ wurde bisher GAR NICHT beachtet !
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.13 2004-05-181. 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-041. Neue Parameter „Count“ und „SearchCaseSensitive“
2. Überarbeitung der Doku
4.0.0 2003-04-03Durch 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-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 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 -
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_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();
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_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>
1)
Pflichtparameter sind unterstrichen
5) , 6)
Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.
7)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
8)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/im_searchproducttreenodes_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)