Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:pm_getpersonproperties_ad

pm_GetPersonProperties_Ad

Ermittelt Eigenschaften zu einer oder mehreren Person(en).

Anmerkung zum Parameter „IncludeCreationDateAndTime“ :

Falls hierfür „1“ angegeben wird, enthält die Rückgabemenge einen zusätzlichen Datensatz (nur im Fall „GetPersonTypeIDOnly = 0“), der wie folgt belegt ist :

  • CharacteristicDescription : 'CreationDateAndTime'
  • Value : <„CreationDateAndTime“ aus „PersonMetaInformation“ der Person>
  • ValueRestrictedByPattern : NULL
  • CharacteristicID : „-1“
  • SortNo : „-32768“
  • ValueID : „-1“
  • Required : „1“
  • Required_CharacCategory : „1“
  • Visible : „0“
  • Modify : „0“
  • ReadAccessRestrictionPattern : NULL
  • PredefinedValues : „0“
  • FieldTypeID : „28“ (→ Datum mit Uhrzeit)
  • MaxLength : „35“
  • PersonCharacCategoryID : „0“ („NULL“ wenn „IncludePersonCharacCategoryID = 0“)
  • CategoryDescription : 'MetaInformation' („NULL“ wenn „IncludePersonCharacCategoryID = 0“)
  • ActualValue : <gleicher Wert wie „Value“> falls „GetActualProperties = 1“, sonst „NULL“
  • LastEdited : NULL
  • ActualValueID : „-1“ falls „GetActualProperties = 1“, sonst NULL

Anmerkung zum Parameter „IgnoreBadPersonIDsInOneID“ :

Sind GAR KEINE oder NUR „falsche“ IDs in „tempdb.dbo.OneID“, gibt es in jedem Fall „-500“ (auch wenn für diesen Parameter „1“ übergeben wurde) !

Anmerkung zum Parameter „CharacteristicIDList“ :

Merkmale, für die ein lesender Zugriff (für den Benutzer, der diese Prozedur aufruft) komplett verboten ist, werden IGNORIERT, d.h. es gibt auch keinen Fehler, wenn eine solche ID in „CharacteristicIDList“ angegeben ist (es gibt aber eben auch KEINEN entsprechenden Datensatz mit dieser ID) !

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 :

  • „0“ : Keinerlei Änderung erlaubt (anlagen, ändern und löschen sind verboten)
  • „1“ : Alle Arten von Änderungen erlaubt (d.h. anlegen, ändern, löschen)
  • „2“ : Nur die Neu-Anlage ist erlaubt, (ändern und löschen sind verboten)
  • „3“ : Nur Ändern ist erlaubt (anlegen und löschen sind verboten)
  • „4“ : Nur Neu-Anlage und Ändern sind erlaubt (löschen ist verboten)
  • „5“ : Nur Löschen ist erlaubt (anlegen und ändern sind verboten)
  • „6“ : Nur Neu-Anlage und Löschen sind erlaubt (ändern ist verboten)
  • „7“ : Nur Ändern und Löschen sind erlaubt (anlegen ist verboten)

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 :

  • „#left(<n>)#“ : die ERSTEN n Zeichen („n = 0“ mögl.) werden ausgegeben
  • „#right(<n>)#“ : die LETZTEN n Zeichen („n = 0“ mögl.) werden ausgegeben

