Berechnet die Online-Zeit für bestimmte Community-Mitglieder (deren IDs in „tempdb.dbo.OneID“ angegeben sind) oder erstellt eine „Top-X“-Liste aller Mitglieder bzgl. der Online-Zeit. Zur Berechnung der Online-Zeit wird immer nur der Zeitraum der letzten „OnlineTimeDuringLastXMinutes“ Minuten herangezogen.
Anmerkung:
Egal wieviele IDs in „tempdb.dbo.OneID“ angegeben sind, es werden immer nur maximal (die Top) 255 berücksichtigt !
Anmerkung zu den „OutputCharacteristicID…“-Parametern :
IDs, die hier übergeben werden und nicht für den Benutzer, der diese Prozedur aufruft, „sichtbar“ sind (aufgrund von Zugriffsbeschränkungen, s. pm_GetPChAccRestrForUsers_Ad), werden grundsätzlich ignoriert ! D.h. es gibt zwar keinen Fehler, aber die entsprechende(n) Eigenschaft(en) werden natürlich nicht zurückgegeben !
Anmerkung zur Rückgabespalte „Nickname“ :
Eine evtl. konfigurierte Zugriffsbeschränkung für das „Nickname“-Merkmal (s. pm_GetPChAccRestrForUsers_Ad) wird bewußt NICHT beachtet (da das ja DIE öffentlich sichtbare Eigenschaft in einer Community schlechthin ist) !
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | communities |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 6.5.4 (2013-04-29) |
CommunityID | ID einer Community | smallint | 3.5.0 | |
UniqueID | Eindeutige ID eines Besuchers, die dem zu identifizierenden Mitglied aktuell zugeordnet ist. Falls die Identifizierungsdaten zur Person in „SessionManagement“ (zu dieser „UniqueID“) gespeichert sind, darf „PersonIdentificationValues“ auch „NULL“ sein. | varchar(50) | 3.5.0 | |
PersonIdentificationValues | Liste von Werten, die das Mitglied identifizieren. Diese Werte müssen Eigenschaften zu den Merkmal-IDs sein, die in „PersonTypeSettings“ zur „PersonTypeID“ der „CommunityID“ zum Schlüssel „PersonIdentificationIDs“ hinterlegt sind. | varchar(255) | 3.5.0 | |
OnlineTimeDuringLastXMinutes | Einen Wert größer „0“ angeben, um in der Rückgabemenge („OnlineTimeInSeconds“) einen Wert zu erhalten, der die Online-Zeit des identifizierten Mitglieds in den letzten „OnlineTimeDuringLastXMinutes“ Minuten angibt. | integer | 3.5.2 | |
GetTopX | 50 | „NULL“ : Es soll die Online-Zeit der Community-Mitglieder ermittelt werden, deren IDs in „tempdbo.dbo.OneID“ angegeben wurden „0“ : Nicht erlaubt „1“ bis „255“ : Eine „Top-X“-Liste von Mitgliedern nach Online-Zeit erstellen | tinyint | 3.5.2 |
OutputCharacteristicID1 | NULL | ID eines Merkmals. Falls angegeben, enthält die Rückgabemenge in der Spalte „Value1“ die Eigenschaft des jeweiligen Mitglieds zu diesem Merkmal. Das Merkmal muß aber durch den „Settings“-Eintrag zum Schlüssel „PublicCharacteristicIDs“ freigegeben sein ! | smallint | 3.5.2 |
OutputCharacteristicID2 | NULL | ID eines Merkmals. Falls angegeben, enthält die Rückgabemenge in der Spalte „Value2“ die Eigenschaft des jeweiligen Mitglieds zu diesem Merkmal. Das Merkmal muß aber durch den „Settings“-Eintrag zum Schlüssel „PublicCharacteristicIDs“ freigegeben sein ! | smallint | 3.5.2 |
OutputCharacteristicID3 | NULL | ID eines Merkmals. Falls angegeben, enthält die Rückgabemenge in der Spalte „Value3“ die Eigenschaft des jeweiligen Mitglieds zu diesem Merkmal. Das Merkmal muß aber durch den „Settings“-Eintrag zum Schlüssel „PublicCharacteristicIDs“ freigegeben sein ! | smallint | 3.5.2 |
CommunityBinaryCategoryID | NULL | Falls angegeben, enthält die Spalte „BinaryID“ der Rückgabemenge die kleinste „BinaryID“, die dem jeweiligen Mitglied in dieser Kategorie zugeordnet ist | smallint | 3.5.2 |
OrderByNick | 0 | Falls das Ergebnis NICHT nach der Online-Zeit (absteigend) sortiert werden soll, sondern nach dem „Nickname“ (die Eigenschaft des jeweiligen Mitglieds zum Merkmal „IdentifyingCharacteristicID“ aus „CommuntiySettings“), übergibt man hier den Wert „1“ | bit | 3.5.10 |
OnlineStatusInsteadOfIsOnline | 0 | Soll der genaue „Online-Status“ zurückgegeben werden oder nur, ob der Benutzer online ist oder nicht (siehe Erläuterung zur Rückgabemenge, Spalten „IsOnline“ bzw. „OnlineStatus“) | bit | 3.5.11 |
SeparatorInIdentVals | '¶' | Gibt an, durch welche Zeichenkette die Werte in „PersonIdentificationValues“ getrennt sind | varchar(4) | 5.5.0 |
Spaltenname | Beschreibung | SQL-Datentyp1) | ab Version |
---|---|---|---|
Seconds2) | Seit Version 3.5.4 heißt die Rückgabespalte „OnlineTimeInSeconds“ | integer | 3.5.0 |
lower(Nickname)3) | Wird nicht zurückgegeben, sondern zur Sortierung im Fall „OrderByNick = 1“ benötigt; enthält den „Nickname“ komplett „lowercase“ (Kleinbuchstaben) | varchar(100) | 3.5.11 |
CommunityMemberID | ID eines Mitglieds der Community „CommunityID“. Im Fall „GetTopX = NULL“ eine ID, die in „tempdb.dbo.OneID“ übergeben wurde, ansonsten die ID eines Mitglieds, das zu den „Top-<GetTopX>“ aller Mitglieder bzgl. Online-Zeit gehört. | integer | 3.5.0 |
Nickname | (Fehlte in 3.5.4 bis 3.5.9) Eigenschaft des Mitglieds „CommunityMemberID“ zu dem Merkmal, anhand dessen die Mitglieder sich untereinander eindeutig erkennen können : Eintrag in „CommunitySettings“ zum Schlüssel „IdentifyingCharacteristicID“ | varchar(100) | 3.5.0 |
IsOnline | Falls „OnlineStatusInsteadOfIsOnline = 1“ ist, dann steht hier immer der Wert „0“ („NULL“ ist beim Datentyp „bit“ nicht möglich). Ansonsten bedeutet ein Wert von „1“, daß das Mitglied „CommunityMemberID“ gerade „online“ ist. | bit | 3.5.4 |
OnlineTimeInSeconds | Die Online-Zeit des Mitglieds „CommunityMemberID“ in den letzten „OnlineTimeDuringLastXMinutes“ Minuten | integer | 3.5.4 |
Value1 | Eigenschaft des Mitglieds „CommunityMemberID“ zum Merkmal „OutputCharacteristicID1“ | varchar(100) | 3.5.4 |
Value1RestrictedByPattern | Was enthält „Value1“ (womöglich wegen Zugriffsbeschränkungen nur einen Teil) ? - NULL : den vollständigen Wert - „#left(<n>)#“ : nur die ERSTEN n Zeichen - „#right(<n>)#“ : nur die LETZTEN n Zeichen Anmerkung : „n = 0“ möglich, „Value1“ ist dann NULL | varchar(100) | 6.5.4 |
Value2 | Eigenschaft des Mitglieds „CommunityMemberID“ zum Merkmal „OutputCharacteristicID2“ | varchar(100) | 3.5.4 |
Value2RestrictedByPattern | Wie „Value1RestrictedByPattern“ - nur eben auf „Value2“ bezogen | varchar(100) | 6.5.4 |
Value3 | Eigenschaft des Mitglieds „CommunityMemberID“ zum Merkmal „OutputCharacteristicID3“ | varchar(100) | 3.5.4 |
Value3RestrictedByPattern | Was enthält „Value3“ (womöglich wegen Zugriffsbeschränkungen nur einen Teil) ? - NULL : den vollständigen Wert - „#left(<n>)#“ : nur die ERSTEN n Zeichen - „#right(<n>)#“ : nur die LETZTEN n Zeichen Anmerkung : „n = 0“ möglich, „Value3“ ist dann NULL | varchar(100) | 6.5.4 |
BinaryID | Falls „CommunityBinaryCategoryID“ angegeben wurde, steht hier die kleinste „BinaryID“, die dem Mitglied „CommunityMemberID“ in der Kategorie „CommunityBinaryCategoryID“ zugeordnet ist | integer | 3.5.4 |
OnlineStatus | Falls „OnlineStatusInsteadOfIsOnline = 0“ ist, ist dieser Wert immer „NULL“. Andernfalls kann hier zwar auch „NULL“ stehen, dies bedeutet aber dann, daß das Mitglied „offline“ ist - ansonsten steht dort der Status aus „CurrentlyUsersOnline“. | tinyint | 3.5.11 |
wenn OrderByNick = 0
wenn OrderByNick = 1
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 4) |
---|---|---|
-781 | Fehlender oder falscher Eintrag in CommunitySettings | nur indirekt |
-780 | Fehlender oder falscher Eintrag in CommunityMemberSettings | nur indirekt |
-774 | Login vorübergehend gesperrt | nur indirekt |
-773 | Login gesperrt | nur indirekt |
-772 | User ist nicht angemeldet | nur indirekt |
-771 | Der Sweeper ist nicht gestartet | nur indirekt |
-770 | Login zur Zeit nicht möglich | nur indirekt |
-750 | Fehlende Berechtigung für die Anzeige der Daten | nur direkt |
-660 | Identifikation fehlgeschlagen | nur indirekt |
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | nur indirekt |
-602 | Zur defaultUniqueID („VisitorID = -2“) können keinerlei Daten gespeichert oder verändert werden | nur indirekt |
-599 | Lizenz ist ungültig oder abgelaufen | 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 |
-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.
6.5.4 | 2013-04-29 | 1. Implementierung des neuen Merkmal-Zugriffsbeschränkungen-Features [⇒ auch Hinweis in der Doku] 2. Länge des Parameter „SeparatorInIdentVals“ wurde erweitert [von „1“ auf „4“] 3. Neue Rückgabespalten „Value…RestrictedByPattern“ |
5.5.0 | 2008-01-07 | 1. Neuer Parameter „SeparatorInIdentVals“ 2. Ausgabe via „print“ im Fehler-Fall „-500“ (mit Informationen über die Ursache) 3. Bearbeitung des Quellcodes hinsichtlich neuer Konventionen 4. Interne Änderungen |
4.0.8 | 2004-02-20 | Fehler im seltenen Fällen bei der Ermittlung der Top-X-Liste - ein oder mehrere Mitglieder „flogen“ aus der Liste raus, weil die Online-Zeit falsch berechnet wurde |
3.5.22 | 2002-08-30 | |
3.5.12 | 2001-10-17 | |
3.5.11 | 2001-09-06 | |
3.5.10 | 2001-07-14 | |
3.5.4 | 2001-03-11 | |
3.5.2 | 2001-01-28 | |
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/co_GetOnlineTimeOfMembers_Pu?CommunityID=<value>&UniqueID=<value>&PersonIdentificationValues=<value>&OnlineTimeDuringLastXMinutes=<value>'
Mit xmllint 5) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/co_GetOnlineTimeOfMembers_Pu?CommunityID=<value>&UniqueID=<value>&PersonIdentificationValues=<value>&OnlineTimeDuringLastXMinutes=<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'), 'co_GetOnlineTimeOfMembers_Pu', array( 'CommunityID' => <value>, 'UniqueID' => '<value>', 'PersonIdentificationValues' => '<value>', 'OnlineTimeDuringLastXMinutes' => <value>, // 'GetTopX' => 50, // 'OutputCharacteristicID1' => NULL, // 'OutputCharacteristicID2' => NULL, // 'OutputCharacteristicID3' => NULL, // 'CommunityBinaryCategoryID' => NULL, // 'OrderByNick' => 0, // 'OnlineStatusInsteadOfIsOnline' => 0, // 'SeparatorInIdentVals' => '¶' ) ); $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="co_GetOnlineTimeOfMembers_Pu"> <Parameters> <Parameter Name="CommunityID"><!-- smallint value --></Parameter> <Parameter Name="UniqueID"><!-- varchar value --></Parameter> <Parameter Name="PersonIdentificationValues"><!-- varchar value --></Parameter> <Parameter Name="OnlineTimeDuringLastXMinutes"><!-- integer value --></Parameter> <!-- <Parameter Name="GetTopX">50</Parameter> --> <!-- <Parameter Name="OutputCharacteristicID1">NULL</Parameter> --> <!-- <Parameter Name="OutputCharacteristicID2">NULL</Parameter> --> <!-- <Parameter Name="OutputCharacteristicID3">NULL</Parameter> --> <!-- <Parameter Name="CommunityBinaryCategoryID">NULL</Parameter> --> <!-- <Parameter Name="OrderByNick">0</Parameter> --> <!-- <Parameter Name="OnlineStatusInsteadOfIsOnline">0</Parameter> --> <!-- <Parameter Name="SeparatorInIdentVals">'¶'</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>