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-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | statistics |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
FromDate | Start-Zeitpunkt des zu untersuchenden Zeitraums | datetime | 3.5.0 | |
ToDate | End-Zeitpunkt des zu untersuchenden Zeitraums | datetime | 3.5.0 | |
InformationTypeID | 2 | 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. | tinyint | 3.5.0 |
InformationIsValidInHours | 48 | 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) | integer | 3.5.0 |
SelectAffectedOrderIDs | 0 | Möchte man statt einer Umsatz-Summe (pro Besucher-Information) die genauen Auftrag-IDs ausgegeben haben, übergibt man hier „1“ | bit | 3.5.11 |
OrderDesc | 0 | 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 | bit | 3.5.13 |
Information | NULL | Soll der Umsatz nur zu einer bestimmten Information (des Typs „InformationTypeID“) ermittelt werden, ist hier ein entsprechender Wert anzugeben | varchar(50) | 3.5.13 |
PurchaseOrder | 0 | 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.) | bit | 5.1.7 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
Information | Eine (Besucher-)Information des Typs „InformationTypeID“ | varchar(50) | 3.5.4 |
NettoOrderSales | Netto-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) | money | 3.5.4 |
Spaltenname | Beschreibung | SQL-Datentyp5) | ab Version |
---|---|---|---|
Information | Eine (Besucher-)Information des Typs „InformationTypeID“ | varchar(50) | 3.5.11 |
OrderID | ID eines Auftrags einer Person („PersonID“), der die Besucher-Information „Information“ zugeordnet werden kann (siehe Beschreibung) | integer | 3.5.11 |
OrderDateAndTime | Eingangsdatum des Auftrags „OrderID“ | datetime | 3.5.13 |
NettoSum | Netto-Betrag des Auftrags „OrderID“ in der Standardwährung („Settings“-Eintrag zum Schlüssel „DefaultCurrencyID“) | money | 3.5.13 |
PersonID | ID des Auftraggebers (des Auftrags „OrderID“) | integer | 3.5.13 |
wenn OrderDesc = 0
wenn OrderDesc = 1
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 6) |
---|---|---|
-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 | nur 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 |
-503 | Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabe | 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] |
6.5.4 | 2013-04-29 | Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung |
5.1.7 | 2006-10-31 | Neuer Parameter „PurchaseOrder“ |
4.0.15 | 2004-07-30 | 1. 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-23 | 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 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 -
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();
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>