Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:st_getsales_byinformation_ad

st_GetSales_ByInformation_Ad

Liefert den Netto-Bestellumsatz in der Standardwährung („Settings“-Eintrag zum Schlüssel „DefaultCurrencyID“), der in einem Zeitraum angefallen ist, gruppiert nach Besucher-Information eines bestimmten Typs.

Diese Prozedur dient beispielsweise dazu, feststellen zu können, wieviel Umsatz mit Personen gemacht wurde, die (aufgrund einer Werbebanner-Aktion z.B.) über eine bestimmte Webseite XY auf die „Webshop“-Seiten des Unternehmens gekommen sind.

Eine Information zum Besucher wird in „VisitorInformation“ zu einem bestimmten Zeitpunkt festgehalten; dieser ist natürlich nie identisch mit dem Zeitpunkt, an dem die zugehörige Person auch eine Bestellung abschickt. Um dieses Problem zu lösen, geht die Prozedur wie folgt vor :
1. Es werden alle gültigen Aufträge („OrderStateID“s aller Positionen müssen der Kategorie „1“ zugeordnet sein) im angegebenen Zeitraum ermittelt; alle Umsätze in einer anderen Währung als der Standardwährung werden entsprechend umgerechnet.
2. Zu allen gefundenen Datensätzen wird der zum Zeitpunkt „OrderDateAndTime“ zugeordnete Besucher (aus „VisitorPersons“) ermittelt. Es können natürlich theoretisch MEHRERE Besucher zugeordnet sein, also ziehen wir nur die in Betracht, die innerhalb der letzten „InformationIsValidInHours“ Stunden seit Auftragszeitpunkt eine Information zum „InformationTypeID“ haben. Sollten dann immer noch mehrere Besucher in Frage kommen, wird einfach der mit der kleinesten „VisitorID“ gewählt.
3. Nach den ersten beiden Schritten haben wir also eine Menge von Besuchern („VisitorID“s) und jeweils einen Zeitpunkt „OrderDateAndTime“ sowie den Netto-Bestellumsatz in der Standardwährung. Nun wird die erste Information aus „VisitorInformation“ zum „InformationTypeID“ (oder nur eine bestimmte „Information“) innerhalb der letzten „InformationIsValidInHours“ Stunden abgefragt - wird nichts gefunden, fällt der Datensatz raus.
4. Schließlich wird der noch verbleibende Umsatz, nach den verschiedenen Informationen gruppiert, aufsummiert und ausgegeben.

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

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
FromDate Start-Zeitpunkt des zu untersuchenden Zeitraums
datetime3.5.0
ToDate End-Zeitpunkt des zu untersuchenden Zeitraums
datetime3.5.0
InformationTypeID2 ID des Informations-Typs für Besucher (wie z.B. „IP-Adresse“, „Referer“ o.ä.). Die Umsätze werden nach den verschiedenen vorhandenen Informationen diese Typs gruppiert.
tinyint3.5.0
InformationIsValidInHours48 Länge des Zeitraums in Stunden, für den angenommen wird, daß die angefallene Information mit der Bestellung in Verbindung gebracht werden kann (siehe Beschreibung)
integer3.5.0
SelectAffectedOrderIDs0 Möchte man statt einer Umsatz-Summe (pro Besucher-Information) die genauen Auftrag-IDs ausgegeben haben, übergibt man hier „1“
bit3.5.11
OrderDesc0 Wird nur im Fall „SelectAffectedOrderIDs = 1“ beachtet und gibt an, ob das Ergebnis nach dem Datum des Auftrags (→ Rückgabespalte „OrderDateAndTime“) absteigend („1“) oder aufsteigend („0“) sortiert sein soll
bit3.5.13
InformationNULL Soll der Umsatz nur zu einer bestimmten Information (des Typs „InformationTypeID“) ermittelt werden, ist hier ein entsprechender Wert anzugeben
varchar(50)3.5.13
PurchaseOrder0 Gibt an, ob grundsätzlich entweder nur Kunden-Aufträge („0“) oder nur Einkaufs-Aufträge („1“) beachtet werden sollen. (Bei letzteren haben die „OrderID“s und „OrderContentID“s negative Vorzeichen.)
bit5.1.7

Rückgabe

wenn SelectAffectedOrderIDs = 0

Spaltenname Beschreibung SQL-Datentyp4) ab Version
InformationEine (Besucher-)Information des Typs „InformationTypeID“
varchar(50)3.5.4
NettoOrderSalesNetto-Umsatz in der Standardwährung („Settings“-Eintrag zum Schlüssel „DefaultCurrencyID“), der mit Personen gemacht wurde, denen die Besucher-Information „Information“ zugeordnet werden kann (siehe Beschreibung)
money3.5.4

wenn SelectAffectedOrderIDs = 1

Spaltenname Beschreibung SQL-Datentyp5) ab Version
InformationEine (Besucher-)Information des Typs „InformationTypeID“
varchar(50)3.5.11
OrderIDID eines Auftrags einer Person („PersonID“), der die Besucher-Information „Information“ zugeordnet werden kann (siehe Beschreibung)
integer3.5.11
OrderDateAndTimeEingangsdatum des Auftrags „OrderID“
datetime3.5.13
NettoSumNetto-Betrag des Auftrags „OrderID“ in der Standardwährung („Settings“-Eintrag zum Schlüssel „DefaultCurrencyID“)
money3.5.13
PersonIDID des Auftraggebers (des Auftrags „OrderID“)
integer3.5.13
Sortierungen der Rückgabe

wenn OrderDesc = 0

  • Information (aufsteigend)
  • OrderDateAndTime (aufsteigend)

wenn OrderDesc = 1

  • Information (aufsteigend)
  • OrderDateAndTime (absteigend)

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 6)
-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 Settingsnur 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
-503Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabenur 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]
6.5.4 2013-04-29Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung
5.1.7 2006-10-31Neuer Parameter „PurchaseOrder“
4.0.15 2004-07-301. Aufruf der Prozeduren „_mi_StartProcedure“, „_mi_FinishProcedure“ und „_mi_ChooseParamValueSeperator“
2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur
3. Konsequente Fehlerbehandlung
3.5.21 2002-08-06
3.5.14 2002-01-23
3.5.13 2001-12-06
3.5.11 2001-09-06
3.5.4 2001-03-11
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/st_GetSales_ByInformation_Ad?FromDate=<value>&ToDate=<value>'

Mit xmllint 7) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/st_GetSales_ByInformation_Ad?FromDate=<value>&ToDate=<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'),
	'st_GetSales_ByInformation_Ad',
		array(
			'FromDate' => <value>,
			'ToDate' => <value>,
			// 'InformationTypeID' => 2,
			// 'InformationIsValidInHours' => 48,
			// 'SelectAffectedOrderIDs' => 0,
			// 'OrderDesc' => 0,
			// 'Information' => NULL,
			// 'PurchaseOrder' => 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="st_GetSales_ByInformation_Ad">
			<Parameters>
				<Parameter Name="FromDate"><!-- datetime value --></Parameter>
				<Parameter Name="ToDate"><!-- datetime value --></Parameter>
				<!-- <Parameter Name="InformationTypeID">2</Parameter> -->
				<!-- <Parameter Name="InformationIsValidInHours">48</Parameter> -->
				<!-- <Parameter Name="SelectAffectedOrderIDs">0</Parameter> -->
				<!-- <Parameter Name="OrderDesc">0</Parameter> -->
				<!-- <Parameter Name="Information">NULL</Parameter> -->
				<!-- <Parameter Name="PurchaseOrder">0</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
6)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
7)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/st_getsales_byinformation_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)