Prozedur zur Suche nach Personen, die bestimmte Eigenschaften besitzen.
Anmerkung zum Parameter „CharacteristicIDList“ :
Für alle angegebenen Merkmale muß der Aufrufer vollständigen lesenden Zugriff besitzen (s. pm_GetPChAccRestrForUsers_Ad), ansonsten gibt es einen Fehler !
Anmerkungen zum Parameter „ConditionList“ :
1. Es können Werte und Wertbereiche angegeben werden. Jede einzelne Bedingung muß eines der folgenden Formate haben (dabei ist unbedingt die Reihenfolge zu beachten !) :
Hinweis : „Wert“ oder „Wert1“ oder „Wert2“ meint einen „string“, der NICHT „NULL“ ist !
2. Sofern eine Bedingung eines der Formate „Wert“ oder „~Wert“ hat (also eine „LIKE“-Suche durchgeführt werden soll), können sogenannte Platzhalter verwendet werden :
3. Um nach einem Wert zu suchen, der mit „[“ oder „(“ oder „{“ oder „~“ oder „^“ beginnt oder der mit „]“ oder „)“ oder „}“ endet, muß man den „~“-Operator verwenden (z.B. „~[*“ angeben, um nach Werten zu suchen, die mit „[“ beginnen)
4. Soll in einer „LIKE“-Suche (d.h. wenn die Bedingung das Format „Wert“ oder „~Wert“ hat) nach einem Platzhalter-Zeichen selbst gesucht werden, ist dieses Zeichen 2mal hintereinander einzugeben (z.B. würde durch Angabe von „%%%“ nach Werten gesucht werden, die mit „%“ beginnen)
5. Im Falle einer „LIKE“-Suche (d.h. wenn die Bedingung das Format „Wert“ oder „~Wert“ hat) werden (in dieser Reihenfolge !) folgende Ersetzungen vorgenommen :
⇒ Daher wird z.B. „?_“ sowie „_?“ durch „[_]“ ersetzt, oder „*%“ sowie „%*“ durch „[%]“. Allerdings wird z.B. „__?“ durch „[_]_“ ersetzt !
6 . Falls eine Bedingung ein Datums-/Uhrzeitformat hat, muß angegeben sein, um welches Länderformat es sich dabei handelt (siehe Parameter „Country“)
Anmerkungen zum Parameter „OutputCharacteristicIDs“ :
1. Bei den hier angegebenen Merkmalen muß es sich immer um Pflicht-Merkmale („Required = 1“, siehe pm_GetPersonCharacteristics_Ad) handeln !
2. Für alle angegebenen Merkmale muß der Aufrufer vollständigen lesenden Zugriff besitzen (s. pm_GetPChAccRestrForUsers_Ad), ansonsten gibt es einen Fehler !
Anmerkung zu den Parametern „LastValues“ und „LastPersonID“ :
Die durch „LastValues“ angegebenen Werte müssen natürlich zu den in „OutputCharacteristicIDs“ angegebenen Ausgabemerkmalen korrespondieren ! Sind keine Ausgabemerkmale angegeben, werden die „PersonID“s ermittelt, die größer bzw. kleiner (je nach „Next“) als „LastPersonID“ sind. Letzter Parameter wird auch benötigt, wenn es MEHRERE Personen gibt, die die in „LastValues“ angegebenen Eigenschaften haben.
Anmerkung zum Parameter „RowNumber“ :
Möchte man alle Datensätze der Suche zurückbekommen, ist „RowNumber = NULL“ zu übergeben.
Anmerkung zur Sortierung (falls Eigenschaften ausgegeben werden) :
Obwohl alle Eigenschaften als „strings“ gespeichert sind, wird bei der Sortierung auf das zum Merkmal hinterlegte Format geachtet, d.h. handelt es sich bei den Eigenschaften z.B. um Datumsangaben, wird die Datums-Sortierung (und nicht die alphanumerische Sortierung) verwendet.
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | person management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
OutputCharacteristicIDs | Enthält (maximal 3) Elemente (durch '¶' getrennt) der Form „0“ | „1“ + <PersonCharacteristicID> Falls angegeben, werden zu den Personen Eigenschaften zu diesen Merkmalen ermittelt und das Ergebnis nach den Eigenschaften sortiert („0“ abst., „1“ aufst.) | varchar(255) | 3.5.0 | |
PersonTypeID | 1 | ID eines Personen-Typs. Die Suche bezieht sich immer nur auf einen bestimmten Typ, d.h. es werden auch nur Personen dieses Typs ausgegeben. | tinyint | 3.5.0 |
LastValues | NULL | Um „durch das Ergebnis blättern“ zu können (mit „Next“ und „RowNumber“), wird der Datensatz der vorherigen „Seite“, sprich des vorherigen Aufrufs, benötigt. Dieser wird durch „LastPersonID“ und „LastValues“ repräsentiert. (siehe Beschreibung) | varchar(255) | 3.5.0 |
LastPersonID | 0 | Um „durch das Ergebnis blättern“ zu können (mit „Next“ und „RowNumber“), wird der Datensatz der vorherigen „Seite“, sprich des vorherigen Aufrufs, benötigt. Dieser wird durch „LastPersonID“ und „LastValues“ repräsentiert. (siehe Beschreibung) | integer | 3.5.0 |
Next | 1 | Mit diesem Parameter und „RowNumber“ kann man „durch das Ergebnis blättern“ („0“ : rückwärts, „1“ : vorwärts)„, wobei „LastPersonID“ und „LastValues“ den Datensatz des vorherigen Aufrufs repräsentieren. | bit | 3.5.0 |
RowNumber | 50 | Maximale Anzahl Datensätze, die zurückgegeben werden soll. Mit diesem Parameter und „Next“ kann man „durch das Ergebnis blättern“, wobei „LastPersonID“ und „LastValues“ den Datensatz des vorherigen Aufrufs repräsentieren. | tinyint | 3.5.0 |
GroupID | NULL | ID einer Personen-Gruppe. Wenn angegeben, werden nur die Personen berücksichtigt, die dieser Gruppe angehören. | smallint | 3.5.0 |
CharacteristicIDList | NULL | Liste von Merkmal-IDs (durch '¶' getrennt), nach denen („ConditionList“ entsprechend) gesucht werden soll. Um nach dem Erstellungs- bzw. Änderungsdatum von Personen zu suchen (einer „Meta-Information“ also), ist als ID die “-1„ bzw. “-2„ anzugeben. | varchar(255) | 3.5.0 |
ConditionList | NULL | Die zur „CharacteristicIDList“ korrespondierenden Suchbedingungen (durch das in „SeparatorInConditionList“ angegebene Zeichen getrennt, pro ID in „CharacteristicIDList“ muß auch eine Bedingung angegeben sein) - siehe Beschreibung | varchar(255) | 3.5.0 |
Country | 'Germany' | Falls eine Bedingung ein Datums-/Uhrzeitformat hat, muß angegeben sein, um welches Länderformat es sich dabei handelt (Groß-/Kleinschreibung wird nicht beachtet) : 'german', 'germany' : Tag-Monat-Jahr 'english', 'england' : Monat-Tag-Jahr | varchar(10) | 3.5.0 |
OutputIntoOneID | 0 | Wie das Ergebnis geliefert werden soll : * „0“ : NUR Ergebnismenge * „1“ : KEINE Ergebnismenge, ALLE gefund. IDs in „tempdb.dbo.OneID“ speichern * „2“ : wie „1“, aber „RowNumber“, „LastPersonID“, „Next“ beachten * „3“ : wie „1“, IDs aber HINZUfügen | tinyint | 4.0.0 |
SeparatorInLastValues | '¶' | Gibt an, durch welche Zeichenkette die Werte in „LastValues“ (falls angegeben) getrennt sind | varchar(4) | 5.5.0 |
SeparatorInConditionList | '¶' | Gibt an, durch welche Zeichenkette die Werte in „ConditionList“ getrennt sind | varchar(4) | 5.5.0 |
Spaltenname | Beschreibung | SQL-Datentyp1) | ab Version |
---|---|---|---|
PersonID | ID einer Person des Typs „PersonTypeID“, die den Suchbedingungen entspricht | integer | 3.5.0 |
(parameterunabängige Sortierung)
Spaltenname | Beschreibung | SQL-Datentyp2) | ab Version |
---|---|---|---|
PersonID | ID einer Person des Typs „PersonTypeID“, die den Suchbedingungen entspricht | integer | 3.5.0 |
Value1 | Eigenschaft der Person „PersonID“ zu dem in „OutputCharacteristicIDs“ angegebenen Merkmal | varchar(100) | 3.5.0 |
wenn SortOrder1 = 1
wenn SortOrder1 = 0
Spaltenname | Beschreibung | SQL-Datentyp3) | ab Version |
---|---|---|---|
PersonID | ID einer Person des Typs „PersonTypeID“, die den Suchbedingungen entspricht | integer | 3.5.0 |
Value1 | Eigenschaft der Person „PersonID“ zum ERSTEN in „OutputCharacteristicIDs“ angegebenen Merkmal | varchar(100) | 3.5.0 |
Value2 | Eigenschaft der Person „PersonID“ zum ZWEITEN in „OutputCharacteristicIDs“ angegebenen Merkmal | varchar(100) | 3.5.0 |
wenn SortOrder1 = 1 und SortOrder2 = 1
wenn SortOrder1 = 0 und SortOrder2 = 1
wenn SortOrder1 = 0 und SortOrder2 = 0
wenn SortOrder1 = 1 und SortOrder2 = 0
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
PersonID | ID einer Person des Typs „PersonTypeID“, die den Suchbedingungen entspricht | integer | 3.5.0 |
Value1 | Eigenschaft der Person „PersonID“ zum ERSTEN in „OutputCharacteristicIDs“ angegebenen Merkmal | varchar(100) | 3.5.0 |
Value2 | Eigenschaft der Person „PersonID“ zum ZWEITEN in „OutputCharacteristicIDs“ angegebenen Merkmal | varchar(100) | 3.5.0 |
Value3 | Eigenschaft der Person „PersonID“ zum DRITTEN in „OutputCharacteristicIDs“ angegebenen Merkmal | varchar(100) | 3.5.0 |
wenn SortOrder1 = 1 und SortOrder2 = 1 und SortOrder3 = 1
wenn SortOrder1 = 0 und SortOrder2 = 1 und SortOrder3 = 1
wenn SortOrder1 = 0 und SortOrder2 = 0 und SortOrder3 = 1
wenn SortOrder1 = 0 und SortOrder2 = 1 und SortOrder3 = 0
wenn SortOrder1 = 0 und SortOrder2 = 0 und SortOrder3 = 0
wenn SortOrder1 = 1 und SortOrder2 = 0 und SortOrder3 = 1
wenn SortOrder1 = 1 und SortOrder2 = 1 und SortOrder3 = 0
wenn SortOrder1 = 1 und SortOrder2 = 0 und SortOrder3 = 0
Count | Ausgabeparameter, der die Anzahl ALLER Personen, die den Suchbedingungen entsprechen, enthält |
Code | Beschreibung | Quelle 5) |
---|---|---|
-697 | Aktion kann nicht durchgeführt werden, da für ein Merkmal eine Zugriffsbeschränkung besteht | 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 |
-540 | Falsches Format | 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] |
7.0.3 | 2013-12-13 | Neuer möglicher Wert für „OutputIntoOneID“ |
7.0.0 | 2013-06-04 | Kleiner Doku-Fehler [verwendete Prozeduren] |
6.5.4 | 2013-04-29 | Kleine Optimierung bzgl. Belegung einer internen Variablen [„UserID“] |
6.5.2 | 2013-02-26 | 1. Implementierung des neuen features „Zugriffsbeschränkungen auf Personen-Merkmale“ 2. Interne Anpassungen (u.a. wg. UTF8-Unterstützung) |
5.5.2 | 2008-10-21 | Fehler : Bei Angabe einer Personentyp-unabhängigen Gruppe [„GroupID“] ohne weitere Suchbedingungen wurde „PersonTypeID“ nicht beachtet |
5.5.0 | 2008-01-07 | 1. Neue Parameter „SeparatorInLastValues“ und „SeparatorInConditionList“ 2. Ausgabe an die Standard-Ausgabe [via „print“] im Fehler-Fall “-500„, die nähere Informationen über die Ursache enthält |
5.1.3 | 2006-07-27 | Der Parameter „OutputIntoOneID“ ist jetzt vom Typ „tinyint“ ⇒ neue Möglichkeit |
5.0.4 | 2005-09-26 | Unklare Definition der Syntax der Suchbedingungen in „ConditionList“ und kleine unlogische Verhaltensweisen. Da dieses korrigiert wurde, hat sich die Dokumentation und das Verhalten [nur in seltenen Fällen] geändert |
4.0.9 | 2004-03-03 | 1. Verwendung von „_mi_ChooseParamValueSeperator“ als Vorbereitung von „_mi_StartProcedure“ 2. Interne Änderungen (u.a. konsequente Fehlerbehandlung) 3. Doku der Rückgabemenge fehlte 4. „set transaction isolation level 1“, „set rowcount 0“ zu Beginn |
4.0.7 | 2004-01-16 | Aufruf der neuen Prozeduren „_mi_StartProcedure“ und „_mi_FinishProcedure“ |
4.0.4 | 2003-08-26 | 1. Erweiterungen : case-INsensitive „LIKE“-Suche, „soundex“-Suche und Suche nach einem Platzhalte-Zeichen selbst 2. Ab jetzt kann als „CharacteristicID“ der Wert “-2„ übergeben werden, um nach dem Änderungsdatum zu suchen |
4.0.0 | 2003-04-03 | Fehler im Fall „OutputCharacteristicIDs“ ist „NULL“ und „LastPersonID > 0“ |
3.5.16 | 2002-04-25 | |
3.5.15 | 2002-03-12 | |
3.5.14 | 2002-01-23 | |
3.5.13 | 2001-12-06 | |
3.5.11 | 2001-09-06 | |
3.5.9 | 2001-06-16 | |
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_GetPersons_Conditions_Ad?OutputCharacteristicIDs=<value>'
Mit xmllint 6) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/pm_GetPersons_Conditions_Ad?OutputCharacteristicIDs=<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_GetPersons_Conditions_Ad', array( 'OutputCharacteristicIDs' => '<value>', // 'PersonTypeID' => 1, // 'LastValues' => NULL, // 'LastPersonID' => 0, // 'Next' => 1, // 'RowNumber' => 50, // 'GroupID' => NULL, // 'CharacteristicIDList' => NULL, // 'ConditionList' => NULL, // 'Country' => 'Germany', // 'OutputIntoOneID' => 0, // 'SeparatorInLastValues' => '¶', // 'SeparatorInConditionList' => '¶' ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray(); $OutputParams = $xml_result->getOutputParametersAsArray();
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_GetPersons_Conditions_Ad"> <Parameters> <Parameter Name="OutputCharacteristicIDs"><!-- varchar value --></Parameter> <!-- <Parameter Name="PersonTypeID">1</Parameter> --> <!-- <Parameter Name="LastValues">NULL</Parameter> --> <!-- <Parameter Name="LastPersonID">0</Parameter> --> <!-- <Parameter Name="Next">1</Parameter> --> <!-- <Parameter Name="RowNumber">50</Parameter> --> <!-- <Parameter Name="GroupID">NULL</Parameter> --> <!-- <Parameter Name="CharacteristicIDList">NULL</Parameter> --> <!-- <Parameter Name="ConditionList">NULL</Parameter> --> <!-- <Parameter Name="Country">'Germany'</Parameter> --> <!-- <Parameter Name="OutputIntoOneID">0</Parameter> --> <!-- <Parameter Name="SeparatorInLastValues">'¶'</Parameter> --> <!-- <Parameter Name="SeparatorInConditionList">'¶'</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>