Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:co_insertnewcommunity_ad

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 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-MethodPOST
HTTP-AuthOptional
Tags
Engine-Kategorieconfigurations
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) 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.
smallint3.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.
smallint3.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.
smallint3.5.0
QuestionCharacteristicIDNULL ID eines Personen-Merkmals für das „Frage-Antwort“-Spiel, wenn ein Mitglied sein Paßwort vergessen hat (siehe co_GetLostPasswordQuestion_Pu bzw. co_GetLostPassword_Pu). Falls angegeben, muß auch „AnswerCharacteristicID“ übergeben werden !
smallint3.5.0
AnswerCharacteristicIDNULL ID eines Personen-Merkmals für das „Frage-Antwort“-Spiel, wenn ein Mitglied sein Paßwort vergessen hat (siehe co_GetLostPasswordQuestion_Pu bzw. co_GetLostPassword_Pu). Falls angegeben, muß auch „QuestionCharacteristicID“ übergeben werden !
smallint3.5.0
FriendRelationshipIDNULL ID einer speziellen „Beziehungs-Art“, die dazu dient, befreundete Community-Mitglieder kennzeichnen zu können (genauere Erläuterung siehe Beschreibung)
integer3.5.0
KeepMessagesInDays180 Legt fest, nach wievielen Tagen der „Garbage-Collector“ (→ mi_GarbageCollect_Ad) alte Datensätze aus „Messages“ löscht. Der Wert wird in „CommunitySettings“ zum Schlüssel „sys_KeepMessagesInDays“ gespeichert.
smallint3.5.7
KeepUsersOnlineTimeInDays45 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.
smallint3.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 4)
-711Es konnte keine Merkmal-Kategorie mit Pflichtmerkmalen ermittelt werdennur direkt
-697Aktion kann nicht durchgeführt werden, da für ein Merkmal eine Zugriffsbeschränkung bestehtdirekt und indirekt
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur indirekt
-503Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabenur indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameterdirekt und indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
6.5.4 2013-04-291. 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-26Prü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-26Fehler bzgl. der automatischen Gruppen-Zuordnung
4.0.12 2004-04-30Fehler bzgl. des „Frage-Antwort-Spiels“
4.0.10 2004-03-151. 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-23Erstmalig 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:

cURL

Unformatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/co_InsertNewCommunity_Ad?CommunityName=<value>&CommunityMembersPersonTypeID=<value>&IdentifyingCharacteristicID=<value>&PasswordCharacteristicID=<value>'

Mit xmllint 5) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/co_InsertNewCommunity_Ad?CommunityName=<value>&CommunityMembersPersonTypeID=<value>&IdentifyingCharacteristicID=<value>&PasswordCharacteristicID=<value>' | xmllint --format -
dStore_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();
engine/execute

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_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>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
5)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/co_insertnewcommunity_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)