Speichert eine bestimmte Information zu einem Besucher (in der Tabelle „VisitorInformation“).
Hinweise :
1.) Sollte zu der übergebenen „UniqueID“ noch kein Besucher (in „Visitors“) vorhanden sein, wird automatisch ein neuer Datensatz für diesen Besucher angelegt! Die Werte für „LanguageID“ und „CurrencyID“ werden aus „Settings“ (Schlüssel „DefaultLanguageID“ bzw. „DefaultCurrencyID“) genommen, als „CountryID“ wird die „0“ eingetragen.
Anmerkung :
Dies ist derzeit neben pm_CheckPersonIdentity_Pu (die ebenfalls einen Besucher automatisch anlegt, falls die übergebene „UniqueID“ nicht existiert) die einzige Möglichkeit, einen Besucher überhaupt anzulegen (d.h. es gibt keine Prozedur der Art mi_InsertVisitor_Pu) !
2.) Um nicht unnötig viele Datensätze in „VisitorInformation“ (aus Versehen oder in „böser Absicht“) erzeugen zu können, gibt es zwei Schutz-Maßnahmen :
a) In „Settings“ kann man über den Eintrag zum Schlüssel „MinDelayTimeForVisitorInformationInSeconds“ konfigurieren, wieviele Sekunden mindestens vergangen sein müssen, bevor wir zum selben Besucher und zur selben Informations-Art (irgend)eine weitere Information speichern dürfen. Ist dieser Eintrag NICHT konfiguriert, wählen wir automatisch den Wert „10“, bei einem Wert kleiner als „1“ wählen wir automatisch den (Mindest-)Wert „1“ !
b) Weiter gibt es eine Konfiguration in „Settings“ zum Schlüssel „MinDelayTimeForSameVisitorInformationInSeconds“, der festlegt, wieviele Sekunden mindestens vergangen sein müssen, bevor wir zum selben Besucher und zur selben Informations-Art dieselbe (!) Information speichern. Ist dieser Eintrag NICHT konfiguriert, wählen wir automatisch den Wert „3.600“ (1 Stunde), bei einem Wert kleiner als „1“ wählen wir automatisch den (Mindest-)Wert „1“ !
Bei Verletzung dieser zeitlichen Mindest-Abstände speichern wir einfach nichts, es gibt aber auch KEINEN Fehler. Wir geben lediglich via „print“ einen Hinweis aus.
Führt die Konfiguration (bzw. der automatisch gewählte Wert) bzgl. „MinDelayTimeForSameVisitorInformationInSeconds“ dazu, daß der zeitliche Mindest-Abstand hierfür KLEINER ist als der bzgl. „MinDelayTimeForVisitorInformationInSeconds“ (was absolut keinen Sinn macht), wird letzterer auch als Wert für „MinDelayTimeForSameVisitorInformationInSeconds“ gewählt.
HTTP-Method | POST |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | miscellaneous |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.4 (2014-03-19) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
UniqueID | Eindeutige ID eines Besuchers (aus „Visitors“) | varchar(50) | 3.5.0 | |
VisitorInformationTypeID | ID eines Informationstyps (z.B. die IP-Adresse) | smallint | 3.5.0 | |
VisitorInformation | Die Information, die eingetragen werden soll | varchar(50) | 3.5.0 |
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 |
-602 | Zur defaultUniqueID („VisitorID = -2“) können keinerlei Daten gespeichert oder verändert werden | nur direkt |
-550 | Fehlender oder falscher Eintrag in Settings | nur indirekt |
-500 | Falsche Parameter | nur direkt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.4 | 2014-03-19 | Kleine Kosmetik-Korrektur : Bei einigen Code-Zeilen war am Ende ein CR-Zeichen, was wir entfernt haben |
6.0.6 | 2012-03-01 | Beachtung des neuen, speziellen Besuchers „defaultUniqueID“ - für den keine Daten-Speicherung/-Änderung erlaubt ist |
6.0.0 | 2010-03-26 | 1. Implementierung neuer „Settings“-Einträge 2. Interne Änderung bei Neu-Anlage eines „Visitors“ 3. Prüfung von „VisitorInformationTypeID“ und „VisitorInformation“ 4. Datentyp-Erweiterung „VisitorInformation“ von „varchar(30)“ auf „varchar(50)„ |
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 POST 'http://<partner>-<project>.dstore.de/default/engine/mi_InsertVisitorInformation_Pu?UniqueID=<value>&VisitorInformationTypeID=<value>&VisitorInformation=<value>'
Mit xmllint 5) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/mi_InsertVisitorInformation_Pu?UniqueID=<value>&VisitorInformationTypeID=<value>&VisitorInformation=<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'), 'mi_InsertVisitorInformation_Pu', array( 'UniqueID' => '<value>', 'VisitorInformationTypeID' => <value>, 'VisitorInformation' => '<value>' ) ); $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="mi_InsertVisitorInformation_Pu"> <Parameters> <Parameter Name="UniqueID"><!-- varchar value --></Parameter> <Parameter Name="VisitorInformationTypeID"><!-- smallint value --></Parameter> <Parameter Name="VisitorInformation"><!-- varchar value --></Parameter> </Parameters> </Procedure> </Batch> </ListOfBatches>