Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:pm_exportpersondata_ad

pm_ExportPersonData_Ad

Exportiert eine Liste von Personendaten und gibt diese (via „print“) an die Standardausgabe.

Hinweise :

1. Es kann natürlich vorkommen, daß nicht alle Eigenschaften in einen „string“ von maximal 1000 Bytes passen (da wir mit dem „print“-Kommando arbeiten, welches derzeit eine Beschränkung von ca. 1000 Bytes hat). Bei betroffenen Personen wird dann versucht, soviel Eigenschaften wie möglich zu speichern. Die Zeile enthält aber auf jeden Fall genauso viele Vorkommen von „Separator“-Zeichen ! Anstelle der Eigenschaften (die nicht ausgegeben werden können) steht dann ein „-“, und die letzte Eigenschaft ist immer „ERROR, 1000 BYTES EXCEEDED !“, um das Problem (und die Ursache) erkennen zu können.

2. Pro Merkmal kann festgestellt werden, wieviele Bytes maximal für eine Eigenschaft belegt sein könnten. Bildet man eine Summe für alle (in „CharacteristicIDList“) angegebenen Merkmale, kann leicht errechnet werden, wieviele Zeichen eine Ausgabezeile maximal haben kann. Übersteigt der (theoretische) Wert die Zahl 1000, wird eine entsprechende „WARNING“-Meldung zu Beginn ausgegeben.

Anmerkung zu den Parametern „CharStringsInPropsToReplace“ und „ReplaceCharStringsInPropsBy“ :

Sind bestimmte Zeichen, die in Personen-Eigenschaften vorkommen können, unerwünscht, kann man durch „CharStringsInPropsToReplace“ und „ReplaceCharStringsInPropsBy“ eine Ersetzung vornehmen lassen. In beiden Parametern können Zeichenketten (durch „¶“ getrennt) übergeben werden. Alle Vorkommen der ersten in „CharStringsInPropsToReplace“ angegebenen Zeichenkette werden durch die erste in „ReplaceCharStringsInPropsBy“ angegebene Zeichenkette ersetzt, alle Vorkommen der zweiten (…) Zeichenkette werden durch die zweite (…) ersetzt usw.
Hierzu ein Beispiel :
Übergibt man „ CharStringsInPropsToReplace = 'ܶü¶,¶ß' “ und „ ReplaceCharStringsInPropsBy = 'Ue¶ue¶¶ss' “ führt dies dazu, daß in allen Eigenschaften das Zeichen „Ü“ bzw. „ü“ durch die Zeichenkette „Ue“ bzw. „ue“ ersetzt wird, daß alle Vorkommen von „,“ ENTFERNT (!) werden und daß an Stelle von „ß“ ein „ss“ ausgegeben wird.
Hinweis : Ist für das „Separator“-Zeichen keine Ersetzung angegeben, führt dies automatisch dazu, daß dieses Zeichen durch „?“ ersetzt wird; im „default“-Fall bedeutet dies quasi die implizite Angabe von „ CharStringsInPropsToReplace = ',' “ und „ ReplaceCharStringsInPropsBy = '?' “.

Anmerkung zum Parameter „LastEditedInfoForCharacIDs“ :

Hier kann man eine Liste (wie immer durch „¶“ getrennt) von „PersonCharacteristicID“s angeben, zu denen man die Information, wann die entsprechende Eigenschaft der Person zuletzt geändert wurde, bekommen möchte.
Diese Information ist NICHT verfügbar, wenn die Person aktuell KEINE Eigenschaft zum entsprechenden Merkmal besitzt UND keine Historie vorhanden ist - in diesem Fall wird die durch „StringForNoProperty“ angegebene Zeichenkette ausgegeben.
Die entsprechende „Zeilenüberschrift“ (erste Zeile in der Ausgabe) setzt sich aus der „CharacteristicDescription“ des Merkmals plus der Zeichenkette „_LE“ (für „LastEdited“) zusammen.

