Zu einer Person werden „Detail-Eigenschaften“ (aus „PersonDetails“) zurückgegeben. Unter „Detail-Eigenschaften sind Eigenschaften zu verstehen, die mehr als 100 Byte enthalten (können).
Anmerkungen zum Parameter „CharacteristicIDList“ :
1. Es gibt keinen Fehler, wenn Merkmale übergeben werden, die nicht zum Personen-Typ der identifizierten bzw. angegebenen Person passen oder für den kein lesender Zugriff besteht (s. pm_GetPChAccRestrForUsers_Ad), sondern diese werden einfach ignoriert !
2. Wenn Details einer anderen Person (s. Anmerkung zum Parameter „PersonID“) ermittelt werden sollen, werden Merkmale, auf die KEIN Zugriff erlaubt ist, ebenfalls IGNORIERT !
Anmerkung zum Parameter „PersonID“ :
Sollen Personendaten zu einer anderen Person ausgegebenen werden, kann diese Person über den Parameter „PersonID“ identifiziert werden. Natürlich klappt dies nur, wenn die beiden Personen auch irgendwie in einer Beziehung zueinander stehen :
1. Zugriff ist erlaubt, wenn die identifizierte Person Auftraggeber eines Auftrags ist, bei dem „PersonID“ die Lieferanschrift („DeliveryPersonID“) ist UND der „PersonTypeSettings“-Eintrag zum Schlüssel „UnlimitedAccessToDeliveryPersonData“ (zur „PersonTypeID = 0“) auf „1“ konfiguriert ist. In diesem Fall besteht Zugriff auf Detail-Eigenschaften zu ALLEN Merkmalen.
2. Andernfalls ist der Zugriff nur erlaubt, wenn aktuell eine Beziehung der identifizierten Person zur „PersonID“ besteht, deren „AccessLevel“ (s. gleichnamige Rückgabespalte von pm_GetPersonRelationships_Pu) dies erlaubt. Zu welchen Merkmalen aber Detail-Eigenschaften eingesehen werden dürfen, regelt ein „RelationshipSettings“-Eintrag zum Schlüssel „AllowedCharacIDs_Read“ (siehe auch „Hinweis“ in pm_GetRelationshipSettingEntry).
Anmerkung zum Parameter „IncludeCharacsWithNoDetails“ :
Der Parameter „IncludeCharacsWithNoDetails“ gibt an, ob in der Ergebnismenge nur Merkmale sein sollen, zu denen es auch tatsächlich „Details“ zur Person gibt oder nicht. Ist z.B. nichts in „CharacteristicIDList“ angegeben, und wird „1“ in „IncludeCharacsWithNoDetails“ übergeben, enthält man somit für jedes dem Personen-Typ (der identifizierten Person bzw. von „PersonID“) zugeordneten Merkmals einen Datensatz.
ACHTUNG : Ist eine „PersonID“ angegeben, und besitzt die identifizierte Person nur auf bestimmte Merkmale Zugriffsrechte (s.o.), sind in jedem Fall nur die Merkmale im Ergebnis, die auch „gelesen“ werden dürfen (im schlechtesten Fall ist die Ergebnismenge also leer) !
Anmerkung zum Parameter „DetailsRelatedToUniqueID“ :
Eine weitere Möglichkeit, an „Details“ einer Person zu gelangen, ist im Parameter „DetailsRelatedToUniqueID“ die „UniqueID“ eines Besuchers anzugeben. Wenn dieser Parameter angegeben wird, ignorieren wir „PersonIdentificationValues“ (man kann dann dort auch z.B. „NULL“ übergeben) und tun folgendes :
Wir versuchen, eine Person des Typs „PersonTypeID“ zu ermitteln, die zum aktuellen Zeitpunkt dem durch „DetailsRelatedToUniqueID“ identifizierten Besucher zugeordnet ist (gelingt dies nicht, gibt es einen entsprechenden Fehler).
Zu dieser Person ermitteln wir entweder alle „Details“ zu Merkmalen, die (zur „PersonTypeID“) in „PersonTypeSettings“ zum Schlüssel „PersonCharacteristicIDsGrantedByUniqueID_Details“ konfiguriert sind oder nur die „Details“ zu den Merkmalen, die sich aus der Schnittmenge der in „CharacteristicIDList“ angegebenen IDs und den IDs in besagtem „PersonTypeSettings“-Eintrag
ergeben.
Hinweis : Es gibt also keinen Fehler, wenn in „CharacteristicIDList“ Merkmale angegeben sind, die nicht via „PersonCharacteristicIDsGrantedByUniqueID_Details“ freigeschaltet sind.
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | person management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
PersonIdentificationValues | Liste (durch '¶' getrennt) 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) | 3.5.6 | |
PersonTypeID | 1 | 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 | 3.5.6 |
CaseSensitive | 1 | „0“ : Der Vergleich der Identifizierungsdaten erfolgt unabhängig von der Groß- und Kleinschreibung „1“ : Die Identifizierungsdaten werden EXAKT verglichen | bit | 3.5.6 |
CharacteristicIDList | NULL | Liste von Merkmal-IDs (durch '¶' getrennt), zu denen die „Detail-Eigenschaften“ ermittelt werden sollen. Bei Angabe von „NULL“ / '' werden alle zum Personen-Typ (der identifizierten bzw. angegebenen Person) gehörenden Merkmalen berücksichtigt. | varchar(255) | 3.5.6 |
PersonID | NULL | ID der Person, zu der die „Detail-Eigenschaften“ ausgegeben werden sollen. Angeben, falls NICHT die „Detail-Eigenschaften“ der identifizierten Person ermittelt werden sollen. (siehe Beschreibung) | integer | 3.5.6 |
SortedResult | 0 | Wurde „nichts“ für „CharacteristicIDList“ angegeben oder wird hier „1“ übergeben, ist die Rückgabemenge nach der „SortNo“ der Merkmale (absteigend) geordnet. Andernfalls wird aufsteigend nach der Reihenfolge der IDs in „CharacteristicIDList“ sortiert. | bit | 3.5.6 |
IncludeCharacsWithNoDetails | 0 | „0“ : Es sind nur die Merkmale in der Rückgabemenge, zu denen die Person „Detail-Eigenschaften“ besitzt „1“ : Im Ergebnis sind ALLE Merkmale, die via „CharacteristicIDList“ angegeben wurden bzw. die zum Personen-Typ der Person gehören | bit | 3.5.6 |
DetailsRelatedToUniqueID | NULL | Eindeutige ID eines Besuchers. Wenn angegeben, ignorieren wir „PersonIdentificationValues“ und ermitteln „Details“ für die Person (des Typs „PersonTypeID“), die aktuell diesem Besucher zugeordnet ist. | varchar(50) | 6.0.3 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
PositionOfCharacteristicIDInCharacteristicIDList5) | Wird nicht ausgegeben, bestimmt aber die Sortierung der Rückgabemenge, falls „CharacteristicIDList NOT IN (NULL, '')“. Das Ergebnis ist dann nach der Reihenfolge der IDs im Parameter „CharacteristicIDList“ geordnet. | tinyint | 3.5.6 |
SortNo6) | Wird nicht ausgegeben, sondern nur zur Sortierung der Rückgabemenge benötigt. Bestimmt die Reihenfolge des Merkmals „CharacteristicID“ innerhalb aller Merkmale | smallint | 3.5.6 |
CharacteristicDescription | Bezeichnung des Personen-Merkmals „CharacteristicID“ | varchar(100) | 3.5.6 |
Details | Die „Detail-Eigenschaft“ der Person „PersonID“ zum Merkmal „CharacteristicID“ | text | 3.5.6 |
CharacteristicID | ID eines Personen-Merkmals. Besteht für ein Merkmal eine komplett lesende Zugriffsbeschränkung (s. pm_GetPChAccRestrForUsers_Ad) für den Aufrufer, FEHLT der entsprechende Datensatz im Ergebnis ! | smallint | 3.5.6 |
wenn CharacteristicIDList IN (NULL, '')
wenn SortedResult = 0 und CharacteristicIDList NOT IN (NULL, '')
wenn SortedResult = 1 und CharacteristicIDList NOT IN (NULL, '')
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 7) |
---|---|---|
-670 | Daten anderer Personen können nicht geändert/eingesehen werden, wenn keine entspr. Beziehung besteht | nur direkt |
-660 | Identifikation fehlgeschlagen | nur indirekt |
-624 | Fehlender oder falscher Eintrag in RelationshipSettings | nur indirekt |
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | nur indirekt |
-601 | Es konnte keine gültige VisitorID ermittelt werden oder es ist keine PersonID zugeordnet | nur direkt |
-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 |
-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 | direkt und 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.
7.0.7 | 2015-01-29 | „Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670 |
6.5.2 | 2013-02-26 | 1. Beschränkung für „CharacteristicIDList“ (auf 253 Bytes) ist weggefallen 2. Interne Anpassungen (Spalte „Visible“ von „PersonCharacteristics“ ist weggefallen) |
6.0.3 | 2011-09-07 | Implementierung des neuen „PersonTypeSettings“-Eintrags „PersonCharacteristicIDsGrantedByUniqueID_Details“ ⇒ Neuer Parameter „DetailsRelatedToUniqueID |
5.1.10 | 2007-03-12 | 1. Berücksichtigung des neuen „AccessLevel“-features in „PersonRelationships“ 2. „CharacteristicIDList“ darf [aus internen Gründen] ab 5.1.10 nur noch maximal 253 Zeichen enthalten 3. Performance-Verbesserung [u.a. durch Wegfall einer tempor. Tabelle] |
4.0.0 | 2003-04-03 | 1. Fehler bei der Sortierung der Rückgabemenge in einem Fall und Fehler in der Doku bzgl. der Sortierung 2. Fehlende Index-Angabe (für den „optimizer“) bei „Orders“-Tabelle ! |
3.5.6 | 2001-04-17 | 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 GET 'http://<partner>-<project>.dstore.de/default/engine/pm_GetPersonDetails_Pu?PersonIdentificationValues=<value>'
Mit xmllint 8) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/pm_GetPersonDetails_Pu?PersonIdentificationValues=<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_GetPersonDetails_Pu', array( 'PersonIdentificationValues' => '<value>', // 'PersonTypeID' => 1, // 'CaseSensitive' => 1, // 'CharacteristicIDList' => NULL, // 'PersonID' => NULL, // 'SortedResult' => 0, // 'IncludeCharacsWithNoDetails' => 0, // 'DetailsRelatedToUniqueID' => NULL ) ); $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_GetPersonDetails_Pu"> <Parameters> <Parameter Name="PersonIdentificationValues"><!-- varchar value --></Parameter> <!-- <Parameter Name="PersonTypeID">1</Parameter> --> <!-- <Parameter Name="CaseSensitive">1</Parameter> --> <!-- <Parameter Name="CharacteristicIDList">NULL</Parameter> --> <!-- <Parameter Name="PersonID">NULL</Parameter> --> <!-- <Parameter Name="SortedResult">0</Parameter> --> <!-- <Parameter Name="IncludeCharacsWithNoDetails">0</Parameter> --> <!-- <Parameter Name="DetailsRelatedToUniqueID">NULL</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>