Prozedur, um die Zugriffrechte, die eine Person auf eine in Beziehung stehende Person hat, zu ändern.
Hinweis :
Die Identifizierung wird case-sensitiv durchgeführt
Anmerkung zum Parameter „AccessLevel“ :
Sobald „echte“ Zugriffsrechte bestehen sollen (also „AccessLevel > 0“ ist), MÜSSEN in „RelatedIdentificationValues“ die (case-sensitiv richtigen) Identifizierungsdaten von „RelatedPersonID“ angegeben werden, sonst schlägt das Erstellen der Beziehung fehl !
Außerdem muß in „RelationshipSettings“ zur „RelationshipID“ zum Schlüssel „AllowedAccessLevels“ ein für die beiden Personentypen (von „RelatedPersonID“ und von der identifizierten Person) gültiger Eintrag konfiguriert sein (s. pm_GetRelationshipSettingEntry), der angibt, welche Zugriffsrechte maximal vergeben werden können. Verletzt „AccessLevel“ diese Bedingung, gibt es ebenfalls einen Fehler.
| HTTP-Method | POST | 
| HTTP-Auth | Optional | 
| Tags | |
| Engine-Kategorie | person management | 
| Engine-Typ | Daten-Änderung | 
| Letzte Aktualisierung | 6.5.3 (2013-03-18) | 
| Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version | 
|---|---|---|---|---|
| PersonIdentificationValues | Liste von Werten, die die Person identifizieren. Diese Werte müssen Eigenschaften zu den Merkmal-IDs sein, die in „PersonTypeSettings“ zur „PersonTypeID“ zum Schlüssel „PersonIdentificationIDs“ hinterlegt sind. | varchar(255) | 5.1.10 | |
| PersonTypeID | ID des Personen-Typs dem die zu identifizierende Person angehört. Dieser muß bei einer Identifizierung immer mit angegeben werden, da die Merkmale zur Identifizierung pro Personentyp variieren können. | tinyint | 5.1.10 | |
| UniqueID | Eindeutige ID eines Besuchers, die der zu identifizierenden Person aktuell zugeordnet ist. Falls die Identifizierungsdaten zur Person in „SessionManagement“ (zu dieser „UniqueID“) gespeichert sind, darf „PersonIdentificationValues“ auch „NULL“ sein. | varchar(50) | 5.1.10 | |
| RelatedPersonID | ID einer Person, zu der die identifizierte Person aktuell eine Beziehung (der Art „RelationshipID“) haben muß | integer | 5.1.10 | |
| RelationshipID | ID der Art der (aktuell bestehenden !) Beziehung zu „RelatedPersonID“ | tinyint | 5.1.10 | |
| AccessLevel | Summe von Zugriffsrechten, die die identifizierte Person auf „RelatdPersonID“ haben soll. Mögliche Einzel-Zugriffsrechte : s. pm_GetRelationAccessLevels. Falls ein Wert größer „0“ angegeben ist, muß „RelatedIdentificationValues“ korrekt belegt sein ! | smallint | 5.1.10 | |
| RelatedIdentificationValues | NULL | Falls „AccessLevel > 0“ ist, müssen hier die (case-sensitiv richtigen) Identifizierungsdaten von „RelatedPersonID“ angegeben werden. Zusätzlich muß aber „AllowedAccessLevels“ in „RelationshipSettings“ entsprechend konfiguriert sein (s. Beschreibung) ! | varchar(255) | 5.1.10 | 
| SeparatorInIdentVals | '¶' | Gibt an, durch welche Zeichenkette die Werte in „PersonIdentificationValues“ und (falls angegeben) „RelatedIdentificationValues“ getrennt sind | varchar(4) | 5.5.0 | 
Die Prozedur hat keine Rückgaben.
Die Prozedur hat keine Output-Parameter.
| Code | Beschreibung | Quelle 4) | 
|---|---|---|
| -679 | Mind. ein Zugriffsrecht darf aufgrund eines „RelationshipSettings“-Eintrags nicht vergeben werden | nur direkt | 
| -660 | Identifikation fehlgeschlagen | direkt und indirekt | 
| -624 | Fehlender oder falscher Eintrag in RelationshipSettings | 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.3 | 2013-03-18 | 1. Datentyp von Parameter „SeparatorInIdentVals“ wurde zwecks UTF8-Unterstützung erweitert [von „1“ auf „4“] 2. Interne Anpassungen zwecks UTF8-Unterstützung | 
| 6.0.3 | 2011-09-07 | Bugfix: Parameter „PersonTypeID“ ist ab sofort vom richtigen Datentyp „tinyint“, nicht mehr fälschlicherweise „smallint“ | 
| 5.5.0 | 2008-01-07 | 1. Neuer Parameter „SeparatorInIdentVals“ 2. Interne Ermittlung der Identifizierungsdaten verlagert auf die neue [interne] Prozedur „_pm_GetIdentValues“ | 
| 5.1.10 | 2007-03-12 | 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 POST 'http://<partner>-<project>.dstore.de/default/engine/pm_ModifyPersonRelationship_Pu?PersonIdentificationValues=<value>&PersonTypeID=<value>&UniqueID=<value>&RelatedPersonID=<value>&RelationshipID=<value>&AccessLevel=<value>'
Mit xmllint 5) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/pm_ModifyPersonRelationship_Pu?PersonIdentificationValues=<value>&PersonTypeID=<value>&UniqueID=<value>&RelatedPersonID=<value>&RelationshipID=<value>&AccessLevel=<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'), 'pm_ModifyPersonRelationship_Pu', array( 'PersonIdentificationValues' => '<value>', 'PersonTypeID' => <value>, 'UniqueID' => '<value>', 'RelatedPersonID' => <value>, 'RelationshipID' => <value>, 'AccessLevel' => <value>, // 'RelatedIdentificationValues' => NULL, // '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="pm_ModifyPersonRelationship_Pu"> <Parameters> <Parameter Name="PersonIdentificationValues"><!-- varchar value --></Parameter> <Parameter Name="PersonTypeID"><!-- tinyint value --></Parameter> <Parameter Name="UniqueID"><!-- varchar value --></Parameter> <Parameter Name="RelatedPersonID"><!-- integer value --></Parameter> <Parameter Name="RelationshipID"><!-- tinyint value --></Parameter> <Parameter Name="AccessLevel"><!-- smallint value --></Parameter> <!-- <Parameter Name="RelatedIdentificationValues">NULL</Parameter> --> <!-- <Parameter Name="SeparatorInIdentVals">'¶'</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>