Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:om_gettrolleys_ad

om_GetTrolleys_Ad

Gibt den Inhalt aller existierender Warenkörbe („Trolleys“) zurück (optional nur die, bei denen zwischen zwei gegebenen Zeitpunkten zuletzt ein Artikel hinzugefügt wurde und/oder optional nur die, die einer Person zugeordnet werden können).

Anmerkungen zu den Ausgabespalten „HTreeNodeID“ und „TreeNodeID“ :

Im Warenkorb werden immer „HTreeNodeID“s gespeichert. Eine „HTreeNodeID“ ist ein Element im „Artikelbaum“ mit Gültigkeitszeitraum. Jedes Element im „Artikelbaum“ besitzt einen/mehrere Gültigkeitszeitraum/-zeiträume. Für gelöschte Elemente ist dieser Zeitraum abgeschlossen, für momentan gültige (unabhängig davon ob aktiviert oder nicht !!!) Elemente ist dieser Zeitraum OFFEN. Bekommt ein Element eine andere Position im Artikelbaum (d.h. wird es „verschoben“), so existieren mindestens ZWEI Gültigkeitszeiträume : die alte(n) Position(en) im Baum haben natürlich abgeschlossene Zeiträume, die neue (nach dem Verschieben) hat entsprechend einen offenen Zeitraum.

Besonderheit : DERZEIT hat jedes Artikel-Element („NodeID“) eine EINDEUTIGE Position im Artikelbaum („TreeNodeID“). Es ist jedoch vorgesehen, ein Element MEHRFACH im Baum einordnen zu können. Dies hat zur Folge, daß man ein Artikel-Element nicht unbedingt EINDEUTIG in der Hierarchie einordnen kann. DESWEGEN gibt es zu jeder „NodeID“ GENAU EINE „HTreeNodeID“ mit einem offenen Gültigkeitszeitraum, wobei die „TreeNodeID“ unbekannt ist (Weil dieses Element aber in jedem Fall unterhalb des „Wurzel-Elementes“ liegt, ist als „TreeNodeID“ die „0“ angegeben !)

Es kann also sein, daß sich im Warenkorb des Besuchers eine „HTreeNodeID“ befindet, deren zugehörige „TreeNodeID“ „0“ ist. Zur Preisermittlung oder zur Ermittlung der Vorgänger (→ s. Parameter „CalculatePrices = 1“ oder „IncludePredecessors = 1“ von om_GetTrolley_Pu) wird aber unbedingt ein Element im Artikelbaum benötigt ! Für solche Elemente wird dann einfach EIN „repräsentierendes“ Element (i.d. R. die kleinste „TreeNodeID“ ungleich „0“ zur „NodeID“) gewählt. Die ID dieses Elementes steht in der Rückgabespalte „TreeNodeID“.

