Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_getsimpleproductinfo_pu

im_GetSimpleProductInfo_Pu

Prozedur, um „einfache“ Informationen zu einem Produkt zu erhalten.

Zielsetzung dieser Prozedur ist es, mit so wenig Resourcen-Verbrauch (sprich I/Os) wie möglich, einer „öffentlichen“ Anwendung (i.d.R. ein „Webshop“) Daten zu einem Produkt (das ist ein Element der in „Settings“ zum Schlüssel „ProductLevelID“ definierten Hierarchie) zu liefern. Es werden insbesondere KEINE temporären Tabellen erstellt (was typischerweise einen „Flaschenhals“ darstellt) !

Solche Informationen werden immer nicht nur zum Produkt selbst, sondern auch (sofern vorhanden) zu den direkten Nachfolgern, den sogenannten Varianten, ermittelt.

Anmerkung zum Parameter „InformationIDList“ :
Aus internen (technischen) Gründen ist „InformationIDList“ zwar ein „varchar(255)“, es dürfen aber im Fall „TypeOfInformation IN (0,1)“ maximal „250“ Bytes übergeben werden, sonst gibt es einen Fehler („-504“) !

HTTP-MethodGET
HTTP-AuthOptional
Aliasim_GetSimpleProductInformation_Pu
Tags
Engine-Kategorieitem management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.1 (2013-08-07)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
ProductTreeNodeID ID eines Elementes im Artikelbaum, das zu einem Artikel-Element der Produkt-Hierarchie (in „Settings“ zum Schlüssel „ProductLevelID“ definiert) gehören muß
integer5.5.1
InformationIDList Wird „0“ oder „1“ für „TypeOfInformation“ angegeben, muß hier eine Liste (durch „¶“ getrennt) von „NodeCharacteristicID“s (zu denen Eigenschaften bzw. „Details“ ermittelt weden sollen) angegeben werden, sonst „BinaryCharacteristicValueID“s
varchar(255)5.5.1
TypeOfInformation0 Gibt an, welche Art von Information ermittelt werden soll :
„0“ : Artikel-Eigenschaften
„1“ : „Details“ zu Artikel-Eigenschaften
„2“ : „BinaryCodeIDs“ (die eine in „InformationIDList“ angegebene Eigeschaft besitzen)
tinyint5.5.1

Rückgabe

wenn TypeOfInformation = 0

Spaltenname Beschreibung SQL-Datentyp4) ab Version
TreeNodeID„ProductTreeNodeID“ oder die „TreeNodeID“ eines direkten Nachfolgers
integer5.5.1
NodeCharacteristicIDID eines in „InformationIDList“ angegebenen Merkmals.
Hinweis : Jede „TreeNodeID - NodeCharacteristicID“-Kombination ist eindeutig, eine Sortierung findet ausdrücklich NICHT statt, es werden nur Datensätze geliefert, bei denen „Value“ NICHT „NULL“ ist !
smallint5.5.1
ValueAktuelle, direkte, nicht rekursiv ausgewertete und auch nicht „formatierte“ Eigenschaft des zur „TreeNodeID“ zugehörigen Artikel-Elementes („NodeID“) zum Merkmal „NodeCharacteristicID“. Hinweis : Datums-Eigenschaften haben daher dasFormat „mm.dd.yyyy“ !
varchar(1000)5.5.1
ValueIDID der Eigenschaft „Value“
integer5.5.1
SortNoBestimmt die Reihenfolge von „Value“ innerhalb aller Werte zum Merkmal „NodeCharacteristicID“, wobei gilt : eine größere „SortNo“ bedeutet eine höhere Priorisierung (d.h. es muß quasi eine absteigende Sortierung angewandt werden).
integer5.5.1

wenn TypeOfInformation = 1

Spaltenname Beschreibung SQL-Datentyp5) ab Version
TreeNodeID„ProductTreeNodeID“ oder die „TreeNodeID“ eines direkten Nachfolgers
integer5.5.1
NodeCharacteristicIDID eines in „InformationIDList“ angegebenen Merkmals.
Hinweis : Jede „TreeNodeID - NodeCharacteristicID“-Kombination ist eindeutig, eine Sortierung findet ausdrücklich NICHT statt, es werden nur Datensätze geliefert, bei denen „Details“ vorhanden sind !
smallint5.5.1
Details„ValueDetails“, die zur aktuellen, direkten (nicht rekursiv ausgewerteten) Eigenschaft des zur „TreeNodeID“ zugehörigen Artikel-Elementes zum Merkmal „NodeCharacteristicID“ hinterlegt ist.
text5.5.1

wenn TypeOfInformation = 2

Spaltenname Beschreibung SQL-Datentyp6) ab Version
TreeNodeID„ProductTreeNodeID“ oder die „TreeNodeID“ eines direkten Nachfolgers
integer5.5.1
BinaryPropertyValueIDID einer Eigenschaft von „Binaries“, die in „InformationIDList“ angegeben wurde. Hinweis : Zu einer „TreeNodeID - BinaryCharacteristicValueID“-Kombination kann es MEHRERE Datensätze geben, eine Sortierung findet ausdrücklich NICHT statt !
integer5.5.1
BinaryCodeIDID eines „Binaries“, das dem zur „TreeNodeID“ zugehörigen Artikel-Element zugewiesen ist und die Eigenschaft „BinaryPropertyValueID“ besitzt
integer5.5.1

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 7)
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur direkt
-500Falsche Parameterdirekt und 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
-120Der Benutzer hat keine Berechtigung für das (die) Element(e)nur indirekt

XML-Schema

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

Historie

7.0.1 2013-08-07Datentyp der Rückgabespalte „Value“ hat sich erweitert [Fall „TypeOfInformation = 0“] ⇒ Anpassung der Doku
6.5.2 2013-02-261. Fehler : Bei Prüfung auf „varchar-Variable voll“ muß „datalength“ [nicht „char_length“] verwendet werden
2. Beschränkungs-Änderungen bzgl. „InformationIDList“
3. Bislang gab es keinen Fehler, wenn „NULL“ für „TypeOfInformation“ übergeben wurde
5.5.1 2008-07-29Erstmalig 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_GetSimpleProductInfo_Pu?ProductTreeNodeID=<value>&InformationIDList=<value>'

Mit xmllint 8) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/im_GetSimpleProductInfo_Pu?ProductTreeNodeID=<value>&InformationIDList=<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_GetSimpleProductInfo_Pu',
		array(
			'ProductTreeNodeID' => <value>,
			'InformationIDList' => '<value>',
			// 'TypeOfInformation' => 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_GetSimpleProductInfo_Pu">
			<Parameters>
				<Parameter Name="ProductTreeNodeID"><!-- integer value --></Parameter>
				<Parameter Name="InformationIDList"><!-- varchar value --></Parameter>
				<!-- <Parameter Name="TypeOfInformation">0</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
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_getsimpleproductinfo_pu.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)