Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— |
engine:procedures:im_getsimpleproductinfo_pu [11.01.2016 ] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== 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-Method|GET | | ||
+ | |HTTP-Auth|Optional | | ||
+ | |Alias|im_GetSimpleProductInformation_Pu | | ||
+ | |Tags|{{tag>[im Get Simple Product Information Pu]}}| | ||
+ | |Engine-Kategorie|item management | | ||
+ | |Engine-Typ|Daten-Ermittlung | | ||
+ | |Letzte Aktualisierung|7.0.1 (2013-08-07)| | ||
+ | |||
+ | ==== Parameter ==== | ||
+ | |||
+ | ^Name ((Pflichtparameter sind unterstrichen)) ^Standard-Wert ^Beschreibung ((siehe [[webservice:engine_parameterconventions|Parameter-Konventionen engine/<Prozedur-Name>]])) ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^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ß\\ |integer|5.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| | ||
+ | |TypeOfInformation|0 |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)\\ |tinyint|5.5.1| | ||
+ | ==== Rückgabe ==== | ||
+ | |||
+ | === wenn TypeOfInformation = 0 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |TreeNodeID|"ProductTreeNodeID" oder die "TreeNodeID" eines direkten Nachfolgers\\ |integer|5.5.1 | | ||
+ | |NodeCharacteristicID|ID 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 !\\ |smallint|5.5.1 | | ||
+ | |Value|Aktuelle, 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 | | ||
+ | |ValueID|ID der Eigenschaft "Value"\\ |integer|5.5.1 | | ||
+ | |SortNo|Bestimmt 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).\\ |integer|5.5.1 | | ||
+ | === wenn TypeOfInformation = 1 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |TreeNodeID|"ProductTreeNodeID" oder die "TreeNodeID" eines direkten Nachfolgers\\ |integer|5.5.1 | | ||
+ | |NodeCharacteristicID|ID 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 !\\ |smallint|5.5.1 | | ||
+ | |Details|"ValueDetails", die zur aktuellen, direkten (nicht rekursiv ausgewerteten) Eigenschaft des zur "TreeNodeID" zugehörigen Artikel-Elementes zum Merkmal "NodeCharacteristicID" hinterlegt ist.\\ |text|5.5.1 | | ||
+ | === wenn TypeOfInformation = 2 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |TreeNodeID|"ProductTreeNodeID" oder die "TreeNodeID" eines direkten Nachfolgers\\ |integer|5.5.1 | | ||
+ | |BinaryPropertyValueID|ID 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 !\\ |integer|5.5.1 | | ||
+ | |BinaryCodeID|ID eines "Binaries", das dem zur "TreeNodeID" zugehörigen Artikel-Element zugewiesen ist und die Eigenschaft "BinaryPropertyValueID" besitzt\\ |integer|5.5.1 | | ||
+ | ==== Output-Parameter ==== | ||
+ | |||
+ | Die Prozedur hat keine Output-Parameter.==== Mögliche Return-Codes ==== | ||
+ | |||
+ | ^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber" und indirekt meint "von intern aufgerufenen Unterprozeduren")) ^ | ||
+ | |-621|Fehlender oder falscher Eintrag in PersonTypeSettings|nur indirekt| | ||
+ | |-550|Fehlender oder falscher Eintrag in Settings|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 direkt| | ||
+ | |-500|Falsche Parameter|direkt und 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| | ||
+ | |-120|Der 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 [[http://resources.dstore.de/xsd/webservice_SmartGate/Response/EngineProcedure_v1_0.xsd|Response/EngineProcedure_v1_0.xsd]] validiert. | ||
+ | ==== Historie ==== | ||
+ | |||
+ | |7.0.1 |2013-08-07|Datentyp der Rückgabespalte "Value" hat sich erweitert [Fall "TypeOfInformation = 0"] => Anpassung der Doku\\ | | ||
+ | |6.5.2 |2013-02-26|1. 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-29|Erstmalig 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: | ||
+ | * [[http://playground.dstore.de/index.php?proc=im_GetSimpleProductInfo_Pu|im_GetSimpleProductInfo_Pu im Engine Playground öffnen]] | ||
+ | == cURL == | ||
+ | Unformatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/im_GetSimpleProductInfo_Pu?ProductTreeNodeID=<value>&InformationIDList=<value>'</code>Mit xmllint ((I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org)) formatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/im_GetSimpleProductInfo_Pu?ProductTreeNodeID=<value>&InformationIDList=<value>' | xmllint --format -</code>== dStore_php == | ||
+ | <code 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(); | ||
+ | |||
+ | </code> | ||
+ | == engine/execute == | ||
+ | XML zur Ausführung mit der Methode [[:webservice:engine:execute|engine/execute]], z.B. per | ||
+ | curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>' | ||
+ | |||
+ | <code xml> | ||
+ | <?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></code> | ||