Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_getvariantmatrix

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-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
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
integer3.5.0
YAxisCharacteristicID ID eines Merkmals. Die Eigenschaften der Varianten von „TreeNodeID“ zu diesem Merkmal sind in der Ergebnismatrix an der Y-Achse aufgetragen
integer3.5.0
XAxisCharacteristicID ID eines Merkmals. Die Eigenschaften der Varianten von „TreeNodeID“ zu diesem Merkmal sind in der Ergebnismatrix an der X-Achse aufgetragen
integer3.5.0
ValueCharacteristicIDNULL 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
integer3.5.0
DirectSuccessors1 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.
bit3.5.0
DirectProperties0 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.
bit3.5.0

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
SortNo_XAxisValueID5)Wird nicht ausgegeben, sondern nur zur Sortierung verwendet. Bestimmt die Reihenfolge der Eigenschaft „XAxisValue“ innerhalb aller Eigenschaften zum Merkmal „XAxisCharacteristicID“
smallint3.5.0
SortNo_YAxisValueID6)Wird nicht ausgegeben, sondern nur zur Sortierung verwendet. Bestimmt die Reihenfolge der Eigenschaft „YAxisValue“ innerhalb aller Eigenschaften zum Merkmal „YAxisCharacteristicID“
smallint3.5.0
TreeNodeIDID 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
integer3.5.0
HTreeNodeIDID des zur „TreeNodeID“ zugehörigen Elementes aus „HistoryTreeView“ (in dieser ist die Historie des gesamten Artikelbaums abgebildet)
integer3.5.0
YAxisValueIDID der Eigenschaft „YAxisValue“
integer3.5.0
YAxisValueEigenschaft der „TreeNodeID“ zum Merkmal „YAxisCharacteristicID“
varchar(1000)3.5.0
XAxisValueIDID der Eigenschaft „XAxisValue“
integer3.5.0
XAxisValueEigenschaft der „TreeNodeID“ zum Merkmal „XAxisCharacteristicID“
varchar(1000)3.5.0
ValueIDID der Eigenschaft „Value“
integer3.5.0
ValueEigenschaft 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 7)
-599Lizenz ist ungültig oder abgelaufennur 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
-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
-500Falsche Parameternur 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.7 2015-01-29„Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670
7.0.1 2013-08-071. 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-12Verlagerung des Codes auf die neue Prozedur „_im_GetVariantMatrix“
5.1.5 2006-08-29Fehler : „LockedNodeCharacteristics“ wurde bisher GAR NICHT beachtet !
5.1.1 2006-04-051. Konsequente Fehlerbehandlung
2. Umstellung bei der Ermittlung der benötigten Eigenschaften auf die neue „_im_GetPropertiesForTreeNodes“
4.0.1 2003-05-16Ab jetzt wird berücksichtigt, daß in „NodeProperties“ auch Gültigkeitszeiträume in der Zukunft vorhanden sein können !
3.5.0 2000-11-23Erstmalig 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_GetVariantMatrix?TreeNodeID=<value>&YAxisCharacteristicID=<value>&XAxisCharacteristicID=<value>'

Mit xmllint 8) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/im_GetVariantMatrix?TreeNodeID=<value>&YAxisCharacteristicID=<value>&XAxisCharacteristicID=<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_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();
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_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>
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_getvariantmatrix.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)