Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:co_insertnewcommunity_ad

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

engine:procedures:co_insertnewcommunity_ad [11.01.2016 ]
engine:procedures:co_insertnewcommunity_ad [11.01.2016 ] (aktuell)
Zeile 1: Zeile 1:
 +===== co_InsertNewCommunity_Ad =====
 +
 +Legt eine neue Community an.\\ 
 +
 +
 +
 +Anmerkung zum Parameter "​FriendRelationshipID":​\\ ​
 +
 +Für jede Community ist es vorgesehen, daß es eine besondere Beziehung unterhalb von Mitgliedern geben kann, die sogenannte "​Friends-Nonfriends"​ Beziehung. Jedes Mitglied kann eine Reihe anderer Personen festlegen, die es als "​Freund"​ betrachtet (um z.B. angezeigt bekommen zu können, ob gerade diese Mitglieder auch online sind). Die Beziehung wird über "​PersonRelationships"​ abgebildet, wofür aber natürlich eine "​RelationshipID"​ erforderlich ist - eben die "​FriendRelationshipID"​. Es darf sich hierbei übrigens NICHT um eine "​SystemRelationship"​ handeln...\\ ​
 +
 +
 +
 +Wichtige Hinweise:​\\ ​
 +
 +1.) Zum Anlegen einer Person - und damit insbesondere für das Anlegen eines neuen Community-Mitglieds - ist immer eine "​PersonCharacCategoryID"​ erforderlich,​ weswegen die Prozedur sich selbst zum angegebenen Personen-Typ der Mitglieder (-> "​CommunityMembersPersonTypeID"​) diejenige Merkmal-Kategorie raussucht, die Pflichtmerkmale enthält (denn davon muß es pro Personentyp genau eine geben). Sollte das jedoch fehlschlagen,​ gibt es den Fehler "​-711"​. Die ermittelte Merkmal-Kategorie wird ebenfalls in "​CommunitySettings"​ festgehalten,​ und zwar zum Schlüssel "​CommunityMembersPersonCharacCategoryID"​.\\ ​
 +
 +2.) Für alle angegebenen Merkmal-IDs ("​PasswordCharacteristicID",​ "​QuestionCharacteristicID"​ etc.) wird gecheckt, ob diese auch dem Personentyp "​CommunityMembersPersonTypeID"​ zugewiesen sind, ansonsten gibt die Prozedur "​-500"​ zurück !\\ 
 +
 +3.) Beim Anlegen einer neuen Community wird auch eine neue Gruppe erstellt, in die alle neuen Community-Mitglieder aufgenommen werden. Hintergrund dafür ist die Zugangsberechtigung zu Foren, die primär für Gruppen gedacht ist (sonst müßte man für jede einzelne Community-Person einen entsprechenden Eintrag in "​ForumAccessForPersons"​ machen, was ziemlich mühsam sein dürfte...).\\ ​
 +
 +4.) In "​CommunitySettings"​ wird ein Eintrag zu "​PublicCharacteristicIDs"​ gemacht ("​Value"​ ist aber leer (%%''​%%) ); der dient dazu, die Merkmale festzulegen,​ die ein Community-Mitglied von einem anderen sehen darf (in einem "​Steckbrief"​ z.B.). Die IDs sollten dann nach Aufruf dieser Prozedur (durch [[dstoreproc>​co_ModifyCommunitySettings_Ad]]) festgelegt werden. Gleiches gilt für den Eintrag "​MinTimeBetweenMessagesInSeconds",​ der angibt, nach welcher Zeitspanne ein Community-Mitglied eine neue "​Instant-Message"​ an den gleichen Adressaten verfassen darf.\\ ​
 +|HTTP-Method|POST |
 +|HTTP-Auth|Optional |
 +|Tags|{{tag>​[co Insert New Community Ad]}}|
 +|Engine-Kategorie|configurations |
 +|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 ^
 +|__CommunityName__| |Name der neuen Community\\ |varchar(100)|3.5.0|
 +|__CommunityMembersPersonTypeID__| |ID eines Personen-Typs. Alle Mitglieder einer Community müssen den gleichen Personen-Typ haben, da dieser für den Identifizierungsvorgang benötigt wird. Die ID wird in "​CommunitySettings"​ zum Schlüssel "​CommunityMembersPersonTypeID"​ gespeichert.\\ |smallint|3.5.0|
 +|__IdentifyingCharacteristicID__| |ID eines Personen-Merkmals (zu dem keine lesenden Zugriffsbeschr. existieren dürfen !). Community-Mitglieder haben immer einen sogennanten "​Nickname",​ um sich untereinander eindeutig erkennen zu können. Der Nickname ist die Eigenschaft zu diesem Merkmal.\\ |smallint|3.5.0|
 +|__PasswordCharacteristicID__| |ID eines Personen-Merkmals. Da man sich an der Community immer anmelden muß, legt dieser Parameter fest, zu welchem Merkmal die Paßwörter gespeichert werden. Die ID wird zu "​PasswordCharacteristicID"​ in "​CommunitySettings"​ gespeichert.\\ |smallint|3.5.0|
 +|QuestionCharacteristicID|NULL |ID eines Personen-Merkmals für das "​Frage-Antwort"​-Spiel,​ wenn ein Mitglied sein Paßwort vergessen hat (siehe [[dstoreproc>​co_GetLostPasswordQuestion_Pu]] bzw. [[dstoreproc>​co_GetLostPassword_Pu]]). Falls angegeben, muß auch "​AnswerCharacteristicID"​ übergeben werden !\\ |smallint|3.5.0|
 +|AnswerCharacteristicID|NULL |ID eines Personen-Merkmals für das "​Frage-Antwort"​-Spiel,​ wenn ein Mitglied sein Paßwort vergessen hat (siehe [[dstoreproc>​co_GetLostPasswordQuestion_Pu]] bzw. [[dstoreproc>​co_GetLostPassword_Pu]]). Falls angegeben, muß auch "​QuestionCharacteristicID"​ übergeben werden !\\ |smallint|3.5.0|
 +|FriendRelationshipID|NULL |ID einer speziellen "​Beziehungs-Art",​ die dazu dient, befreundete Community-Mitglieder kennzeichnen zu können (genauere Erläuterung siehe Beschreibung)\\ |integer|3.5.0|
 +|KeepMessagesInDays|180 |Legt fest, nach wievielen Tagen der "​Garbage-Collector"​ (-> [[dstoreproc>​mi_GarbageCollect_Ad]]) alte Datensätze aus "​Messages"​ löscht. Der Wert wird in "​CommunitySettings"​ zum Schlüssel "​sys_KeepMessagesInDays"​ gespeichert.\\ |smallint|3.5.7|
 +|KeepUsersOnlineTimeInDays|45 |Alle Logins und Logouts werden für jedes Mitglied pro Community in "​UsersOnlineTime"​ protokolliert. Dieser Parameter bestimmt, wie lange diese Daten gehalten werden. Er wird in "​CommunitySettings"​ zum Schlüssel "​sys_KeepUsersOnlineTimeInDays"​ gespeichert.\\ |smallint|3.5.10|
 +==== Rückgabe ====
 +
 +Die Prozedur hat keine Rückgaben.
 +==== 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"​)) ^
 +|-711|Es konnte keine Merkmal-Kategorie mit Pflichtmerkmalen ermittelt werden|nur direkt|
 +|-697|Aktion kann nicht durchgeführt werden, da für ein Merkmal eine Zugriffsbeschränkung besteht|direkt und 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|
 +|-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|
 +==== 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|1. Anpassungen des Quellcodes an den aktuellen Standard\\ 2. Default-Wert von "​FriendRelationshipID"​ geändert [von "​2"​ auf "​NULL",​ weil im Standard "​2"​ für die Beziehung "​Accounts -> Default-Lieferanschrift"​ steht]\\ ​ |
 +|6.5.2 |2013-02-26|Prüfen,​ ob es sich bei "​IdentifyingCharacteristicID"​ um eine Personen-MerkmalID handelt mit Beschränkung auf den\\ lesenden Zugriff handelt. Wenn ja, wird nun ein Fehler geworfen.\\ ​ |
 +|5.0.4 |2005-09-26|Fehler bzgl. der automatischen Gruppen-Zuordnung\\ ​ |
 +|4.0.12 |2004-04-30|Fehler bzgl. des "​Frage-Antwort-Spiels"​\\ ​ |
 +|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\\ ​ |
 +|3.5.20 |2002-07-22|\\ ​ |
 +|3.5.10 |2001-07-14|\\ ​ |
 +|3.5.7 |2001-05-04|\\ ​ |
 +|3.5.6 |2001-04-17|\\ ​ |
 +|3.5.2 |2001-01-28|\\ ​ |
 +|3.5.0 |2000-11-23|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_InsertNewCommunity_Ad|co_InsertNewCommunity_Ad im Engine Playground öffnen]]
 +== cURL ==
 +Unformatierte Ausgabe:
 +<code bash>
 +curl -X POST  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​co_InsertNewCommunity_Ad?​CommunityName=<​value>&​CommunityMembersPersonTypeID=<​value>&​IdentifyingCharacteristicID=<​value>&​PasswordCharacteristicID=<​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_InsertNewCommunity_Ad?​CommunityName=<​value>&​CommunityMembersPersonTypeID=<​value>&​IdentifyingCharacteristicID=<​value>&​PasswordCharacteristicID=<​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_InsertNewCommunity_Ad',​
 + array(
 + '​CommunityName'​ => '<​value>',​
 + '​CommunityMembersPersonTypeID'​ => <​value>,​
 + '​IdentifyingCharacteristicID'​ => <​value>,​
 + '​PasswordCharacteristicID'​ => <​value>,​
 + // '​QuestionCharacteristicID'​ => NULL,
 + // '​AnswerCharacteristicID'​ => NULL,
 + // '​FriendRelationshipID'​ => NULL,
 + // '​KeepMessagesInDays'​ => 180,
 + // '​KeepUsersOnlineTimeInDays'​ => 45
 + )
 +);
 +
 +$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_InsertNewCommunity_Ad">​
 + <​Parameters>​
 + <​Parameter Name="​CommunityName"><​!-- varchar value --></​Parameter>​
 + <​Parameter Name="​CommunityMembersPersonTypeID"><​!-- smallint value --></​Parameter>​
 + <​Parameter Name="​IdentifyingCharacteristicID"><​!-- smallint value --></​Parameter>​
 + <​Parameter Name="​PasswordCharacteristicID"><​!-- smallint value --></​Parameter>​
 + <!-- <​Parameter Name="​QuestionCharacteristicID">​NULL</​Parameter>​ -->
 + <!-- <​Parameter Name="​AnswerCharacteristicID">​NULL</​Parameter>​ -->
 + <!-- <​Parameter Name="​FriendRelationshipID">​NULL</​Parameter>​ -->
 + <!-- <​Parameter Name="​KeepMessagesInDays">​180</​Parameter>​ -->
 + <!-- <​Parameter Name="​KeepUsersOnlineTimeInDays">​45</​Parameter>​ -->
 + </​Parameters>​
 + </​Procedure>​
 + </​Batch>​
 +</​ListOfBatches></​code>​
  
engine/procedures/co_insertnewcommunity_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)