Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:pm_getpersondetails_pu

pm_GetPersonDetails_Pu

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-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieperson management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

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
PersonTypeID1 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.
tinyint3.5.6
CaseSensitive1 „0“ : Der Vergleich der Identifizierungsdaten erfolgt unabhängig von der Groß- und Kleinschreibung
„1“ : Die Identifizierungsdaten werden EXAKT verglichen
bit3.5.6
CharacteristicIDListNULL 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
PersonIDNULL 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)
integer3.5.6
SortedResult0 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.
bit3.5.6
IncludeCharacsWithNoDetails0 „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
bit3.5.6
DetailsRelatedToUniqueIDNULL 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

Rückgabe

(parameterunabhängig)

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.
tinyint3.5.6
SortNo6)Wird nicht ausgegeben, sondern nur zur Sortierung der Rückgabemenge benötigt. Bestimmt die Reihenfolge des Merkmals „CharacteristicID“ innerhalb aller Merkmale
smallint3.5.6
CharacteristicDescriptionBezeichnung des Personen-Merkmals „CharacteristicID“
varchar(100)3.5.6
DetailsDie „Detail-Eigenschaft“ der Person „PersonID“ zum Merkmal „CharacteristicID“
text3.5.6
CharacteristicIDID 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 !
smallint3.5.6
Sortierungen der Rückgabe

wenn CharacteristicIDList IN (NULL, '')

  • SortNo (absteigend)

wenn SortedResult = 0 und CharacteristicIDList NOT IN (NULL, '')

  • PositionOfCharacteristicIDInCharacteristicIDList (aufsteigend)

wenn SortedResult = 1 und CharacteristicIDList NOT IN (NULL, '')

  • SortNo (absteigend)

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 7)
-670Daten anderer Personen können nicht geändert/eingesehen werden, wenn keine entspr. Beziehung bestehtnur direkt
-660Identifikation fehlgeschlagennur indirekt
-624Fehlender oder falscher Eintrag in RelationshipSettingsnur indirekt
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-601Es konnte keine gültige VisitorID ermittelt werden oder es ist keine PersonID zugeordnetnur direkt
-599Lizenz ist ungültig oder abgelaufennur 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 abgebrochendirekt und 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-29„Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670
6.5.2 2013-02-261. Beschränkung für „CharacteristicIDList“ (auf 253 Bytes) ist weggefallen
2. Interne Anpassungen (Spalte „Visible“ von „PersonCharacteristics“ ist weggefallen)
6.0.3 2011-09-07Implementierung des neuen „PersonTypeSettings“-Eintrags „PersonCharacteristicIDsGrantedByUniqueID_Details“ ⇒ Neuer
Parameter „DetailsRelatedToUniqueID
5.1.10 2007-03-121. 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-031. 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-17Erstmalig 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 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 -
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'),
	'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();
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="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>
1)
Pflichtparameter sind unterstrichen
5) , 6)
Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.
7)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
8)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/pm_getpersondetails_pu.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)