Beispielsweise bedeutet „#left(4)#“, daß nur (maximal) die ERSTEN 4 Zeichen der Eigenschaft zurückgeliefert werden.

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
PersonID ID einer Person, zu der Eigenschaften ermittelt werden sollen. Bei Angabe von „NULL“ (seit Version 3.5.13) erwartet die Prozedur „PersonID“s in „tempdb.dbo.OneID“.
integer3.5.0
LanguageID0 ID einer Sprache. Wenn angegeben, versucht die Prozedur Übersetzungen zur Merkmal-Bezeichnung („CharacteristicDescription“) und zur Eigenschaft („Value“ bzw. „ActualValue“) zu finden - ist keine Übersetzung vorhanden, wird die Standardsprache gewählt.
tinyint3.5.0
CharacteristicIDListNULL Liste von Merkmal-IDs (durch '¶' getrennt), zu denen die Eigenschaften ermittelt werden sollen. Bei Angabe von „NULL“ / '' werden alle vorhandenen Eigenschaften bzw. nur die zu Merkmalen der Kategorie „PersonCharacCategoryID“ ermittelt.
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
PersonCharacCategoryIDNULL Wird nur beachtet, falls für „CharacteristicIDList“ „NULL“ oder „''“ angegeben wird ! ID einer Kategorie von Personen-Merkmalen. Falls angegeben, werden nur Eigenschaften zu Merkmalen dieser Kategorie berücksichtigt.
tinyint3.5.0
IncludeCreationDateAndTime0 Es gibt eine besondere „Eigenschaft“, die jede Person (egal welchen Typs) hat : Das Datum, an dem die Person angelegt wurde. Soll diese Eigenschaft mit ausgegeben werden, ist dieser Parameter auf „1“ zu setzen. (siehe auch Beschreibung)
bit3.5.9
IncludePersonCharacCategoryID0 „1“ angeben, um zusätzliche Rückgabespalten zu erhalten, die angegeben, in welcher Kategorie sich das jeweils ausgegebene Merkmal befindet
bit3.5.14
DateAndTimeNULL Zeitpunkt, zu dem die Eigenschaften der Person(en) ermittelt werden sollen. Bei Angabe von „NULL“ werden die aktuellen Eigenschaften zurückgegeben.
datetime4.0.0
GetActualProperties0 „1“ angeben, damit die Rückgabespalte „ActualValue“ nicht mit „NULL“ belegt wird, sondern mit der aktuell gültigen Eigenschaft der jeweiligen Person zum jeweiligen Merkmal
bit4.0.0
GetPersonTypeIDOnly0 Möchte man lediglich den Personen-Typ der Person „PersonID“ bzw. der in „tempdb.dbo.OneID“ übergebenen „PersonID“s herausbekommen, setzt man diesen Parameter auf „1“
bit4.0.3
IgnoreBadPersonIDsInOneID0 Es gibt einen Fehler („-500“), wenn die in „tempdb.dbo.OneID“ übergebenen Personen nicht vom gleichen Typ sind oder eine nicht vorhandene ID übergeben wurde. Möchte man diese fehlerhaften IDs aber einfach ignorieren lassen, übergibt man hier „1“.
bit5.1.2
OnlyRowsForExistingProperties0 Es wird in allen Fällen für jede Person und für jedes (gewünschte) Merkmal ein Datensatz zurückgeliefert (u.U. mit „NULL“- Werten in anderen Spalten, wenn keine Eigenschaft vorhanden ist). Möchte man dies nicht, übergibt man hier den Wert „1“.
bit5.1.10
GetDetailsInfo0 „1“ angeben, damit die Rückgabespalte „DetailsExist“ richtig belegt wird
bit5.1.10

Rückgabe

wenn GetPersonTypeIDOnly = 0

