Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_getvariantmatrix

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

engine:procedures:im_getvariantmatrix [11.01.2016 ]
engine:procedures:im_getvariantmatrix [11.01.2016 ] (aktuell)
Zeile 1: Zeile 1:
 +===== im_GetVariantMatrix =====
 +
 +Ermittelt zu einem Element des Artikelbaums die "​Varianten-Nachfolger"​-Elemente und gibt eine Ergebnismenge zurück, die man als Matrix darstellen kann. Die Varianten müssen sich durch 1 oder 2 Eigenschaft(en) unterscheiden - und ein Aufruf dieser Prozedur macht eigentlich nur für Produkt-Elemente Sinn.\\ ​
 +
 +Zu diesem Zweck ist die Ausgabemenge zuerst nach den Eigenschaften der Varianten zum Merkmal "​YAxisCharacteristicID"​ sortiert und dann nach den Eigenschaften zum Merkmal "​XAxisCharacteristicID"​.\\ Ein Durchlaufen der Rückgabemenge von oben nach unten entspricht dabei dem zeilenweise Durchlaufen einer entsprechenden Matrix von links nach rechts. Eine neue Matrixzeile beginnt an der Stelle, an der in der Rückgabe-Spalte "​YAxisValue"​ ein neuer Wert auftaucht. Kombinationen,​ zu denen es keine Variante gibt, enthalten dann in den Rückgabe-Spalten "​TreeNodeID"​ und "​HTreeNodeID"​ den Wert "​NULL"​.\\ ​
 +
 +Zusätzlich kann für jede Variante noch die Eigenschaft zu einem weiteren Merkmal ("​->​ ValueCharacteristicID"​) ermittelt werden.\\ ​
 +|HTTP-Method|GET |
 +|HTTP-Auth|Optional |
 +|Tags|{{tag>​[im Get Variant Matrix]}}|
 +|Engine-Kategorie|item management |
 +|Engine-Typ|Daten-Ermittlung |
 +|Letzte Aktualisierung|7.0.7 (2015-01-29)|
 +
 +==== 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 ^
 +|__TreeNodeID__| |ID eines Elementes im Artikelbaum,​ zu dem alle "​Varianten-Nachfolger"​-Elemente ermittelt und als eine Ergebnismenge zurückgeliefert werden sollen, die man als Matrix darstellen kann\\ |integer|3.5.0|
 +|__YAxisCharacteristicID__| |ID eines Merkmals. Die Eigenschaften der Varianten von "​TreeNodeID"​ zu diesem Merkmal sind in der Ergebnismatrix an der Y-Achse aufgetragen\\ |integer|3.5.0|
 +|__XAxisCharacteristicID__| |ID eines Merkmals. Die Eigenschaften der Varianten von "​TreeNodeID"​ zu diesem Merkmal sind in der Ergebnismatrix an der X-Achse aufgetragen\\ |integer|3.5.0|
 +|ValueCharacteristicID|NULL |Optionale Angabe einer weiteren ID eines Merkmals. Für jede Variante der "​TreeNodeID"​ wird dann die Eigenschaft zu diesem Merkmal ermittelt und in der Ergebnismatrix an der Stelle, die die jeweilige Variante kennzeichnet,​ eingetragen\\ |integer|3.5.0|
 +|DirectSuccessors|1 |Prinzipiell kann es sein, daß zwischen der "​TreeNodeID"​ und den Varianten noch andere Elemente sind. Die Ausführung der Prozedur beschleunigt sich aber, wenn bekannt ist, daß die Varianten DIREKTE Nachfolger sind - das gibt man durch diesen Parameter an.\\ |bit|3.5.0|
 +|DirectProperties|0 |Falls ALLE Varianten die Eigenschaften zu "​YAxisCharacteristicID",​ "​XAxisCharacteristicID"​ und "​ValueCharacteristicID"​ DIREKT zugewiesen haben, kann man durch Angabe des Wertes "​1"​ für diesen Parameter einen erheblichen Performance-Gewinn erreichen.\\ |bit|3.5.0|
 +==== Rückgabe ====
 +
 +=== (parameterunabhängig) ===
 +
 +^Spaltenname ​ ^Beschreibung ^SQL-Datentyp((siehe [[:​webservice:​engine_datatypes|Datentypen im Bereich "​engine"​]])) ^ab Version ^
 +|//​SortNo_XAxisValueID((Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.))//​|Wird nicht ausgegeben, sondern nur zur Sortierung verwendet. Bestimmt die Reihenfolge der Eigenschaft "​XAxisValue"​ innerhalb aller Eigenschaften zum Merkmal "​XAxisCharacteristicID"​\\ |smallint|3.5.0 |
 +|//​SortNo_YAxisValueID((Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.))//​|Wird nicht ausgegeben, sondern nur zur Sortierung verwendet. Bestimmt die Reihenfolge der Eigenschaft "​YAxisValue"​ innerhalb aller Eigenschaften zum Merkmal "​YAxisCharacteristicID"​\\ |smallint|3.5.0 |
 +|TreeNodeID|ID eines Elementes des Artikelbaums,​ das Nachfolger von "​TreeNodeID"​ ist und dessen zugehöriges Artikel-Element ("​NodeID"​) sich auf der "​Varianten"​-Hierarchie (das ist die mit der größten "​LevelNo"​) befindet\\ |integer|3.5.0 |
 +|HTreeNodeID|ID des zur "​TreeNodeID"​ zugehörigen Elementes aus "​HistoryTreeView"​ (in dieser ist die Historie des gesamten Artikelbaums abgebildet)\\ |integer|3.5.0 |
 +|YAxisValueID|ID der Eigenschaft "​YAxisValue"​\\ |integer|3.5.0 |
 +|YAxisValue|Eigenschaft der "​TreeNodeID"​ zum Merkmal "​YAxisCharacteristicID"​\\ |varchar(1000)|3.5.0 |
 +|XAxisValueID|ID der Eigenschaft "​XAxisValue"​\\ |integer|3.5.0 |
 +|XAxisValue|Eigenschaft der "​TreeNodeID"​ zum Merkmal "​XAxisCharacteristicID"​\\ |varchar(1000)|3.5.0 |
 +|ValueID|ID der Eigenschaft "​Value"​\\ |integer|3.5.0 |
 +|Value|Eigenschaft der "​TreeNodeID"​ zum Merkmal "​ValueCharacteristicID"​\\ |varchar(1000)|3.5.0 |
 +
 +== Sortierung der Rückgabe ==
 +
 +(parameterunabängige Sortierung)
 +  * SortNo_YAxisValueID (absteigend)
 +  * SortNo_XAxisValueID (absteigend)
 +
 +==== 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"​)) ^
 +|-599|Lizenz ist ungültig oder abgelaufen|nur indirekt|
 +|-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|
 +|-500|Falsche Parameter|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.7 |2015-01-29|"​Start-/​Finish-Procedure"​-Logik eingebaut, s. Ticket #​3670\\ ​ |
 +|7.0.1 |2013-08-07|1. Datentyp der Rückgabespalten "​YAxisValue",​ "​XAxisValue"​ und "​Value"​ hat sich erweitert => Anpassung der Doku\\ 2. Anpassungen des Quellcodes an den aktuellen Standard\\ ​ |
 +|5.1.10 |2007-03-12|Verlagerung des Codes auf die neue Prozedur "​_im_GetVariantMatrix"​\\ ​ |
 +|5.1.5 |2006-08-29|Fehler : "​LockedNodeCharacteristics"​ wurde bisher GAR NICHT beachtet !\\  |
 +|5.1.1 |2006-04-05|1. Konsequente Fehlerbehandlung\\ 2. Umstellung bei der Ermittlung der benötigten Eigenschaften auf die neue "​_im_GetPropertiesForTreeNodes"​\\ ​ |
 +|4.0.1 |2003-05-16|Ab jetzt wird berücksichtigt,​ daß in "​NodeProperties"​ auch Gültigkeitszeiträume in der Zukunft vorhanden sein können !\\  |
 +|3.5.0 |2000-11-23|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_GetVariantMatrix|im_GetVariantMatrix im Engine Playground öffnen]]
 +== cURL ==
 +Unformatierte Ausgabe:
 +<code bash>
 +curl -X GET  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​im_GetVariantMatrix?​TreeNodeID=<​value>&​YAxisCharacteristicID=<​value>&​XAxisCharacteristicID=<​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_GetVariantMatrix?​TreeNodeID=<​value>&​YAxisCharacteristicID=<​value>&​XAxisCharacteristicID=<​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_GetVariantMatrix',​
 + array(
 + '​TreeNodeID'​ => <​value>,​
 + '​YAxisCharacteristicID'​ => <​value>,​
 + '​XAxisCharacteristicID'​ => <​value>,​
 + // '​ValueCharacteristicID'​ => NULL,
 + // '​DirectSuccessors'​ => 1,
 + // '​DirectProperties'​ => 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_GetVariantMatrix">​
 + <​Parameters>​
 + <​Parameter Name="​TreeNodeID"><​!-- integer value --></​Parameter>​
 + <​Parameter Name="​YAxisCharacteristicID"><​!-- integer value --></​Parameter>​
 + <​Parameter Name="​XAxisCharacteristicID"><​!-- integer value --></​Parameter>​
 + <!-- <​Parameter Name="​ValueCharacteristicID">​NULL</​Parameter>​ -->
 + <!-- <​Parameter Name="​DirectSuccessors">​1</​Parameter>​ -->
 + <!-- <​Parameter Name="​DirectProperties">​0</​Parameter>​ -->
 + </​Parameters>​
 + </​Procedure>​
 + </​Batch>​
 +</​ListOfBatches></​code>​
  
engine/procedures/im_getvariantmatrix.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)