Ermittelt Eigenschaften zu einer Person.
Anmerkung zu den Parametern „InputParameter“, „InputIsUniqueID“ und „PersonTypeID“ :
Falls Identifizierungsdaten angegeben sind (also „InputIsUniqueID = 0“), wird die übliche Personen-Identifizierung durchgeführt; hier wird IMMER der „PersonTypeSettings“-Eintrag „PersonIdentificationIDs“ zur „PersonTypeID“ herangezogen - „PersonGrantAccessIDs“ (zur „PersonTypeID = 0“) werden NICHT beachtet ! Zur grundsätzlichen Funktsionsweise der Personen-Identifizierung siehe pm_CheckPersonIdentity_Pu.
Ist nur die „UniqueID“ eines Besuchers bekannt (also „InputIsUniqueID = 1“), werden Eigenschaften zur Person des Typs „PersonTypeID“ ermittelt, die aktuell dem durch die (in „InputParameter“ angegebene) „UniqueID“ gekennzeichneten Besucher zugeordnet ist. Dabei werden nur die Merkmale berücksichtigt, die in „PersonTypeSettings“ zur „PersonTypeID“ zum Schlüssel „PersonCharacteristicIDsGrantedByUniqueID“ hinterlegt sind. In diesem Fall werden natürlich die Parameter „CharacteristicIDList“ und „PersonID“ ignoriert !
Mit „InputIsUniqueID = 2“ kann man als dritte Möglichkeit angeben, daß „InputParameter“ eine „SessionID“ enthält. Zu dieser sollen die Identifizierungsdaten aus „SessionManagement“ (s. mi_GetSessionManagement_Pu) herangezogen werden, genauer zum Schlüssel „PersonIdentificationValues_Type<PersonTypeID>“. Alles weitere funktioniert dann genauso wie im Fall „InputIsUniqueID = 0“ (s.o.) !
Anmerkung zum Parameter „CharacteristicIDList“ :
Es gibt keinen Fehler, wenn Merkmale übergeben werden, die nicht zum Personen-Typ der identifizierten bzw. angegebenen Person passen oder für den Benutzer, der diese Prozedur aufruft bzw. (wenn „PCharacsBackwardCompatible“ in „PersonTypeSettings“ auf „1“ gesetzt ist) für den „publicuser“ („UserID = 0“) nicht sichtbar sind (s. pm_GetPChAccRestrForUsers_Ad), sondern diese werden einfach 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 eine bestimmte „Beziehung“ der identifizierten Person zur „PersonID“ besteht :
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 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 Eigenschaften eingesehen werden dürfen, regelt ein „RelationshipSettings“-Eintrag zum Schlüssel „AllowedCharacIDs_Read“ (siehe auch „Hinweis“ in pm_GetRelationshipSettingEntry).
Anmerkung zur Rückgabespalte „Modify“ :
Gibt an, ob der spezielle Benutzer „publicuser“ („UserID = 0“, s. mi_GetUserInfo_Ad) Eigenschaften/Details zum Merkmal „CharacteristicID“ ÄNDERN darf bzw. eingeschränkt ändern darf. Falls der „PersonTypeSettings“-Eintrag (zur „PersonTypeID = 0“) zum Schlüssel „PCharacsBackwardCompatible“ auf „1“ gesetzt ist, hat dieser Wert die Bedeutung, ob Änderungen mit z.B. pm_InsertNewPerson_Pu oder pm_ModifyPersonData_Pu (egal welcher Benutzer sie ausführt) möglich bzw. eingeschränkt erlaubt sind. Mögliche Werte :
Anmerkung zur Rückgabespalte „Visible“ :
Wird hier eine „0“ ausgegeben, werden in Prozeduren, die vom Benutzer „publicuser“ („UserID = 0“, s. mi_GetUserInfo_Ad) ausgeführt werden, KEINE Eigenschaften/Details bzw. nur „Teile von Eigenschaften“ (s. Rückgabespalte „ReadAccessRestrictionPattern“) zum Merkmal „CharacteristicID“ ausgegeben. Falls der „PersonTypeSettings“-Eintrag (zur „PersonTypeID = 0“) zum Schlüssel „PCharacsBackwardCompatible“ auf „1“ gesetzt ist, hat dieser Wert die Bedeutung, daß in „public“-Prozeduren KEINE Eigenschaften/Details bzw. nur „Teile von Eigenschaften“ zum Merkmal „CharacteristicID“ ausgegeben werden.
Anmerkung zur Rückgabespalte „ReadAccessRestrictionPattern“ :
Immer „NULL“ wenn „Visible = 1“ ist. Falls hier ein Wert zurückkommt, bedeutet dies, daß der „publicuser“ („UserID = 0“, s. mi_GetUserInfo_Ad) den Teil von Eigenschaften zum Merkmal „CharacteristicID“ einsehen darf, der diesem „pattern“ entspricht (für Details bedeutungslos). Derzeit mögliche Werte :
Beispielsweise bedeutet „#left(4)#“, daß nur (maximal) die ERSTEN 4 Zeichen der Eigenschaft zurückgeliefert werden.
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | person management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.8 (2015-08-21) |
InputParameter | Je nach „InputIsUniqueID“ handelt es sich entweder um Identifizierungsdaten oder um eine „UniqueID“ oder um eine „SessionID“ (s. Beschreibung) | varchar(255) | 3.5.0 | |
InputIsUniqueID | 0 | „InputParameter“ enthält… „0“ : Identifizierungsdaten „1“ : Die „UniqueID“ eines Besuchers (der eine Person zugeordnet ist) „2“ : Eine „SessionID“ (zu der Identifizierungsdaten hinterlegt sind) | tinyint | 3.5.0 |
PersonTypeID | 1 | ID des Personen-Typs dem die zu identifizierende Person angehört bzw. (falls „InputIsUniqueID = 1“) : die Person, die dem durch „InputParameter“ gekennzeichneten Besucher aktuell zugeordnet ist, muß diesem Typ angehören. (siehe Beschreibung !) | tinyint | 3.5.0 |
LanguageID | 0 | ID einer Sprache. Wenn angegeben, versucht die Prozedur Übersetzungen zur Merkmal-Bezeichnung (→ „CharacteristicDescription“) und zur Eigenschaft (→ „Value“) zu finden - falls keine Übersetzung existiert, wird der Wert in der Standardsprache ausgegeben. | tinyint | 3.5.0 |
CharacteristicIDList | NULL | Liste von Merkmal-IDs (durch '¶' getrennt), zu denen die Eigenschaften ermittelt werden sollen. Bei Angabe von „NULL“ / '' (leerer „string“) werden alle vorhandenen Eigenschaften ermittelt. Der Parameter wird nicht beachtet, falls „InputIsUniqueID = 1“ ! | varchar(255) | 3.5.0 |
DateFormat | 'german' | Bestimmt das Format der Ausgabe von Datums-Eigenschaften. Dabei wird Groß- und Kleinschreibung NICHT beachtet) : * 'german' o. 'germany' : Tag-Monat-Jahr (Standardwert) * 'english' o. 'england' : Monat-Tag-Jahr | varchar(10) | 3.5.0 |
CaseSensitive | 1 | Nur relevant, falls „InputIsUniqueID = 0“ ! „0“ : Der Vergleich der Identifizierungsdaten erfolgt unabhängig von der Groß- und Kleinschreibung „1“ : Die Identifizierungsdaten werden EXAKT verglichen | bit | 3.5.0 |
PersonID | NULL | Nur relevant, falls „InputIsUniqueID = 0“ ! ID der Person, zu der die Eigenschaften ausgegeben werden sollen. Angeben, falls NICHT die Eigenschaften der identifizierten Person ermittelt werden sollen. (siehe Beschreibung) | integer | 3.5.5 |
DateAndTime | NULL | Zeitpunkt, zu dem die Eigenschaften der Person ermittelt werden sollen. Bei Angabe von „NULL“ werden die aktuellen Eigenschaften zurückgegeben. | datetime | 4.0.0 |
GetActualProperties | 0 | „1“ angeben, damit die Rückgabespalte „ActualValue“ nicht mit „NULL“ belegt wird, sondern mit der aktuell gültigen Eigenschaft der Person zum jeweiligen Merkmal | bit | 4.0.0 |
SeparatorForIdentVals | '¶' | varchar(4) | 7.0.8 |
Spaltenname | Beschreibung | SQL-Datentyp1) | ab Version |
---|---|---|---|
PositionOfCharacteristicIDInCharacteristicIDList2) | Wird nicht ausgegeben, aber zur Sortierung in einem Fall benötigt. Es handelt sich um die Position von „CharacteristicID“ in „CharacteristicIDList“. | tinyint | 3.5.0 |
PositionOfCharacteristicIDInSettingsEntry3) | Wird nicht ausgegeben, aber zur Sortierung in einem Fall benötigt. Es handelt sich um die Position von „CharacteristicID“ innerhalb der zum Schlüssel „PersonCharacteristicIDsGrantedByUniqueID“ (zur „PersonTypeID“) konfigurierten Merkmale. | tinyint | 3.5.0 |
SortNo4) | Wird nicht ausgegeben, aber zur Sortierung in einem Fall benötigt. Bestimmt die Reihenfolge von „CharacteristicID“ innerhalb aller Merkmale. | smallint | 3.5.0 |
PersonID | ID der durch die „Identifizierungs“-Parameter ermittelten Person oder (falls angegeben) „PersonID“ | integer | 7.0.1 |
CharacteristicDescription | Bezeichnung des Personen-Merkmals „CharacteristicID“ | varchar(100) | 3.5.0 |
Value | Eigenschaft von „PersonID“ zum Merkmal „CharacteristicID“. Kann aufgrund von Zugriffsbeschränkungen „NULL“ oder unvollständig sein, was dann durch „ValueRestrictedByPattern“ gekennzeichnet ist. | varchar(100) | 3.5.0 |
ValueRestrictedByPattern | Was enthält „(Actual)Value“ (möglicherw. wg. Zugr.beschr. nur einen Teil) ? - NULL : den vollst. Wert - „#left(<n>)#“ : nur die ERSTEN n Zeichen - „#right(<n>)#“ : nur die LETZTEN n Zeichen Anmerkung : „n = 0“ möglich, „(Actual)Value“ ist dann „NULL“ | varchar(100) | 6.5.2 |
CharacteristicID | ID eines Personen-Merkmals, auf das sich die Eigenschaft „Value“ bezieht | smallint | 3.5.0 |
ValueID | ID der Eigenschaft „Value“. Hinweis : KANN „NULL“ sein (selbst wenn „Value“ NICHT „NULL“ ist), falls nicht die aktuellen Eigenschaften ermittelt wurden (wenn also „DateAndTime“ angegeben wurde), weil in der Historie KEINE ID gespeichert wird ! | integer | 3.5.0 |
Required | Wird hier eine „1“ ausgegeben, bedeutet das folgendes : Jede Person eines Personen-Typs, dem das Merkmal „CharacteristicID“ zugewiesen ist, MUSS eine Eigenschaft zum Merkmal „CharacteristicID“ angeben, ansonsten kann die Person nicht angelegt werden. | bit | 3.5.0 |
Visible | Wenn „0“, werden durch vom „publicuser“ ausgeführte Prozeduren bzw. durch „Pu“-Prozeduren (z.B. pm_GetPersonProperties_Pu) KEINE Eigenschaften/Details bzw. nur Teile von Eigenschaften (s. „ReadAccessRestrictionPattern“) zur „CharacteristicID“ ausgegeben | bit | 3.5.0 |
Modify | Dürfen „publicuser“/„Pu“-Prozed. Eigensch.-Änderung. vornehmen ? - „0“ : Nein - „1“ : Ja - „2“ : Nur Neu-Anlage - „3“ : Nur Ändern - „4“ : Nur Neu-Anlage u. Ändern - „5“ : Nur Löschen - „6“ : Nur Neu-Anlage u. Löschen - „7“ : Nur Ändern u. Löschen | tinyint | 3.5.0 |
ReadAccessRestrictionPattern | „NULL“ w. „Visible = 1“. Welch. Teil v. Eigensch. zu „CharacteristicID“ für d. „publicuser“ ausgeg. werd. : - „#left(<n>)#“ : d. ERSTEN n Zeich. („n = 0“ mögl.) - „#right(<n>)#“ : d. LETZTEN n Zeich. („n = 0“ mögl.) - NULL : Datens. zum Merkmal fehlt | varchar(100) | 6.5.2 |
PredefinedValues | Hat das Merkmal „CharacteristicID“ nur vordefinierte Werte („0“ : Nein, „1“ : Ja) ? | bit | 3.5.0 |
FieldTypeID | ID eines „Feld-Typs“, von dem alle Eigenschaften des Merkmals „CharacteristicID“ sein müssen (z.B. „Text mit maximal 20 Zeichen“) | tinyint | 3.5.0 |
MaxLength | Maximale Anzahl Zeichen, die Eigenschaften/Werte zum Merkmal „CharacteristicID“ haben dürfen | tinyint | 3.5.0 |
PersonCharacCategoryID | ID der Merkmal-Kategorie, der das Merkmal „CharacteristicID“ zugeordnet ist | tinyint | 3.5.0 |
ActualValue | „NULL“ wenn „GetActualProperties = 0“. Sonst die AKTUELLE Eigenschaft der Person zu „CharacteristicID“. Kann aufgrund von Zugriffsbeschränkungen „NULL“ oder unvollständig sein, was dann durch „ValueRestrictedByPattern“ gekennzeichnet ist. | varchar(100) | 4.0.0 |
LastEdited | Wann die Eigenschaft (zuletzt) gesetzt wurde. ACHTUNG : Nur gefüllt, wenn „NULL“ für „DateAndTime“ übergeben wurde ODER „GetActuelProperties = 1“ ist (sonst kommt hier „NULL“ zurück) ! | datetime | 5.5.1 |
wenn InputIsUniqueID = 0 und CharacteristicIDList IN (NULL, '')
wenn InputIsUniqueID = 0 und CharacteristicIDList NOT IN (NULL, '')
wenn InputIsUniqueID = 1
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 5) |
---|---|---|
-670 | Daten anderer Personen können nicht geändert/eingesehen werden, wenn keine entspr. Beziehung besteht | 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 |
-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 |
-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 | 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.8 | 2015-08-21 | 1. „InputIsUniqueID“ ist jetzt ein „tinyint“ ⇒ neue Möglichkeit, den Wert „2“ anzugeben 2. Neuer Parameter „SeparatorForIdentVals“ |
7.0.7 | 2015-01-29 | „Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670 |
7.0.1 | 2013-08-07 | Neue Rückgabespalte „PersonID“ |
6.5.2 | 2013-02-26 | 1. Interne Anpassungen (einige Spalten von „PersonCharacteristics“ sind weggefallen) 2. Neue mögliche Werte für Rückgabespalte „Modify“ 3. Neue Rückgabespalten „ValueRestrictedByPattern“ und „ReadAccessRestrictionPattern“ |
6.0.3 | 2011-09-07 | 1. Präzisierung der Doku bzgl. des Falls „InputIsUniqueID = 1“ 2. Fehler : In seltenen Fällen konnte man durch Angabe von „PersonID“ (wenn „InputIsUniqueID = 1“) auch an Daten fremder Personen gelangen |
5.5.1 | 2008-07-29 | Neue Rückgabespalte „LastEdited“ |
5.1.10 | 2007-03-12 | 1. Berücksichtigung des neuen „AccessLevel“-features in „PersonRelationships“ 2. „CharacteristicIDList“ darf max. 253 Zeichen enthalten 3. „IncludePersonCharacCategoryID“ und „SortedResult“ sind weggef. 4. Fehler bzgl. Übersetzung in einem Fall |
5.1.7 | 2006-10-31 | Fehlende Index-Angabe beim Zugriff aus „Orders“ |
5.0.0 | 2004-12-21 | 1. Fehler bei der Überprüfung des Parameters „DateFormat“ 2. Fehler : Angabe eines nicht vorhandenen Indexes bei einer temporären Tabelle 3. „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn 4. Konsequente Fehlerbehandlung |
4.0.5 | 2003-10-04 | Verlagerung diverser „Settings“-Einträge auf entsprechende „PersonTypeSettings“-Einträge |
4.0.1 | 2003-05-16 | Interne Dokumentations-Fehler |
4.0.0 | 2003-04-03 | Neue Parameter DateAndTime, GetActualProperties |
3.5.19 | 2002-06-17 | |
3.5.13 | 2001-12-06 | |
3.5.10 | 2001-07-14 | |
3.5.6 | 2001-04-17 | |
3.5.5 | 2001-03-30 | |
3.5.0 | 2000-11-23 | 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_GetPersonProperties_Pu?InputParameter=<value>'
Mit xmllint 6) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/pm_GetPersonProperties_Pu?InputParameter=<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_GetPersonProperties_Pu', array( 'InputParameter' => '<value>', // 'InputIsUniqueID' => 0, // 'PersonTypeID' => 1, // 'LanguageID' => 0, // 'CharacteristicIDList' => NULL, // 'DateFormat' => 'german', // 'CaseSensitive' => 1, // 'PersonID' => NULL, // 'DateAndTime' => NULL, // 'GetActualProperties' => 0, // 'SeparatorForIdentVals' => '¶' ) ); $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_GetPersonProperties_Pu"> <Parameters> <Parameter Name="InputParameter"><!-- varchar value --></Parameter> <!-- <Parameter Name="InputIsUniqueID">0</Parameter> --> <!-- <Parameter Name="PersonTypeID">1</Parameter> --> <!-- <Parameter Name="LanguageID">0</Parameter> --> <!-- <Parameter Name="CharacteristicIDList">NULL</Parameter> --> <!-- <Parameter Name="DateFormat">'german'</Parameter> --> <!-- <Parameter Name="CaseSensitive">1</Parameter> --> <!-- <Parameter Name="PersonID">NULL</Parameter> --> <!-- <Parameter Name="DateAndTime">NULL</Parameter> --> <!-- <Parameter Name="GetActualProperties">0</Parameter> --> <!-- <Parameter Name="SeparatorForIdentVals">'¶'</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>