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 :
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-Method | POST |
HTTP-Auth | Optional |
Alias | im_CreateProductRatingSubjects_Ad |
Tags | |
Engine-Kategorie | configurations |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
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 ? | integer | 3.5.10 | |
KeepRatingStatisticsInDays | Wie lange sollen die (kummulierten) Abstimmungen gehalten werden ? | integer | 3.5.10 | |
LockCriteria | 3 | 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“ | tinyint | 3.5.10 |
LockPeriodInMinutes | 10 | 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 | integer | 3.5.10 |
CreateForAllProducts | 1 | „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 | bit | 3.5.10 |
OnlyActiveProducts | 1 | 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 | bit | 3.5.10 |
RatingSubjectSetID | NULL | 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. | integer | 3.5.10 |
NodeCharacIDForRatingValues | NULL | 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. | smallint | 3.5.10 |
Die Prozedur hat keine Rückgaben.
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 4) |
---|---|---|
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | 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 |
-550 | Fehlender oder falscher Eintrag in Settings | direkt und 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 |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
-500 | Falsche Parameter | direkt und indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
7.0.1 | 2013-08-07 | Aufgrund 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-18 | Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung |
5.1.4 | 2006-08-14 | Tabelle „RatingSubjects“ hat sich geändert |
5.0.0 | 2004-12-21 | Falls 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-31 | 1. „_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-14 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
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 -
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();
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>