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-Method | POST |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | person management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
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“). | tinyint | 5.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 |
CharStringsInPropsToReplace | NULL | 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 |
ReplaceCharStringsInPropsBy | NULL | 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 |
RowCount | 0 | 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„) | integer | 5.0.0 |
IncludePersonID | 0 | Soll pro Person auch die „PersonID“ ausgegeben werden, ist hier „1“ anzugeben - die „PersonID“ steht dann übrigens am Anfang jeder Ausgabe-Zeile | bit | 5.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 |
IncludeCreationDate | 0 | Falls „1“ angegeben ist, wird eine „Spalte“ ausgegeben, die das Erstellungsdatum der jeweiligen Person enthält (Zeilenüberschrift ist „Created“) | bit | 5.0.4 |
IncludeLastEditedDate | 0 | Falls „1“ angegeben ist, wird eine „Spalte“ ausgegeben, die das Datum der letzten (Eigenschaften-)Änderung der jeweiligen Person enthält (Zeilenüberschrift ist „LastEdited“) | bit | 5.0.4 |
LastEditedInfoForCharacIDs | NULL | 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 |
Die Prozedur hat keine Rückgaben.
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 4) |
---|---|---|
-697 | Aktion kann nicht durchgeführt werden, da für ein Merkmal eine Zugriffsbeschränkung besteht | nur direkt |
-673 | Die Personendaten können nicht ausgegeben werden, da der entsprechende Personen-Typ gesperrt ist | nur direkt |
-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 |
-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 | nur 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.7 | 2015-01-29 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
6.5.2 | 2013-02-26 | 1. 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-26 | 1. 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-29 | Falls in einer Merkmal-Bezeichnung oder einer Eigenschaft das “%„-Zeichen vorkam, lieferte das „print“-Kommando einen Fehler |
5.0.0 | 2004-12-21 | 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 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 -
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();
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>