Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— |
engine:procedures:co_createnewcommunitymember_pu [11.01.2016 ] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== co_CreateNewCommunityMember_Pu ===== | ||
+ | |||
+ | Legt eine neues Communitymitglied an. Dabei handelt es sich im wesentlichen um das Anlegen einer neuen Person durch die Prozedur [[dstoreproc>pm_InsertNewPerson_Pu]]. Zusätzlich dazu werden die benötigten Einträge in den Community-Tabellen angelegt.\\ | ||
+ | |||
+ | Möchte man ein Mitglied gleichzeitig in MEHREREN Communities anlegen, setzt man "CommunityID" auf "NULL" und fügt die entsprechenden IDs in "tempdb.dbo.OneID" ein. Selbstverständlich müssen die Mitglieder aller angegebenen Communities denselben Personentyp haben...\\ | ||
+ | |HTTP-Method|POST | | ||
+ | |HTTP-Auth|Optional | | ||
+ | |Tags|{{tag>[co Create New Community Member Pu]}}| | ||
+ | |Engine-Kategorie|communities | | ||
+ | |Engine-Typ|Daten-Änderung | | ||
+ | |Letzte Aktualisierung|4.0.4 (2003-08-26)| | ||
+ | |||
+ | ==== 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, in der ein neues Mitglied angelegt werden soll. Seit Version 3.5.7 : "NULL" übergeben und mehrere "CommunityID"s in "tempdb.dbo.OneID" angeben möglich\\ |smallint|3.5.0| | ||
+ | |__UniqueID__| |Eindeutige ID eines Besuchers (zwingend erforderlich - wenn kein Besucher in "Visitors" mit dieser ID exisitert, gibt es einen Fehler)\\ |varchar(50)|3.5.0| | ||
+ | |__CharacteristicIDList1__| |ID von Personen-Merkmalen (durch '¶' getrennt), zu denen in "ValueList1" die zugehörigen Eigenschaften übergeben sind, die das neue Mitglied besitzt\\ |varchar(255)|3.5.0| | ||
+ | |__ValueList1__| |Eigenschaften (durch '¶' getrennt) des neuen Mitglieds, die zu den in "CharacteristicIDList1" angegebenen Merkmalen korrespondieren\\ |varchar(255)|3.5.0| | ||
+ | |CharacteristicIDList2|NULL |Wie "CharacteristicIDList1". Kann verwendet werden, falls nicht alle Eigenschaften (aufgrund der Beschränkung auf 255 Zeichen) in "ValueList1" angegeben werden können\\ |varchar(255)|3.5.0| | ||
+ | |ValueList2|NULL |Wie "ValueList1". Kann verwendet werden, falls nicht alle Eigenschaften (aufgrund der Beschränkung auf 255 Zeichen) in "ValueList1" angegeben werden können\\ |varchar(255)|3.5.0| | ||
+ | |PersonCharacCategoryID|1 |ID der Kategorie von Personen-Merkmalen, in der alle Pflichtmerkmale zusammengefaßt sind. Eine solche Kategorie ist für jeden Personen-Typ festgelegt, um zu definieren, welche Eigenschaften UNBEDINGT vorhanden sein müssen (sonst schlägt das Anlegen fehl)\\ |tinyint|3.5.0| | ||
+ | |ResultInErrorIDList|1 |Wenn es beim Anlegen Fehler bzgl. der Eigenschaften gab, kann hierüber gesteuert werden, ob "ErrorIDList" mit den fehlerhaften Merkmal-IDs gefüllt oder ob eine Rückgabemenge erstellt werden soll\\ |bit|3.5.0| | ||
+ | |ValueIDsForPredefinedCharacs|1 |Falls "1" übergeben wird, sind (in "ValueList1" bzw. "ValueList2") zu Merkmalen mit vordefinierten Werten ("PredefinedValues = 1") nicht die Eigenschaften selbst sondern die IDs ("ValueID"s) angegeben\\ |bit|3.5.0| | ||
+ | |CancelOnError|0 |Gibt es bzgl. der Eigenschaften Fehler, die sich aber nicht auf Pflichtmerkmale beziehen, so daß das Mitglied trotzdem angelegt werden kann, soll...\\ "0" : das Mitglied angelegt\\ "1" : das Mitglied NICHT angelegt\\ ... Werden\\ |bit|4.0.4| | ||
+ | ==== Rückgabe ==== | ||
+ | |||
+ | === wenn ResultInErrorIDList = 0 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |PersonCharacteristicID|ID eines Personen-Merkmals, bei dem ein Fehler aufgetreten ist\\ |smallint|3.5.0 | | ||
+ | |ResultCode|Fehlercode zum aufgetretenen Fehler (Bedeutung siehe [[dstoreproc>pm_InsertNewPerson_Pu]])\\ |integer|3.5.0 | | ||
+ | ==== Output-Parameter ==== | ||
+ | |||
+ | |PersonID|Ausgabeparameter für die ID des Mitgliedes, das angelegt wurde| | ||
+ | |ErrorIDList|Durch '¶' separierte IDs von den Merkmalen, bei denen es einen Fehler gab (nur falls "ResultInErrorIDList = 1")| | ||
+ | ==== 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| | ||
+ | |-712|Die Personentypen der Communities stimmen nicht überein|nur direkt| | ||
+ | |-710|Falscher Personentyp für die Community|nur direkt| | ||
+ | |-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| | ||
+ | |-650|Es sind nicht alle Pflichtmerkmale vorhanden|nur indirekt| | ||
+ | |-642|Inkrementelle Änderung konnte aufgrund paralleler Änderungen nicht durchgeführt werden|nur indirekt| | ||
+ | |-641|Die "Unique"-Eigenschaft mindestens eines Merkmals ist verletzt - Prozedur wurde abgebrochen|nur indirekt| | ||
+ | |-640|Einige Personendaten sind ungültig|nur indirekt| | ||
+ | |-630|Personendaten konnten nicht angelegt werden|nur indirekt| | ||
+ | |-621|Fehlender oder falscher Eintrag in PersonTypeSettings|nur indirekt| | ||
+ | |-610|Fehlende oder falsche Daten in PersonMetaInformation|nur indirekt| | ||
+ | |-602|Zur defaultUniqueID ("VisitorID = -2") können keinerlei Daten gespeichert oder verändert werden|nur indirekt| | ||
+ | |-600|Es konnte keine gültige VisitorID ermittelt werden|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| | ||
+ | |-561|Prozedur kann nicht ausgeführt werden|nur indirekt| | ||
+ | |-550|Fehlender oder falscher Eintrag in Settings|nur indirekt| | ||
+ | |-540|Falsches Format|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| | ||
+ | |-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 ==== | ||
+ | |||
+ | |4.0.4 |2003-08-26|Neuer Parameter "CancelOnError"\\ | | ||
+ | |3.5.16 |2002-04-25|\\ | | ||
+ | |3.5.15 |2002-03-12|\\ | | ||
+ | |3.5.7 |2001-05-04|\\ | | ||
+ | |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_CreateNewCommunityMember_Pu|co_CreateNewCommunityMember_Pu im Engine Playground öffnen]] | ||
+ | == cURL == | ||
+ | Unformatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/co_CreateNewCommunityMember_Pu?CommunityID=<value>&UniqueID=<value>&CharacteristicIDList1=<value>&ValueList1=<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_CreateNewCommunityMember_Pu?CommunityID=<value>&UniqueID=<value>&CharacteristicIDList1=<value>&ValueList1=<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_CreateNewCommunityMember_Pu', | ||
+ | array( | ||
+ | 'CommunityID' => <value>, | ||
+ | 'UniqueID' => '<value>', | ||
+ | 'CharacteristicIDList1' => '<value>', | ||
+ | 'ValueList1' => '<value>', | ||
+ | // 'CharacteristicIDList2' => NULL, | ||
+ | // 'ValueList2' => NULL, | ||
+ | // 'PersonCharacCategoryID' => 1, | ||
+ | // 'ResultInErrorIDList' => 1, | ||
+ | // 'ValueIDsForPredefinedCharacs' => 1, | ||
+ | // 'CancelOnError' => 0 | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $service->execute($request); | ||
+ | |||
+ | $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); | ||
+ | $ResultSet = $xml_result->getRowsAsArray(); | ||
+ | |||
+ | $OutputParams = $xml_result->getOutputParametersAsArray();</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_CreateNewCommunityMember_Pu"> | ||
+ | <Parameters> | ||
+ | <Parameter Name="CommunityID"><!-- smallint value --></Parameter> | ||
+ | <Parameter Name="UniqueID"><!-- varchar value --></Parameter> | ||
+ | <Parameter Name="CharacteristicIDList1"><!-- varchar value --></Parameter> | ||
+ | <Parameter Name="ValueList1"><!-- varchar value --></Parameter> | ||
+ | <!-- <Parameter Name="CharacteristicIDList2">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ValueList2">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="PersonCharacCategoryID">1</Parameter> --> | ||
+ | <!-- <Parameter Name="ResultInErrorIDList">1</Parameter> --> | ||
+ | <!-- <Parameter Name="ValueIDsForPredefinedCharacs">1</Parameter> --> | ||
+ | <!-- <Parameter Name="CancelOnError">0</Parameter> --> | ||
+ | </Parameters> | ||
+ | </Procedure> | ||
+ | </Batch> | ||
+ | </ListOfBatches></code> | ||