HTTP-MethodPOST
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
PersonTypeID ID eines Personen-Typs. Falls angegeben, werden alle Personen dieses Typs exportiert, ansonsten sind „PersonID“s in „tempdb.dbo.OneID“ anzugeben (es werden dann nur Personen berücksichtigt, die vom selben Typ sind wie die Person mit kleinster „PersonID“).
tinyint5.0.0
CharacteristicIDList Liste von Merkmal-IDs (durch '¶' getrennt), zu denen jeweils für jede zu exportierende Person die Eigenschaft exporiert wird. Der Aufrufer muß vollständigen lesenden Zugriff auf alle Merkmale haben, sonst gibt es einen Fehler !
varchar(500)5.0.0
Separator',' Zu jeder zu exportierenden Person wird ein „string“ erstellt (und via „print“ ausgegeben), der die Eigenschaften zu den in „CharacteristicIDList“ angegebenen Merkmalen enthält - diese sind durch die hier angegebene Zeichenkette voneinander getrennt
varchar(2)5.0.0
CharStringsInPropsToReplaceNULL Ein Liste von (durch „¶“ getrennten) Zeichenketten, die in Eigenschaften der zu exportierenden Personen vorkommen können, aber unerwünscht sind und durch die an entsprechender Stelle in „ReplaceCharStringsInPropsBy“ angegebene Zeichenkette ersetzt werden
varchar(255)5.0.0
ReplaceCharStringsInPropsByNULL Ein Liste von (durch „¶“ getrennten) Zeichenketten, die die an entsprechender Stelle in „CharStringsInPropsToReplace“ angegebenen Zeichenketten (die in Eigenschaften der zu exportierenden Personen vorkommen können) ersetzen sollen
varchar(255)5.0.0
RowCount0 Hiermit kann man die Anzahl der exportierten Personen beschränken, sofern ein Wert größer als „0“ angegeben wird („0“ oder „NULL“ bedeutet keine Einschränkung„)
integer5.0.0
IncludePersonID0 Soll pro Person auch die „PersonID“ ausgegeben werden, ist hier „1“ anzugeben - die „PersonID“ steht dann übrigens am Anfang jeder Ausgabe-Zeile
bit5.0.0
StringForNoProperty'NULL' Hat eine Person keine Eigenschaft zu einem in „CharacteristicIDList“ angegebenen Merkmal wird an der entsprechenden Stelle der hierdurch angegebene Wert ausgegeben.
„NULL“ oder ein „string“, der nur aus Leerzeichen besteht, führt zu “-500„ !
varchar(100)5.0.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)5.0.0
IncludeCreationDate0 Falls „1“ angegeben ist, wird eine „Spalte“ ausgegeben, die das Erstellungsdatum der jeweiligen Person enthält (Zeilenüberschrift ist „Created“)
bit5.0.4
IncludeLastEditedDate0 Falls „1“ angegeben ist, wird eine „Spalte“ ausgegeben, die das Datum der letzten (Eigenschaften-)Änderung der jeweiligen Person enthält (Zeilenüberschrift ist „LastEdited“)
bit5.0.4
LastEditedInfoForCharacIDsNULL Liste von Merkmal-IDs (durch „¶“ getrennt, vollständiger lesender Zugriff erforderlich !), zu denen die Info, wann die Eigenschaft zuletzt geändert wurde, exportiert werden soll. Die „Zeilenüberschrift“ besteht aus „CharacteristicDescription“ plus „_LE“.
varchar(100)5.0.4

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 4)
-697Aktion kann nicht durchgeführt werden, da für ein Merkmal eine Zugriffsbeschränkung bestehtnur direkt
-673Die Personendaten können nicht ausgegeben werden, da der entsprechende Personen-Typ gesperrt istnur 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 abgebrochennur 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]
6.5.2 2013-02-261. Beachtung der neuen Zugriffs-Beschränkungen für Merkmale
2. Datentyp-Änderung von „Separator“
3. Datentyp-Länge von „CharacteristicIDList“ erweitert
4. Interne Anpassungen
5.0.4 2005-09-261. Neue Parameter „IncludeCreationDate“, „IncludeLastEditedDate“ und „LastEditedInfoForCharacIDs“
2. Zahlreiche interne Änderungen, u.a. Ersetzung von der veralteten „_mi_ExtractValueFromList“ durch die neue und bessere „_mi_ExtractFirstValueFromList“
5.0.1 2005-03-29Falls in einer Merkmal-Bezeichnung oder einer Eigenschaft das “%„-Zeichen vorkam, lieferte das „print“-Kommando einen Fehler
5.0.0 2004-12-21Erstmalig 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 POST  'http://<partner>-<project>.dstore.de/default/engine/pm_ExportPersonData_Ad?PersonTypeID=<value>&CharacteristicIDList=<value>'

Mit xmllint 5) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/pm_ExportPersonData_Ad?PersonTypeID=<value>&CharacteristicIDList=<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_ExportPersonData_Ad',
		array(
			'PersonTypeID' => <value>,
			'CharacteristicIDList' => '<value>',
			// 'Separator' => ',',
			// 'CharStringsInPropsToReplace' => NULL,
			// 'ReplaceCharStringsInPropsBy' => NULL,
			// 'RowCount' => 0,
			// 'IncludePersonID' => 0,
			// 'StringForNoProperty' => 'NULL',
			// 'DateFormat' => 'german',
			// 'IncludeCreationDate' => 0,
			// 'IncludeLastEditedDate' => 0,
			// 'LastEditedInfoForCharacIDs' => 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_ExportPersonData_Ad">
			<Parameters>
				<Parameter Name="PersonTypeID"><!-- tinyint value --></Parameter>
				<Parameter Name="CharacteristicIDList"><!-- varchar value --></Parameter>
				<!-- <Parameter Name="Separator">','</Parameter> -->
				<!-- <Parameter Name="CharStringsInPropsToReplace">NULL</Parameter> -->
				<!-- <Parameter Name="ReplaceCharStringsInPropsBy">NULL</Parameter> -->
				<!-- <Parameter Name="RowCount">0</Parameter> -->
				<!-- <Parameter Name="IncludePersonID">0</Parameter> -->
				<!-- <Parameter Name="StringForNoProperty">'NULL'</Parameter> -->
				<!-- <Parameter Name="DateFormat">'german'</Parameter> -->
				<!-- <Parameter Name="IncludeCreationDate">0</Parameter> -->
				<!-- <Parameter Name="IncludeLastEditedDate">0</Parameter> -->
				<!-- <Parameter Name="LastEditedInfoForCharacIDs">NULL</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
5)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/pm_exportpersondata_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)