Spaltenname Beschreibung SQL-Datentyp4) ab Version
PersonIDID einer Person, die via „tempdb.dbo.OneID“ übergeben wurde
integer3.5.13
CharacteristicDescriptionBezeichnung des Personen-Merkmals „CharacteristicID“
varchar(100)3.5.0
ValueEigenschaft der Person „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
ValueRestrictedByPatternWas 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
CharacteristicIDID eines Personen-Merkmals, auf das sich die Eigenschaft „Value“ bezieht
smallint3.5.0
DetailsExistImmer „0“ wenn „GetDetailsInfo = 0“ ist. Sonst steht hier, ob „PersonID“ zum Merkmal „CharacteristicID“ sogenannte „Details“ besitzt („1“) oder nicht („0“) - s.a. pm_GetPersonDetails_Ad
bit5.1.10
SortNoBestimmt die Reihenfolge des Merkmals „CharacteristicID“ innerhalb aller Merkmale
smallint5.1.10
ValueIDID 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 !
integer3.5.0
RequiredWird 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.
bit3.5.0
Required_CharacCategoryGibt an, ob das Merkmal „CharacteristicID“ Pflicht innerhalb der Kategorie „PersonCharacCategoryID“ ist („1“) oder nicht („0“). Hinweis : Ist unabhängig von „IncludePersonCharacCategoryID“ gefüllt !
bit5.1.10
VisibleWenn „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
bit3.5.0
ModifyDü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
tinyint3.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
PredefinedValuesHat das Merkmal „CharacteristicID“ nur vordefinierte Werte („0“ : Nein, „1“ : Ja) ?
bit3.5.0
FieldTypeIDID eines „Feld-Typs“, von dem alle Eigenschaften des Merkmals „CharacteristicID“ sein müssen (z.B. „Text mit maximal 20 Zeichen“)
tinyint3.5.0
MaxLengthMaximale Anzahl Zeichen, die Eigenschaften/Werte zum Merkmal „CharacteristicID“ haben dürfen
tinyint3.5.0
PersonCharacCategoryIDID der Merkmal-Kategorie, der das Merkmal „CharacteristicID“ zugeordnet ist. Nur gefüllt bei „IncludePersonCharacCategoryID = 1“, sonst „NULL“ !
tinyint3.5.14
CategoryDescriptionBezeichnung der Kategorie „PersonCharacCategoryID“. Nur gefüllt bei „IncludePersonCharacCategoryID = 1“, sonst „NULL“ !
varchar(100)3.5.14
ActualValue„NULL“ wenn „GetActualProperties = 0“. Sonst die AKTUELLE Eigenschaft von „PersonID“ zu „CharacteristicID“. Kann aufgrund von Zugriffsbeschränkungen „NULL“ oder unvollständig sein, was dann durch „ValueRestrictedByPattern“ gekennzeichnet ist.
varchar(100)4.0.0
LastEditedImmer „NULL“, falls „GetActualProperties = 0“ übergeben wurde. Ansonsten steht hier der Zeitpunkt, an dem die Eigenschaft zum Merkmal „CharacteristicID“ zuletzt geändert (d.h. auf den Wert „Value“ gesetzt) wurde.
datetime4.0.4
ActualValueIDImmer „NULL“, falls „GetActualProperties = 0“ übergeben wurde. Ansonsten die ID des Wertes „ActualValue“ (bzw. so wie tatsächlich intern gespeichert, falls aufgrund von „ValueRestrictedByPattern“ nur ein Teil des Wertes zurückgegeben wird).
integer6.5.2
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • PersonID (aufsteigend)
  • SortNo (absteigend)

wenn GetPersonTypeIDOnly = 1

