Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:pm_getpersonoutputcharacs_ad

pm_GetPersonOutputCharacs_Ad

Gibt zu einem „dStore“-Benutzer und einem bestimmten Personen-Typ die Merkmale zurück, zu denen in einer Ausgabe-Liste von Personen die jeweiligen Eigenschaften ermittelt werden sollen (siehe z.B. pm_GetPersons_Conditions_Ad).

Hintergrund :

Im Regelfall wird eine Menge von Personen in der Frontend-Applikation so ausgegeben, daß in einem Bereich die (gefundenen) Personen in Listenform aufgeführt sind. Nun ist es wenig hilfreich, wenn in der Liste etwa nur eine „PersonID“ steht; besser ist es, z.B. zumindest den „Namen“ und den „Vornamen“ anzuzeigen (oder Eigenschaften zu anderen Merkmalen, die aber aussagekräftiger sind als die „PersonID“), und natürlich nach diesen Eigenschaften die Datensätze zu sortieren.

Hinweis :

Falls eines der Merkmale für den Benutzer, der diese Prozedur aufruft, komplett lesend gesperrt ist (s. Rückgabespalten „AccessRestriction“ und „ReadAccessRestrictionPattern“ von pm_GetPChAccRestrForUsers_Ad), gibt es einen Fehler !

Anmerkung zum Parameter „UserID“ :

Die Konfiguration, welche Merkmale pro Personen-Typ bei der Anzeige von Personen-Listen herangezogen werden sollen, ist ausschließlich global in „PersonTypeSettings“ pro „PersonTypeID“ zum Schlüssel „PersonOutputCharacteristics“ hinterlegt.
Daher wird der Parameter IGNORIERT !

Anmerkung zum Ausgabeparameter „OutputCharacteristicIDs“ :

Der Wert, der über den Ausgabeparameter „OutputCharacteristicIDs“ zurückgegeben wird, enthält ein oder mehrere Element(e) (durch „¶“ getrennt), wobei jedes Element so aufgebaut ist :
Das erste Zeichen bestimmt die Sortierreihenfolge : „0“ bedeutet absteigende Sortierung, „1“ aufsteigende Sortierung. Danach
folgt die „ID“ eines Personen-Merkmals. D.h. der Wert im Ausgabeparameter hat diese Form :
„<SortOrder><CharacteristicID>¶<SortOrder><CharacteristicID>…„
Möchte man NUR eine Liste der Merkmal-IDs bekommen, setzt man „SortOrderInfoInOutputParam“ auf „0“.

HTTP-MethodGET
HTTP-AuthOptional
Aliaspm_GetPersonOutputCharacteristics_Ad
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
UserID-1 Parameter wird IGNORIERT ! (s. Beschreibung)
smallint3.5.0
PersonTypeID1 ID eines Personen-Typs
tinyint3.5.0
SelectResult1 Das Ergebnis wird immer im Ausgabeparameter „OutputCharacteristicIDs“ gespeichert. Möchte man ZUSÄTZLICH eine Ergebnismenge, ist hier „1“ anzugeben.
bit5.1.10
SortOrderInfoInOutputParam1 Möchte man im Ausgabeparameter „OutputCharacteristicIDs“ NUR eine Liste der Merkmal-IDs bekommen (also OHNE die Sortierungs-Information, s.a. Beschreibung), ist hier „0“ anzugeben.
bit5.1.10

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
Position5)Wird nicht ausgegeben, sondern nur zur Sortierung verwendet. Gibt an, an wievielter Stelle „CharacteristicID“ in der Liste zum Schlüssel „PersonOutputCharacteristics_Type_Type<PersonTypeID>“ in „Settings“ (für „UserID“ bzw. „UserID = -1“) angegeben ist.
tinyint3.5.0
CharacteristicIDID eines Personen-Merkmals, das im „PersonTypeSettings“- bzw. „Settings“-Eintrag (je nach „UserID“, s. Beschreibung) zum Schlüssel „PersonOutputCharacteristics“ für „PersonTypeID“ bzw. „PersonOutputCharacteristics_Type<PersonTypeID>“ eingetragen ist
smallint3.5.0
CharacteristicDescriptionBezeichnung des Personen-Merkmals „CharacteristicID“
varchar(100)3.5.0
SortOrderGibt an, wie nach den Eigenschaften zu „CharacteristicID“ sortiert werden soll :
- „0“ : Absteigend
- „1“ : Aufsteigend
Anmerkung : Diese Information wird im „dStore“ selbst nirgends verwendet
bit3.5.0
ColumnWidthBreite der Spalte (für die Darstellung in der Frontend-Applikation) für die Eigenschaften zum Merkmal „CharacteristicID“ der Personen, die dargestellt werden
tinyint3.5.0
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • Position (aufsteigend)

Output-Parameter

OutputCharacteristicIDsAusgabeparameter, der nach dem Aufruf die in „PersonTypeSettings“ konfigurierten Merkmal-IDs für den durch „PersonTypeID“ angegebenen Personen-Typ enthält. Wie diese Information enthalten (im Sinne von „formatiert“) ist : s. Beschreibung !

Mögliche Return-Codes

Code Beschreibung Quelle 6)
-697Aktion kann nicht durchgeführt werden, da für ein Merkmal eine Zugriffsbeschränkung bestehtnur direkt
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-620Es konnten keine Ausgabemerkmale ermittelt werdennur direkt
-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 Parameternur 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]
6.5.2 2013-02-261. Beachtung der neuen Zugriffs-Beschränkungen für Merkmale [⇒ Doku-Anpassung]
2. Anpassung des Quellcodes an den aktuellen Standard
3. Interne Anpassungen wg. UTF8-Unterstützung
5.1.10 2007-03-121. Neue Parameter „SelectResult“ und „SortOrderInfoInOutputParam“
2. Ab jetzt wird der Parameter „UserID“ ignoriert
3. Interne Umstellung von „_mi_ExtractValueFromList“ auf „_mi_ExtractFirstValueFromList“
4. Überarbeitung der Doku
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.5 2003-10-041. Verlagerung diverser „Settings“-Einträge auf entsprechende „PersonTypeSettings“-Einträge
2. Überarbeitung der Doku
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_GetPersonOutputCharacs_Ad'

Mit xmllint 7) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/pm_GetPersonOutputCharacs_Ad' | 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_GetPersonOutputCharacs_Ad',
		array(
			// 'UserID' => -1,
			// 'PersonTypeID' => 1,
			// 'SelectResult' => 1,
			// 'SortOrderInfoInOutputParam' => 1
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
 
$OutputParams = $xml_result->getOutputParametersAsArray();
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_GetPersonOutputCharacs_Ad">
			<Parameters>
				<!-- <Parameter Name="UserID">-1</Parameter> -->
				<!-- <Parameter Name="PersonTypeID">1</Parameter> -->
				<!-- <Parameter Name="SelectResult">1</Parameter> -->
				<!-- <Parameter Name="SortOrderInfoInOutputParam">1</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
5)
Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.
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_getpersonoutputcharacs_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)