Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:co_deleteinactivemembers_ad

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

engine:procedures:co_deleteinactivemembers_ad [11.01.2016 ]
engine:procedures:co_deleteinactivemembers_ad [11.01.2016 ] (aktuell)
Zeile 1: Zeile 1:
 +===== co_DeleteInactiveMembers_Ad =====
 +
 +Ermittelt oder löscht alle Mitglieder einer Community, deren letztes Login länger als eine bestimmte Anzahl von Monaten her ist.\\ ​
 +
 +Theoretisch kann es passieren, daß Daten aus "​OnlineTimeStatistics"​ (hier werden pro Mitglied pro Tag die Online-Minuten und die Anzahl Logins gespeichert) zu einem Mitglied gelöscht werden, so daß nicht mehr festgestellt werden kann, wann es sich das letzte Mal eingeloggt hat. Um (nur !) diese betroffenen Personen ausgeben bzw löschen zu lassen, setzt man "​OnlyMembersWithoutLoginStats"​ auf "​1"​.\\ ​
 +
 +
 +
 +Anmerkung zur Rückgabespalte "​Nickname"​ :\\ 
 +
 +Eine evtl. konfigurierte Zugriffsbeschränkung für das "​Nickname"​-Merkmal (s. [[dstoreproc>​pm_GetPChAccRestrForUsers_Ad]]) wird bewußt NICHT beachtet (da das ja DIE öffentlich sichtbare Eigenschaft in einer Community schlechthin ist) !\\ 
 +|HTTP-Method|POST |
 +|HTTP-Auth|Optional |
 +|Tags|{{tag>​[co Delete Inactive Members Ad]}}|
 +|Engine-Kategorie|communities |
 +|Engine-Typ|Daten-Änderung |
 +|Letzte Aktualisierung|7.0.7 (2015-01-29)|
 +
 +==== Parameter ====
 +
 +^Name ((Pflichtparameter sind unterstrichen)) ^Standard-Wert ^Beschreibung ((siehe [[webservice:​engine_parameterconventions|Parameter-Konventionen engine/<​Prozedur-Name>​]])) ^SQL-Datentyp((siehe [[:​webservice:​engine_datatypes|Datentypen im Bereich "​engine"​]])) ^ab Version ^
 +|__CommunityID__| |ID einer Community\\ |smallint|3.5.8|
 +|LastLoginXMonthAgo|3 |Angabe, wieviele Monate das letzte Login her sein muß, damit das Mitglied als "​inaktiv"​ gilt. (Muß ">= 0" sein, sonst gibt es einen Fehler)\\ |smallint|3.5.8|
 +|DoNotDeleteButLogOnly|1 |Sollen die inaktiven Mitglieder tatsächlich gelöscht oder nur ermittelt und als Ergebnismenge zurückgegeben werden ?\\ |bit|3.5.8|
 +|OnlyMembersWithoutLoginStats|0 |NUR die Mitglieder berücksichtigen,​ zu denen es keine "​OnlineTime"​-Statistiken (mehr) gibt, d.h. Datensätze in "​UsersOnlineTime"​ und "​OnlineTimeStatistics"​\\ |bit|3.5.11|
 +|MaxNumberOfMembersToDelete|100 |Um zu verhindern, daß zu viele Mitglieder aufeinmal gelöscht werden, kann man diesen Parameter entsprechend setzen. "​0"​ bedeutet KEINE Einschränkung,​ ist der Wert "< 0", gibt es einen Fehler !\\ |smallint|3.5.11|
 +|PrintErrors|0 |Beim Löschen kann es u.U. einen Fehler geben - etwa weil ein Auftrag existiert o.ä. Die Prozedur wird aber in jedem Fall weiter ausgeführt. Möchte man diese Fehler (bzw. den "​ErrorCode"​) sehen, übergibt man  hier den Wert "​1"​.\\ |bit|3.5.11|
 +|AdditionalInformation|0 |Wird nur im Fall "​DoNotDeleteButLogOnly = 1" beachtet ! Übergibt man hier "​1",​ sind zusätzliche Informationen in der Rückgabemenge enthalten.\\ |bit|3.5.11|
 +==== Rückgabe ====
 +
 +=== wenn AdditionalInformation = 0 und DoNotDeleteButLogOnly = 1 ===
 +
 +^Spaltenname ​ ^Beschreibung ^SQL-Datentyp((siehe [[:​webservice:​engine_datatypes|Datentypen im Bereich "​engine"​]])) ^ab Version ^
 +|//​lower(Nickname)((Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.))//​|Wird nicht zurückgegeben,​ sondern zur Sortierung benötigt; enthält den "​Nickname"​ komplett "​lowercase"​ (Kleinbuchstaben)\\ |varchar(100)|3.5.8 |
 +|CommunityMemberID|ID eines Mitglieds der Community "​CommunityID",​ das länger als "​LastLoginXMonthAgo"​ Monate nicht mehr eingeloggt war bzw. zu dem keine "​OnlineTime"​-Statistiken mehr vorhanden sind.\\ |integer|3.5.8 |
 +|LastLogin|Wann war das Mitglied "​CommunityMemberID"​ zuletzt online\\ |datetime|3.5.8 |
 +|Nickname|Eigenschaft zu dem Merkmal, anhand dessen die Communitymitglieder sich untereinander unterscheiden bzw. erkennen können. (Eintrag in "​CommunitySettings"​ zum Schlüssel "​IdentifyingCharacteristicID"​)\\ |varchar(100)|3.5.8 |
 +
 +== Sortierung der Rückgabe ==
 +
 +(parameterunabängige Sortierung)
 +  * lower(Nickname) (aufsteigend)
 +
 +=== wenn AdditionalInformation = 1 und DoNotDeleteButLogOnly = 1 ===
 +
 +^Spaltenname ​ ^Beschreibung ^SQL-Datentyp((siehe [[:​webservice:​engine_datatypes|Datentypen im Bereich "​engine"​]])) ^ab Version ^
 +|//​lower(Nickname)((Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.))//​|Wird nicht zurückgegeben,​ sondern zur Sortierung benötigt; enthält den "​Nickname"​ komplett "​lowercase"​ (Kleinbuchstaben)\\ |varchar(100)|3.5.8 |
 +|CommunityMemberID|ID eines Mitglieds der Community "​CommunityID",​ das länger als "​LastLoginXMonthAgo"​ Monate nicht mehr eingeloggt war bzw. zu dem keine "​OnlineTime"​-Statistiken mehr vorhanden sind.\\ |integer|3.5.8 |
 +|LastLogin|Wann war das Mitglied "​CommunityMemberID"​ zuletzt online\\ |datetime|3.5.8 |
 +|Nickname|Eigenschaft zu dem Merkmal, anhand dessen die Communitymitglieder sich untereinander unterscheiden bzw. erkennen können. (Eintrag in "​CommunitySettings"​ zum Schlüssel "​IdentifyingCharacteristicID"​)\\ |varchar(100)|3.5.8 |
 +|CreationDateAndTime|Wann wurde die Person (das Mitglied) angelegt (nicht, wann wurde die Person Mitglied in der Community "​CommuntiyID"​ !)\\ |datetime|3.5.11 |
 +|NumberOfPostings|Anzahl aller NICHT-GELÖSCHTEN Beiträge des Mitglieds\\ |integer|3.5.11 |
 +
 +== Sortierung der Rückgabe ==
 +
 +(parameterunabängige Sortierung)
 +  * lower(Nickname) (aufsteigend)
 +
 +==== Output-Parameter ====
 +
 +Die Prozedur hat keine Output-Parameter.==== Mögliche Return-Codes ====
 +
 +^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber"​ und indirekt meint "von intern aufgerufenen Unterprozeduren"​)) ^
 +|-856|Fehlerhafte Daten in "​MainPostingSorting"​|nur indirekt|
 +|-855|Fehlerhafte Konfiguration des Sortier-Kriteriums|nur indirekt|
 +|-850|Sortier-Kriterium nicht definiert oder inaktiv oder nicht verwendbar|nur indirekt|
 +|-840|Posting kann nicht bearbeitet werden, weil es bereits von einem anderen Prozess bearbeitet wird|nur indirekt|
 +|-781|Fehlender oder falscher Eintrag in CommunitySettings|nur indirekt|
 +|-677|Die Person kann nicht gelöscht werden, da es mind. ein Posting gibt, das nicht gelöscht werden darf|nur indirekt|
 +|-672|Fehlende Berechtigung zum Löschen von Personen eines bestimmten Personentyps|nur indirekt|
 +|-671|Die Person kann nicht gelöscht werden, da mindestens ein Auftrag existiert|nur indirekt|
 +|-621|Fehlender oder falscher Eintrag in PersonTypeSettings|nur indirekt|
 +|-610|Fehlende oder falsche Daten in PersonMetaInformation|nur indirekt|
 +|-599|Lizenz ist ungültig oder abgelaufen|nur indirekt|
 +|-572|Die Prozedur darf nur innerhalb einer Transaktion ausgeführt werden|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|
 +|-565|Die "​Objekt-ID"​ der Prozedur konnte nicht ermittelt werden|nur indirekt|
 +|-564|Der Status in BatchJobs konnte nicht gesetzt werden|nur indirekt|
 +|-562|Die Prozedur ist nicht in BatchJobs registriert|nur indirekt|
 +|-561|Prozedur kann nicht ausgeführt werden|nur indirekt|
 +|-560|Prozedur konnte nicht gestartet 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|
 +|-500|Falsche Parameter|direkt und indirekt|
 +|-220|Es konnte keine Merkmal-ID für die Produktbezeichnung ermittelt werden|nur indirekt|
 +==== XML-Schema ====
 +
 +Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema [[http://​resources.dstore.de/​xsd/​webservice_SmartGate/​Response/​EngineProcedure_v1_0.xsd|Response/​EngineProcedure_v1_0.xsd]] validiert.
 +==== Historie ====
 +
 +|7.0.7 |2015-01-29|Interne Änderung : Datentyp-Erweiterung des "​ReferenceKey"​ [für "​_mi_StartProcedure"​-Aufruf]\\ ​ |
 +|6.5.4 |2013-04-29|Hinweis in der Doku, daß bewusst NICHT eine evtl. konfigurierte Zugriffsbeschränkung für das "​Nickname"​-Merkmal\\ beachtet wird - da das ja DIE öffentlich sichtbare Eigenschaft in einer Community schlechthin ist\\  |
 +|6.5.2 |2013-02-26|1. Anpassungen zwecks UTF8-Unterstützung\\ 2. Quellcode an den aktuellen Standard angepaßt\\ ​ |
 +|5.0.0 |2004-12-21|Interne Änderung bzgl. des cursors, der die zu löschenden Mitglieder durchläuft : wir verwenden ab jetzt eine temporäre Tabelle\\ ​ |
 +|4.0.10 |2004-03-15|1. Aufruf der Prozeduren "​_mi_StartProcedure"​ und "​_mi_FinishProcedure"​\\ 2. Ausführen von "set transaction isolation level 1" und "set rowcount 0" zu Beginn der Prozedur\\ ​ |
 +|4.0.7 |2004-01-16|1. "​_mi_TryToStartBatchJob"​ hat zahlreiche neue Parameter bekommen, um u.a. die Parameter-Werte automatisch in "​BatchJobParameters"​ eingefügen zu lassen\\ 2. Verwendung der neuen Prozedur "​_mi_TryToFinishBatchJob"​ zum Setzen des Status am Schluß\\ ​ |
 +|4.0.3 |2003-07-10|"​CreationDateAndTime"​ steht jetzt in "​PersonMetaInformation"​ und nicht mehr in "​Persons"​\\ ​ |
 +|3.5.20 |2002-07-22|\\ ​ |
 +|3.5.11 |2001-09-06|\\ ​ |
 +|3.5.8 |2001-05-19|Erstmalig 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:
 +  * [[http://​playground.dstore.de/​index.php?​proc=co_DeleteInactiveMembers_Ad|co_DeleteInactiveMembers_Ad im Engine Playground öffnen]]
 +== cURL ==
 +Unformatierte Ausgabe:
 +<code bash>
 +curl -X POST  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​co_DeleteInactiveMembers_Ad?​CommunityID=<​value>'</​code>​Mit xmllint ((I.d.R. auf Unix-artigen Systemen bereits installiert,​ Bestandteil der libxml2, siehe http://​www.xmlsoft.org)) formatierte Ausgabe:
 +<code bash>
 +curl -X POST  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​co_DeleteInactiveMembers_Ad?​CommunityID=<​value>'​ | xmllint --format -</​code>​== dStore_php ==
 +<code 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'​),​
 + '​co_DeleteInactiveMembers_Ad',​
 + array(
 + '​CommunityID'​ => <​value>,​
 + // '​LastLoginXMonthAgo'​ => 3,
 + // '​DoNotDeleteButLogOnly'​ => 1,
 + // '​OnlyMembersWithoutLoginStats'​ => 0,
 + // '​MaxNumberOfMembersToDelete'​ => 100,
 + // '​PrintErrors'​ => 0,
 + // '​AdditionalInformation'​ => 0
 + )
 +);
 +
 +$service->​execute($request);​
 +
 + $xml_result = $request->​getResponse()->​getBody()->​toSimpleXmlDocument();​
 + $ResultSet = $xml_result->​getRowsAsArray();​
 +
 +</​code>​
 +== engine/​execute ==
 +XML zur Ausführung mit der Methode [[:​webservice:​engine:​execute|engine/​execute]],​ z.B. per
 +  curl --header '​Content-Type:​ application/​xml'​ -X POST '​http://<​partner>​-<​kunde>​.dstore.de/​default/​engine/​execute'​ -d '<​xml-daten>'​
 +
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​ListOfBatches>​
 + <Batch No="​0">​
 + <​Procedure Name="​co_DeleteInactiveMembers_Ad">​
 + <​Parameters>​
 + <​Parameter Name="​CommunityID"><​!-- smallint value --></​Parameter>​
 + <!-- <​Parameter Name="​LastLoginXMonthAgo">​3</​Parameter>​ -->
 + <!-- <​Parameter Name="​DoNotDeleteButLogOnly">​1</​Parameter>​ -->
 + <!-- <​Parameter Name="​OnlyMembersWithoutLoginStats">​0</​Parameter>​ -->
 + <!-- <​Parameter Name="​MaxNumberOfMembersToDelete">​100</​Parameter>​ -->
 + <!-- <​Parameter Name="​PrintErrors">​0</​Parameter>​ -->
 + <!-- <​Parameter Name="​AdditionalInformation">​0</​Parameter>​ -->
 + </​Parameters>​
 + </​Procedure>​
 + </​Batch>​
 +</​ListOfBatches></​code>​
  
engine/procedures/co_deleteinactivemembers_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)