HTTP-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieorder management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
FromDateAndTimeNULL Falls angegeben werden nur Warenkorbs-Positionen ermittelt, die zu einem Zeitpunkt hinzugefügt wurden, der HINTER (i.S.v. später) dieser Zeitangabe (Zeitpunkt eingeschl.) liegt. Dadurch kann es passieren, daß nur ein Teil eines Warenkorbs ermittelt wird !
datetime6.5.0
ToDateAndTimeNULL Falls angegeben werden nur Warenkorbs-Positionen ermittelt, die zu einem Zeitpunkt hinzugefügt wurden, der VOR (i.S.v. früher) dieser Zeitangabe (Zeitpunkt eingeschl.) liegt. Dadurch kann es passieren, daß nur ein Teil eines Warenkorbs ermittelt wird !
datetime6.5.0
OnlyForIdentifiedPersons1 Gibt an, ob nur die Warenkörbe in die Ergebnismenge aufgenommen werden, die einer Person zugeordnet werden können („1“) oder nicht („0“)
bit6.5.0

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
PersonIDDie ID der Person, der „VisitorID“ (und damit der Warenkorb) zugeordnet ist. Gibt es keine Zuordnung zu einer Person, wird hier „NULL“ zurückgegeben (kann nur im Fall „OnlyForIdentifiedPersons = 0“ vorkommen).
integer6.5.0
IdentifyingValueEigenschaft von „PersonID“ zum 1. (willkürlich gewählt) Merkmal des Personentyps von „PersonID“, welches ein Pflichtmerkmal UND eindeutig ist. „NULL“ wenn dieses Merkmal komplett lesend für den Aufrufer gesperrt ist (s. pm_GetPChAccRestrForUsers_Ad).
varchar(100)6.5.0
IdentValRestrByPatternWas enthält „IdentifyingValue“ (womöglich wegen Zugriffsbeschränkungen nur einen Teil) ?
- NULL : den vollständigen Wert
- „#left(<n>)#“ : die ERSTEN n Zeichen
- „#right(<n>)#“ : die LETZTEN n Zeichen
(„n = 0“ ⇒ „IdentifyingValue“ dann „NULL“)
varchar(100)6.5.4
VisitorIDDie ID des Besuchers, dem der Warenkorb „gehört“
integer6.5.0
HTreeNodeIDID eines Elementes aus „HistoryTreeView“ (in dieser ist die Historie des gesamten Artikelbaums abgebildet), das der Besucher „VisitorID“ in seinen Warenkorb gelegt hat
integer6.5.0
TreeNodeIDEnthält entweder die (zum Zeitpunkt „InputDateAndTime“) zur „HTreeNodeID“ korrespondierende ID eines Elementes im Artikelbaum oder (falls diese „0“ ist) ein zur „NodeID“ (die zu „HTreeNodeID“ gehört) zugehör. aber willkürlich gewähl. Element (s. Beschr.).
integer6.5.0
ItemNoEigenschaft des zu „HTreeNodeID“ zugehörigen Artikel-Elementes („NodeID“) zum Merkmal mit der ID „6“ (also die Artikelnummer). Existiert zum Artikel keine Eigenschaft oder ist „IncludeItemNo = 0“, wird „NULL“ zurückgegeben.
varchar(1000)6.5.0
QuantityAnzahl des Artikels („TreeNodeID“ bzw. „HTreeNodeID“), die der Besucher „VisitorID“ in seinen „Warenkorb gelegt“ hat
integer6.5.0
InputDateAndTimeZeitpunkt, zu dem der Besucher „VisitorID“ das Element „HTreeNodeID“ in den Warenkorb gelegt hat
datetime6.5.0
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • VisitorID (aufsteigend)
  • InputDateAndTime (aufsteigend)
  • HTreeNodeID (aufsteigend)

Output-Parameter

NumberOfTrolleysAusgabeparameter für die Anzahl ALLER existierenden Warenkörbe - unter Beachtung von „FromDateAndTime“ und „ToDateAndTime“ aber unabhängig von „OnlyForIdentifiedPersons“ !

Mögliche Return-Codes

Code Beschreibung Quelle 5)
-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 abgebrochendirekt und indirekt
-500Falsche Parameterdirekt und indirekt
-283Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu ermittelnnur 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-07Datentyp der Rückgabespalte „Value“ hat sich erweitert ⇒ Anpassung der Doku
6.5.4 2013-04-291. Implementierung Merkmal-Zugriffsbeschränkungen
2. Neue Spalte „IdentValRestrByPattern“
3. Optimierungen
4. Ausgabeparameter „NumberOfTrolleys“ wurde falsch initialisiert
6.5.2 2013-02-26Fehler behoben : Wenn zu einem Artikel-Element KEIN Eigenschaft zum Merkmal „Artikelnummer“ existiert, wurde der
Datensatz NICHT zurückgegeben [laut Doku soll aber dann natürlich „ItemNo“ einfach „NULL“ sein]
6.5.0 2012-09-17Erstmalig 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/om_GetTrolleys_Ad'

Mit xmllint 6) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/om_GetTrolleys_Ad' | 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'),
	'om_GetTrolleys_Ad',
		array(
			// 'FromDateAndTime' => NULL,
			// 'ToDateAndTime' => NULL,
			// 'OnlyForIdentifiedPersons' => 1
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
 
$OutputParams = $xml_result->getOutputParametersAsArray();
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="om_GetTrolleys_Ad">
			<Parameters>
				<!-- <Parameter Name="FromDateAndTime">NULL</Parameter> -->
				<!-- <Parameter Name="ToDateAndTime">NULL</Parameter> -->
				<!-- <Parameter Name="OnlyForIdentifiedPersons">1</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
5)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
6)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/om_gettrolleys_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)