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>