Spaltenname Beschreibung SQL-Datentyp5) ab Version
PersonIDID einer Person, die via „tempdb.dbo.OneID“ übergeben wurde bzw. „PersonID“
integer4.0.3
PersonTypeIDID des Typs der Person „PersonID“
tinyint4.0.3
PersonTypeDescriptionBezeichnung des Personen-Typs „PersonTypeID“
varchar(100)4.0.3
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • PersonID (aufsteigend)

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 6)
-673Die Personendaten können nicht ausgegeben werden, da der entsprechende Personen-Typ gesperrt istnur direkt
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur 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
-550Fehlender oder falscher Eintrag in Settingsnur 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-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
7.0.0 2013-06-04Kleiner Doku-Fehler [verwendete Prozeduren]
6.5.2 2013-02-261. Interne Anpassungen (einige Spalten von „PersonCharacteristics“ sind weggefallen)
2. Neue mögliche Werte für Rückgabespalte „Modify“
3. Neue Rückgabespalten „ValueRestrictedByPattern“, „ReadAccessRestrictionPattern“ und „ActualValueID“
5.5.1 2008-07-29Berücksichtigung des neuen „Settings“-Eintrags „AssignmentMethodForListVariables“
5.1.10 2007-03-121. „print“-Ausgabe im Fehler-Fall „-500“
2. „CharacteristicIDList“ darf ab jetzt maximal 253 Zeichen enthalten
3. Neuer Parameter „OnlyRowsForExistingProperties“
4. Neue Rückgabespalten „DetailsExist“, „SortNo“ und „Required_CharacCategory“
5.1.5 2006-08-29Explizites „ORDER BY“ eingefügt, um die Sortierung der Rückgabemenge zu garantieren
5.1.2 2006-06-26Neuer Parameter „IgnoreBadPersonIDsInOneID“
5.0.0 2004-12-21Fehler bei der Überprüfung des Parameters „DateFormat“ falls „NULL“ angegeben wurde
4.0.15 2004-07-301. Aufruf der Prozeduren „_mi_StartProcedure“, „_mi_FinishProcedure“ und „_mi_ChooseParamValueSeperator“
2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur
3. Konsequente Fehlerbehandlung
4.0.4 2003-08-26Neue Rückgabespalte „LastEdited“
4.0.3 2003-07-101. „CreationDateAndTime“ steht jetzt in „PersonMetaInformation“ und nicht mehr in „Persons“
2. Neuer Parameter „GetPersonTypeIDOnly“
4.0.1 2003-05-16Interne Dokumentations-Fehler
4.0.0 2003-04-031. Neue Parameter „DateAndTime“, „GetActualProperties“
2. Ab jetzt wird „LockedPersonTypes“ auch überprüft…
3.5.19 2002-06-17
3.5.14 2002-01-23
3.5.13 2001-12-06
3.5.10 2001-07-14
3.5.9 2001-06-16
3.5.0 2000-11-23Erstmalig 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_GetPersonProperties_Ad?PersonID=<value>'

Mit xmllint 7) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/pm_GetPersonProperties_Ad?PersonID=<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_GetPersonProperties_Ad',
		array(
			'PersonID' => <value>,
			// 'LanguageID' => 0,
			// 'CharacteristicIDList' => NULL,
			// 'DateFormat' => 'german',
			// 'PersonCharacCategoryID' => NULL,
			// 'IncludeCreationDateAndTime' => 0,
			// 'IncludePersonCharacCategoryID' => 0,
			// 'DateAndTime' => NULL,
			// 'GetActualProperties' => 0,
			// 'GetPersonTypeIDOnly' => 0,
			// 'IgnoreBadPersonIDsInOneID' => 0,
			// 'OnlyRowsForExistingProperties' => 0,
			// 'GetDetailsInfo' => 0
		)
);
 
$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_GetPersonProperties_Ad">
			<Parameters>
				<Parameter Name="PersonID"><!-- integer value --></Parameter>
				<!-- <Parameter Name="LanguageID">0</Parameter> -->
				<!-- <Parameter Name="CharacteristicIDList">NULL</Parameter> -->
				<!-- <Parameter Name="DateFormat">'german'</Parameter> -->
				<!-- <Parameter Name="PersonCharacCategoryID">NULL</Parameter> -->
				<!-- <Parameter Name="IncludeCreationDateAndTime">0</Parameter> -->
				<!-- <Parameter Name="IncludePersonCharacCategoryID">0</Parameter> -->
				<!-- <Parameter Name="DateAndTime">NULL</Parameter> -->
				<!-- <Parameter Name="GetActualProperties">0</Parameter> -->
				<!-- <Parameter Name="GetPersonTypeIDOnly">0</Parameter> -->
				<!-- <Parameter Name="IgnoreBadPersonIDsInOneID">0</Parameter> -->
				<!-- <Parameter Name="OnlyRowsForExistingProperties">0</Parameter> -->
				<!-- <Parameter Name="GetDetailsInfo">0</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
6)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
7)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/pm_getpersonproperties_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)