Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_createproductratsubjects_ad

im_CreateProductRatSubjects_Ad

Legt Produktbewertungen zu Produkt-Elementen aus dem Artikelbaum an, zu denen später Abstimmungen durchgeführt werden können.

In „tempdb.dbo.AnyValues“ sind die möglichen Bewertungen („RatingValues“) zu übergeben :

  • ID : Reihenfolge der Werte, entspricht der „SortNo“ in „RatingValues“ (es wird aufsteigend sortiert)
  • Value : Eine Bewertung („gut“, „miserabel“ o.ä.)

Alternativ kann eine „NodeCharacIDForRatingValues“ angegeben werden; dann werden alle Eigenschaften zu diesem Merkmal als Bewertungen genommen. (Hintergrund: somit können - über „BinariesForValues“ - die Bewertungen symbolisiert werden [Daumen oben, Daumen unten etc.])

Hinweise :

1.) „TreeNodeID“s deren zugeörige „SetID“ (Spalte „ID2“ bzw. „RatingSubjectSetID“) nicht existiert, werden NICHT ignoriert und es gibt auch KEINEN Fehler; es wird eben KEINE Zuordnung zu einem Set gemacht, die „RatingSubject“s werden aber angelegt.

2.) Die „RatingSubjet“s werden nach dem Muster <TreeNodeID> + '_' + <NodeDesccription> (in Version 3.5.10 : <NodeDesccription> + '_' + <TreeNodeID>) angelegt, da es einen eindeutigen Index auf „RatingSubject“ in der Tabelle „RatingSubjects“ gibt.

3.) Man kann die „RatingSubjects“ zu einem Element über die „TableID“ („3“ für „TreeView“) und „TableKeyID“ (entsprechende „TreeNodeID“) wiederfinden.

4.) Ist eine „NodeCharacIDForRatingValues“ angegeben, kann man die Eigenschaften zu diesem Merkmal in „RatingValues“ über „TableID“ („2“ für „NodeCharacteristicValues“) und „TableKeyID“ (entsprechende „ValueID“) wiederfinden.

5.) Die „RatingValues“ - egal ob über „tempdb.dbo.AnyValues“ übergeben oder duch „NodeCharacIDForRatingValues“ angegeben dürfen jeweils nicht mehr als 100 Bytes enthalten, sonst gibt es einen Fehler („-500“) !

HTTP-MethodPOST
HTTP-AuthOptional
Aliasim_CreateProductRatingSubjects_Ad
Tags
Engine-Kategorieconfigurations
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
Description Beschreibung zum „RatingSubject“ (Im Regelfall wird hier die Frage hinterlegt - z.B. „Wie findest Du dieses Produkt ?“)
varchar(255)3.5.10
KeepRatingsInHours Wie lange sollen die Abstimmungen gespeichert werden ?
integer3.5.10
KeepRatingStatisticsInDays Wie lange sollen die (kummulierten) Abstimmungen gehalten werden ?
integer3.5.10
LockCriteria3 Wie soll ein Benutzer identifiziert werden, um zu erkennen, ob er schon abgestimmt hat ?
„0“ : Keine Identifizierung
„1“ : Anhand der „PersonID“
„2“ : Durch die IP-Adresse („VisitorInformation“ zur „InformationTypeID = 1“)
„3“ : Anhand der „VisitorID“
tinyint3.5.10
LockPeriodInMinutes10 Falls ein Benutzer (der nach einem durch „LockCriteria“ festgelegten Kriterium identifiziert wird) bereits zum Gegenstand abgestimmt hat, werden innerhalb dieser angegebenen Anzahl von Minuten (nach der letzten Abstimmung) weitere Abstimmungen abgelehnt
integer3.5.10
CreateForAllProducts1 „0“ : Es werden zu den in „tempdb.dbo.TwoIDs“ angegebenen Elementen Produktbewertungen generiert
„1“ : Die Prozedur generiert „Ratings“ für alle aktiven / aktiven und inaktiven (je nach „OnlyActiveProducts“) Elemente
bit3.5.10
OnlyActiveProducts1 Wird nur im Fall „CreateForAllProducts = 1“ beachtet und gibt an, ob nur die aktiven Elemente des Artikelbaums berücksichtigt werden sollen oder auch die inaktiven
bit3.5.10
RatingSubjectSetIDNULL Wird nur im Fall „CreateForAllProducts = 1“ beachtet ! Gibt die ID eines „Sets“ an, dem die generierten „RatingSubjects“ zugeordnet werden sollen. Möchte man keine Zuordnung, gibt man „-1“ an.
integer3.5.10
NodeCharacIDForRatingValuesNULL ID eines Merkmals. Gibt an, daß alle Eigenschaften zu diesem Merkmal als mögliche Bewertungen angelegt werden sollen. Falls „NULL“ übergeben wird, werden die Werte in „tempdb.dbo.AnyValues“ erwartet.
smallint3.5.10

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 4)
-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 Settingsdirekt und 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 Parameterdirekt und 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-07Aufgrund der Datentyp-Erweiterung der „Value“-Spalte von „NodeCharacteristicValues“ werden nun die übergebenen
„RatingValues“ auf maximale Bytelänge [100 Bytes] geprüft, so daß es zu einem Fehler [„-500“] kann
⇒ Auch ein entsprechender Doku-Hinweis
6.5.3 2013-03-18Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung
5.1.4 2006-08-14Tabelle „RatingSubjects“ hat sich geändert
5.0.0 2004-12-21Falls gar keine „RatingSubjects“ anzulegen waren [weil schon vorhanden], wurde bisher unsinnigerweise „-500“ zurückgegeben anstatt die Prozedur einfach zu beenden
4.0.11 2004-03-311. „_mi_StartProcedure“, „_mi_FinishProcedure“ u. „_mi_ChooseParamValueSeperator“
2. „set transaction isolation level 1“, „set rowcount 0“ zu Beginn
3. Konsequente Fehlerbehandlung
3.5.13 2001-12-06
3.5.11 2001-09-06
3.5.10 2001-07-14Erstmalig 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 POST  'http://<partner>-<project>.dstore.de/default/engine/im_CreateProductRatSubjects_Ad?Description=<value>&KeepRatingsInHours=<value>&KeepRatingStatisticsInDays=<value>'

Mit xmllint 5) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/im_CreateProductRatSubjects_Ad?Description=<value>&KeepRatingsInHours=<value>&KeepRatingStatisticsInDays=<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_CreateProductRatSubjects_Ad',
		array(
			'Description' => '<value>',
			'KeepRatingsInHours' => <value>,
			'KeepRatingStatisticsInDays' => <value>,
			// 'LockCriteria' => 3,
			// 'LockPeriodInMinutes' => 10,
			// 'CreateForAllProducts' => 1,
			// 'OnlyActiveProducts' => 1,
			// 'RatingSubjectSetID' => NULL,
			// 'NodeCharacIDForRatingValues' => NULL
		)
);
 
$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_CreateProductRatSubjects_Ad">
			<Parameters>
				<Parameter Name="Description"><!-- varchar value --></Parameter>
				<Parameter Name="KeepRatingsInHours"><!-- integer value --></Parameter>
				<Parameter Name="KeepRatingStatisticsInDays"><!-- integer value --></Parameter>
				<!-- <Parameter Name="LockCriteria">3</Parameter> -->
				<!-- <Parameter Name="LockPeriodInMinutes">10</Parameter> -->
				<!-- <Parameter Name="CreateForAllProducts">1</Parameter> -->
				<!-- <Parameter Name="OnlyActiveProducts">1</Parameter> -->
				<!-- <Parameter Name="RatingSubjectSetID">NULL</Parameter> -->
				<!-- <Parameter Name="NodeCharacIDForRatingValues">NULL</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
5)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/im_createproductratsubjects_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)