Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— |
engine:procedures:co_searchmembers_pu [11.01.2016 ] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== co_SearchMembers_Pu ===== | ||
+ | |||
+ | Mit Hilfe dieser Prozedur kann ein Community-Mitglied nach anderen Mitgliedern in einer Community suchen.\\ | ||
+ | |||
+ | Man kann (per default) im "Nickname" (Eigenschaft zum Merkmal mit der ID, die in "CommunitySettings" zum Schlüssel "IdentifyingCharacteristicID" konfiguriert ist) suchen, jedoch auch eine komplexere Suche nach der Art von [[dstoreproc>pm_GetPersons_Conditions_Ad]] durchführen.\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zu den Parametern "CaseSensitive" und "ExactMatching" :\\ | ||
+ | |||
+ | Wurde für "SearchString" der Wert %%''%% oder "NULL" angegeben, d.h. wird eine "komplexe Suche" (der Art von [[dstoreproc>pm_GetPersons_Conditions_Ad]]) durchgeführt, werden diese Parameter natürlich ignoriert !\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zum Parameter "CharacteristicIDList" :\\ | ||
+ | |||
+ | Es sind natürlich nur Merkmale erlaubt, die ein Community-Mitglied von einem anderen Mitglied einsehen darf. Diese werden zum Schlüssel "PublicCharacteristicIDs" in "CommunitySettings" konfiguriert.\\ | ||
+ | |||
+ | |||
+ | |||
+ | 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 !) :\\ | ||
+ | |||
+ | * {} oder {) oder {] oder (} oder () oder (] oder [} oder [) oder [] -> Es sollen alle Personen gesucht werden, die das entsprechende Merkmal NICHT haben. | ||
+ | * (Wert1%%|%%Wert2) -> ">=" Wert1 und "<=" Wert2 | ||
+ | * (Wert1%%|%%Wert2] -> ">=" Wert1 und "<" Wert2 | ||
+ | * [Wert1%%|%%Wert2) -> ">" Wert1 und "<=" Wert2 | ||
+ | * [Wert1%%|%%Wert2] -> ">" Wert1 und "<" Wert | ||
+ | * {Wert -> "<>" Wert | ||
+ | * (Wert -> ">=" Wert | ||
+ | * [Wert -> ">" Wert | ||
+ | * ~Wert -> "Like" Wert, aber case-INsensitiv | ||
+ | * ^Wert -> "= soundex(Wert)" | ||
+ | * Wert) -> "<=" Wert | ||
+ | * Wert] -> "<" Wert | ||
+ | * Wert -> "Like" Wert | ||
+ | |||
+ | |||
+ | 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 : | ||
+ | * '_' oder '?' : Platzhalter für EIN Zeichen | ||
+ | * '%' oder '*' : Platzhalter für eine ZeichenKETTE | ||
+ | |||
+ | |||
+ | 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 "<nowiki>%%</nowiki>%" 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 : | ||
+ | * "?" durch "_", ausgenommen "??" (diese Zeichenkette wird durch "?" ersetzt) | ||
+ | * "*" durch "%", ausgenommen "**" (diese Zeichenkette wird durch "*" ersetzt) | ||
+ | * "%%__%%" durch "[_] (um nach dem Zeichen "_" selbst suchen zu können, siehe 4.) | ||
+ | * "<nowiki>%%</nowiki>" durch "[%] (um nach dem Zeichen "%" selbst suchen zu können, siehe 4.) | ||
+ | => 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 zu "OutputIntoOneID" :\\ | ||
+ | |||
+ | 1. Wird "2" oder "3" angegeben, werden die gefundenen IDs den evtl. vorhandenen IDs in "tempdb.dbo.OneID" hinzugefügt. Dies bedeutet natürlich, daß es KEINEN Fehler gibt, wenn eine ID schon vorhanden ist !\\ Mit Hilfe dieser Option lassen sich "ODER"-Suchen implementieren.\\ | ||
+ | |||
+ | 2. Die Werte "2" oder "3" machen natürlich keinen Sinn, wenn "SearchOnlyMembersInOneID" den Wert "1" oder "2" hat !\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zu den Parametern "MaxNumberOfRows", "LastNickname" und "Next" :\\ | ||
+ | |||
+ | Die Prozedur ermittelt intern immer die komplette Ergebnismenge. Soll eine Rückgabemenge geliefert werden (wurde also "0" oder "3" für "OutputIntoOneID" angegeben), werden "MaxNumberOfRows" Datensätze ausgegeben, die nach bzw. vor (je nach "Next") dem Datensatz mit "Nickname = LastNickname" liegen.\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zu den "OutputCharacteristicID..."-Parametern :\\ | ||
+ | |||
+ | IDs, die hier übergeben werden und nicht für den Benutzer, der diese Prozedur aufruft, "sichtbar" sind (aufgrund von Zugriffsbeschränkungen, s. [[dstoreproc>pm_GetPChAccRestrForUsers_Ad]]), werden grundsätzlich ignoriert ! D.h. es gibt zwar keinen Fehler, aber die entsprechende(n) Eigenschaft(en) werden natürlich nicht zurückgegeben !\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zur Rückgabespalte "Nickname" :\\ | ||
+ | |||
+ | Eine evtl. konfigurierte Zugriffsbeschränkung für das "Nickname"-Merkmal (s. [[dstoreproc>pm_GetPChAccRestrForUsers_Ad]]) wird bewußt NICHT beachtet (da das ja DIE öffentlich sichtbare Eigenschaft in einer Community schlechthin ist) !\\ | ||
+ | |HTTP-Method|GET | | ||
+ | |HTTP-Auth|Optional | | ||
+ | |Tags|{{tag>[co Search Members Pu]}}| | ||
+ | |Engine-Kategorie|communities | | ||
+ | |Engine-Typ|Daten-Ermittlung | | ||
+ | |Letzte Aktualisierung|6.5.4 (2013-04-29)| | ||
+ | |||
+ | ==== Parameter ==== | ||
+ | |||
+ | |__UniqueID__| |Eindeutige ID eines Besuchers, die dem zu identifizierenden Mitglied aktuell zugeordnet ist. Falls die Identifizierungsdaten zur Person in "SessionManagement" (zu dieser "UniqueID") gespeichert sind, darf "PersonIdentificationValues" auch "NULL" sein.\\ |varchar(50)|3.5.0| | ||
+ | |__PersonIdentificationValues__| |Liste von Werten, die das Mitglied identifizieren. Diese Werte müssen Eigenschaften zu den Merkmal-IDs sein, die in "PersonTypeSettings" zur "PersonTypeID" der "CommunityID" zum Schlüssel "PersonIdentificationIDs" hinterlegt sind.\\ |varchar(255)|3.5.0| | ||
+ | |__CommunityID__| |ID einer Community\\ |smallint|3.5.0| | ||
+ | |__SearchString__| |In den Eigenschaften der Mitglieder zum Merkmal "IdentifyingCharacteristicID" (aus "CommunitySettings"), den "Nickname"s, wird nach dieser Zeichenkette gesucht. "NULL" oder %%''%% angeben, um eine "komplexe Suche" (s. "CharacteristicIDList") durchzuführen.\\ |varchar(100)|3.5.0| | ||
+ | |MaxNumberOfRows|30 |Wieviele Datensätze sollen maximal (höchstens 255) zurückgegeben werden ?\\ Anmerkung : In "tempdb.dbo.OneID" (s. "OutputIntoOneID") steht immer die KOMPLETTE Ergebnismenge, d.h. es wird nicht nur die hierdurch beschränkte Anzahl von IDs gespeichert !\\ |tinyint|3.5.4| | ||
+ | |CaseSensitive|0 |"0" : Alle "Nickname"s suchen, die bis auf Groß- und Kleinschreibung mit "SearchString" übereinstimmen - wildcards wie "*", "%", "?" oder "_" sind erlaubt\\ "1" : "SearchString" enthält einen (korrekt geschriebenen) "Nickname"\\ |bit|3.5.0| | ||
+ | |OutputCharacteristicID1|NULL |ID eines Merkmals. Falls angegeben, enthält die Rückgabemenge in der Spalte "Value1" die Eigenschaft des jeweiligen Mitglieds zu diesem Merkmal. Das Merkmal muß aber durch den "Settings"-Eintrag zum Schlüssel "PublicCharacteristicIDs" freigegeben sein !\\ |smallint|3.5.4| | ||
+ | |OutputCharacteristicID2|NULL |ID eines Merkmals. Falls angegeben, enthält die Rückgabemenge in der Spalte "Value2" die Eigenschaft des jeweiligen Mitglieds zu diesem Merkmal. Das Merkmal muß aber durch den "Settings"-Eintrag zum Schlüssel "PublicCharacteristicIDs" freigegeben sein !\\ |smallint|3.5.4| | ||
+ | |OutputCharacteristicID3|NULL |ID eines Merkmals. Falls angegeben, enthält die Rückgabemenge in der Spalte "Value3" die Eigenschaft des jeweiligen Mitglieds zu diesem Merkmal. Das Merkmal muß aber durch den "Settings"-Eintrag zum Schlüssel "PublicCharacteristicIDs" freigegeben sein !\\ |smallint|3.5.4| | ||
+ | |CommunityBinaryCategoryID|NULL |Falls angegeben, enthält die Spalte "BinaryID" der Rückgabemenge die kleinste "BinaryID", die dem jeweiligen Mitglied in dieser Kategorie zugeordnet ist\\ |smallint|3.5.4| | ||
+ | |ExactMatching|0 |Wird nicht beachtet, wenn "CaseSensitive = 1" ist !\\ "0" : Nicknames suchen, die mit "SearchString" BEGINNEN\\ "1" : Nicknames suchen, die bis auf evtl. Groß- und Kleinschreibung genau mit "SearchString" übereinstimmen\\ |bit|3.5.10| | ||
+ | |OnlineStatusInsteadOfIsOnline|0 |Soll der genaue "Online-Status" zurückgegeben werden oder nur, ob der Benutzer online ist oder nicht (siehe Erläuterung zur Rückgabemenge, Spalten "IsOnline" bzw. "OnlineStatus")\\ |bit|3.5.11| | ||
+ | |CharacteristicIDList|NULL |Wird nur beachtet, wenn "SearchString" "NULL" oder %%''%% ist ! Liste von Merkmal-IDs (durch '¶' getrennt), nach denen ("ConditionList" entsprechend) gesucht werden soll. "-1" bzw. "-2" angeben, um nach dem Erstellungs- bzw. Änderungsdatum zu suchen.\\ |varchar(255)|5.0.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)|5.0.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)|5.0.0| | ||
+ | |OutputIntoOneID|0 |Ergebnismenge ausgeben und/oder "CommunityMemberID"s in "tempdb.dbo.OneID" speichern ?\\ * "0" : nur Ergebnismenge liefern\\ * "1" : IDs in "OneID" speichern\\ * "2" : IDs "OneID" HINZUfügen\\ * "3" : IDs "OneID" HINZUfügen und eine Ergebnismenge liefern\\ |tinyint|5.0.0| | ||
+ | |SearchOnlyMembersInOneID|0 |"0" : Suche in ALLEN Mitgliedern\\ "1" : Suche nur in den via "tempdb.dbo.OneID" angegebenen Mitgliedern\\ "2" : Wie "1" mit dem Unterschied, daß die durch "CharacteristicIDList" und "ConditionList" angegebenen Bedingungen mit ODER verknüpft werden\\ |tinyint|5.0.0| | ||
+ | |FilterByBinaryCategoryID|NULL |ID einer "CommunityBinaryCategoryID". Falls angegeben, wird die Menge der Mitglieder, die die Suchbedingung(en) erfüllen, weiter verringert : es sind nur Mitglieder im Ergebnis, die mindestens EIN "Binary" besitzen, das dieser Kategorie zugeordnet ist.\\ |smallint|5.0.0| | ||
+ | |LastNickname|NULL |"LastNickname" ist der Ausgangspunkt (bezieht sich auf die Rückgabespalte "Nickname"), ab dem die Ergebnismenge ausgegeben wird, "Next" entscheidet, ob die Datensätze VOR diesem Ausgangspunkt ("0") oder DANACH ("1") ermittelt werden.\\ |varchar(100)|5.0.0| | ||
+ | |Next|1 |Dient dazu, sich durch die Ergebnismenge "blättern" zu können :\\ "LastNickname" ist der Ausgangspunkt, ab dem die Ergebnismenge ausgegeben wird, "Next" entscheidet, ob die Datensätze VOR diesem Ausgangspunkt ("0") oder DANACH ("1") ermittelt werden.\\ |bit|5.0.0| | ||
+ | |SeparatorInIdentVals|'¶' |Gibt an, durch welche Zeichenkette die Werte in "PersonIdentificationValues" getrennt sind\\ |varchar(4)|5.5.0| | ||
+ | |SeparatorInConditionList|'¶' |Gibt an, durch welche Zeichenkette die Bedingungen in "ConditionList" getrennt sind\\ |varchar(4)|5.5.0| | ||
+ | ==== Rückgabe ==== | ||
+ | |||
+ | === wenn Result (Pseudo-Parameter) = 0 und OutputIntoOneID IN (0,3) === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |//lower(Nickname)((Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.))//|Wird nicht zurückgegeben, sondern zur Sortierung benötigt; enthält den "Nickname" komplett "lowercase" (Kleinbuchstaben)\\ |varchar(100)|3.5.4 | | ||
+ | |CommunityMemberID|ID eines gefunden Community-Mitglieds\\ |integer|3.5.0 | | ||
+ | |Nickname|Eigenschaft von "CommunityMemberID" zu dem durch den Schlüssel "IdentifyingCharacteristicID" aus "CommunitySettings" hinterlegten Merkmal. Es trifft "Nickname = SearchString" bzw. "lower(Nickname) like SearchString" zu.\\ |varchar(100)|3.5.0 | | ||
+ | |IsOnline|Falls "OnlineStatusInsteadOfIsOnline = 1" ist, dann steht hier immer der Wert "0" ("NULL" ist beim Datentyp "bit" nicht möglich). Ansonsten bedeutet ein Wert von "1", daß das Mitglied "CommunityMemberID" gerade "online" ist.\\ |bit|3.5.4 | | ||
+ | |Value1|Eigenschaft des Mitglieds "CommunityMemberID" zum Merkmal "OutputCharacteristicID1"\\ |varchar(100)|3.5.4 | | ||
+ | |Value1RestrictedByPattern|Was enthält "Value1" (womöglich wegen Zugriffsbeschränkungen nur einen Teil) ?\\ - NULL : den vollständigen Wert\\ - "#left(<n>)#" : nur die ERSTEN n Zeichen\\ - "#right(<n>)#" : nur die LETZTEN n Zeichen\\ Anmerkung : "n = 0" möglich, "Value1" ist dann NULL\\ |varchar(100)|6.5.4 | | ||
+ | |Value2|Eigenschaft des Mitglieds "CommunityMemberID" zum Merkmal "OutputCharacteristicID2"\\ |varchar(100)|3.5.4 | | ||
+ | |Value2RestrictedByPattern|Wie "Value1RestrictedByPattern" - nur eben auf "Value2" bezogen\\ |varchar(100)|6.5.4 | | ||
+ | |Value3|Eigenschaft des Mitglieds "CommunityMemberID" zum Merkmal "OutputCharacteristicID3"\\ |varchar(100)|3.5.4 | | ||
+ | |Value3RestrictedByPattern|Was enthält "Value3" (womöglich wegen Zugriffsbeschränkungen nur einen Teil) ?\\ - NULL : den vollständigen Wert\\ - "#left(<n>)#" : nur die ERSTEN n Zeichen\\ - "#right(<n>)#" : nur die LETZTEN n Zeichen\\ Anmerkung : "n = 0" möglich, "Value3" ist dann NULL\\ |varchar(100)|6.5.4 | | ||
+ | |BinaryID|Falls "CommunityBinaryCategoryID" angegeben wurde, steht hier die kleinste "BinaryID", die dem Mitglied "CommunityMemberID" in der Kategorie "CommunityBinaryCategoryID" zugeordnet ist\\ |integer|3.5.4 | | ||
+ | |OnlineStatus|Falls "OnlineStatusInsteadOfIsOnline = 0" ist, ist dieser Wert immer "NULL". Andernfalls kann hier zwar auch "NULL" stehen, dies bedeutet aber dann, daß das Mitglied "offline" ist - ansonsten steht dort der Status aus "CurrentlyUsersOnline".\\ |tinyint|3.5.11 | | ||
+ | |||
+ | == Sortierung der Rückgabe == | ||
+ | |||
+ | (parameterunabängige Sortierung) | ||
+ | * lower(Nickname) (aufsteigend) | ||
+ | |||
+ | === wenn Result (Pseudo-Parameter) = -760 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |CharacteristicID|ID des Merkmals, in dem gesucht werden soll (entweder die "IdentifyingCharacteristicID" oder eine in "CharacteristicIDList" übergebene ID). "0" bedeutet, daß "EstimatedRowsAffected" die (geschätzte) Anzahl Personen enthält, die ALLE Bedingungen erfüllen.\\ |smallint|5.0.0 | | ||
+ | |CharacteristicDescription|Bezeichnung des Merkmals "CharacteristicID" (in der Standardsprache)\\ |varchar(100)|5.0.0 | | ||
+ | |Operator1|Operator für die Bedingung "Condition1". Mögliche Werte :\\ - ">="\\ - ">"\\ - "<="\\ - "<"\\ - "<>"\\ - "SOUNDEX"\\ - "LIKE (cs)" (case-sensitive Like-Suche)\\ - "LIKE (ci)" (case-insensitive Like-Suche)\\ - "HAS NO PROPERTY" ("Condition1" ist dann "NULL")\\ |varchar(20)|5.0.0 | | ||
+ | |Condition1|Bedingung, die in Verbindung mit "Operator1" anzuwenden ist ("NULL", falls "Operator1" den Wert "HAS NO PROPERTY" hat)\\ |varchar(255)|5.0.0 | | ||
+ | |Operator2|Operator für die Bedingung "Condition2". Nur NICHT "NULL", wenn eine in "ConditionList" angegebene Bedingung die Form "(Wert1%%|%%Wert2)", "(Wert1%%|%%Wert2]", "[Wert1%%|%%Wert2)" oder "[Wert1%%|%%Wert2] hat. Mögliche Werte sind dann :\\ - "<="\\ - "<"\\ |varchar(20)|5.0.0 | | ||
+ | |Condition2|Bedingung, die in Verbindung mit "Operator2" anzuwenden ist ("NULL", falls "Operator2" auch "NULL" ist)\\ |varchar(255)|5.0.0 | | ||
+ | |EstimatedRowsAffected|Geschätzte Anzahl Personen, die die Bedingung(en) erfüllen. Ist "CharacteristicID = 0", steht hier die entscheidende Abschätzung (die zu "-760" führte), wieviele Personen wohl ALLE Bedingungen erfüllen.\\ |integer|5.0.0 | | ||
+ | |||
+ | == Sortierung der Rückgabe == | ||
+ | |||
+ | (parameterunabängige Sortierung) | ||
+ | * CharacteristicID (aufsteigend) | ||
+ | |||
+ | ==== Output-Parameter ==== | ||
+ | |||
+ | |Count|Ausgabeparameter, der die Information enthält, wieviele Mitglieder die Suchbedingung(en) (einschließlich der evtl. angegebenen weiteren Filter-Option "FilterByBinaryCategoryID" !) erfüllen.| | ||
+ | ==== Mögliche Return-Codes ==== | ||
+ | |||
+ | ^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber" und indirekt meint "von intern aufgerufenen Unterprozeduren")) ^ | ||
+ | |-781|Fehlender oder falscher Eintrag in CommunitySettings|nur indirekt| | ||
+ | |-780|Fehlender oder falscher Eintrag in CommunityMemberSettings|nur indirekt| | ||
+ | |-774|Login vorübergehend gesperrt|nur indirekt| | ||
+ | |-773|Login gesperrt|nur indirekt| | ||
+ | |-772|User ist nicht angemeldet|nur indirekt| | ||
+ | |-771|Der Sweeper ist nicht gestartet|nur indirekt| | ||
+ | |-770|Login zur Zeit nicht möglich|nur indirekt| | ||
+ | |-760|Die geschätzte Anzahl Datensätze des Suchergebnisses überschreitet "DenyMemberSearchThreshold"|nur direkt| | ||
+ | |-750|Fehlende Berechtigung für die Anzeige der Daten|nur direkt| | ||
+ | |-697|Aktion kann nicht durchgeführt werden, da für ein Merkmal eine Zugriffsbeschränkung besteht|nur indirekt| | ||
+ | |-660|Identifikation fehlgeschlagen|nur indirekt| | ||
+ | |-621|Fehlender oder falscher Eintrag in PersonTypeSettings|nur indirekt| | ||
+ | |-602|Zur defaultUniqueID ("VisitorID = -2") können keinerlei Daten gespeichert oder verändert werden|nur indirekt| | ||
+ | |-599|Lizenz ist ungültig oder abgelaufen|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| | ||
+ | |-550|Fehlender oder falscher Eintrag in Settings|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|direkt und indirekt| | ||
+ | |-502|Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)|nur indirekt| | ||
+ | |-500|Falsche Parameter|direkt und indirekt| | ||
+ | ==== XML-Schema ==== | ||
+ | |||
+ | Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema [[http://resources.dstore.de/xsd/webservice_SmartGate/Response/EngineProcedure_v1_0.xsd|Response/EngineProcedure_v1_0.xsd]] validiert. | ||
+ | ==== Historie ==== | ||
+ | |||
+ | |6.5.4 |2013-04-29|1. Implementierung des neuen Merkmal-Zugriffsbeschränkungen-Features [=> auch Hinweis in der Doku]\\ 2. Länge der "SeparatorIn..."-Parameter wurde jeweils erweitert [von "1" auf "4"]\\ 3. Neue Rückgabespalten "Value...RestrictedByPattern"\\ | | ||
+ | |5.5.0 |2008-01-07|1. Neue Parameter "SeparatorInIdentVals" und "SeparatorInConditionList"\\ 2. Ausgabe via "print" im Fehler-Fall "-500", die nähere Informationen über die Ursache enthält\\ 3. Bearbeitung des Quellcodes hinsichtlich neuer Konventionen\\ | | ||
+ | |5.1.4 |2006-08-14|Performance-Verbesserung : Aufgrund eines Fehlers beim Auslesen von Daten aus "CommunityStatistics" kam es zu unnötigen zusätzlichen "reads" auf "CommunityMembers"\\ | | ||
+ | |5.1.0 |2006-02-08|1. Fehler : Es konnten Personen ermittelt werden, die gar nicht Mitglieder der Community waren !\\ 2. Unklare Definition der Syntax der Suchbedingungen in "ConditionList" und kleine unlogische Verhaltensweisen korrigiert.\\ | | ||
+ | |5.0.0 |2004-12-21|1. 9 neue Parameter\\ 2. Konsequente Fehlerbehandlung\\ 3. Ausführen von "set transaction isolation level 1" und "set rowcount 0" zu Beginn der Prozedur\\ | | ||
+ | |3.5.11 |2001-09-06|\\ | | ||
+ | |3.5.10 |2001-07-14|\\ | | ||
+ | |3.5.4 |2001-03-11|\\ | | ||
+ | |3.5.2 |2001-01-28|\\ | | ||
+ | |3.5.0 |2000-11-23|Erstmalig 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: | ||
+ | * [[http://playground.dstore.de/index.php?proc=co_SearchMembers_Pu|co_SearchMembers_Pu im Engine Playground öffnen]] | ||
+ | == cURL == | ||
+ | Unformatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/co_SearchMembers_Pu?UniqueID=<value>&PersonIdentificationValues=<value>&CommunityID=<value>&SearchString=<value>'</code>Mit xmllint ((I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org)) formatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/co_SearchMembers_Pu?UniqueID=<value>&PersonIdentificationValues=<value>&CommunityID=<value>&SearchString=<value>' | xmllint --format -</code>== dStore_php == | ||
+ | <code 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'), | ||
+ | 'co_SearchMembers_Pu', | ||
+ | array( | ||
+ | 'UniqueID' => '<value>', | ||
+ | 'PersonIdentificationValues' => '<value>', | ||
+ | 'CommunityID' => <value>, | ||
+ | 'SearchString' => '<value>', | ||
+ | // 'MaxNumberOfRows' => 30, | ||
+ | // 'CaseSensitive' => 0, | ||
+ | // 'OutputCharacteristicID1' => NULL, | ||
+ | // 'OutputCharacteristicID2' => NULL, | ||
+ | // 'OutputCharacteristicID3' => NULL, | ||
+ | // 'CommunityBinaryCategoryID' => NULL, | ||
+ | // 'ExactMatching' => 0, | ||
+ | // 'OnlineStatusInsteadOfIsOnline' => 0, | ||
+ | // 'CharacteristicIDList' => NULL, | ||
+ | // 'ConditionList' => NULL, | ||
+ | // 'Country' => 'Germany', | ||
+ | // 'OutputIntoOneID' => 0, | ||
+ | // 'SearchOnlyMembersInOneID' => 0, | ||
+ | // 'FilterByBinaryCategoryID' => NULL, | ||
+ | // 'LastNickname' => NULL, | ||
+ | // 'Next' => 1, | ||
+ | // 'SeparatorInIdentVals' => '¶', | ||
+ | // 'SeparatorInConditionList' => '¶' | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $service->execute($request); | ||
+ | |||
+ | $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); | ||
+ | $ResultSet = $xml_result->getRowsAsArray(); | ||
+ | |||
+ | $OutputParams = $xml_result->getOutputParametersAsArray();</code> | ||
+ | == engine/execute == | ||
+ | XML zur Ausführung mit der Methode [[:webservice:engine:execute|engine/execute]], z.B. per | ||
+ | curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>' | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | <ListOfBatches> | ||
+ | <Batch No="0"> | ||
+ | <Procedure Name="co_SearchMembers_Pu"> | ||
+ | <Parameters> | ||
+ | <Parameter Name="UniqueID"><!-- varchar value --></Parameter> | ||
+ | <Parameter Name="PersonIdentificationValues"><!-- varchar value --></Parameter> | ||
+ | <Parameter Name="CommunityID"><!-- smallint value --></Parameter> | ||
+ | <Parameter Name="SearchString"><!-- varchar value --></Parameter> | ||
+ | <!-- <Parameter Name="MaxNumberOfRows">30</Parameter> --> | ||
+ | <!-- <Parameter Name="CaseSensitive">0</Parameter> --> | ||
+ | <!-- <Parameter Name="OutputCharacteristicID1">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="OutputCharacteristicID2">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="OutputCharacteristicID3">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="CommunityBinaryCategoryID">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ExactMatching">0</Parameter> --> | ||
+ | <!-- <Parameter Name="OnlineStatusInsteadOfIsOnline">0</Parameter> --> | ||
+ | <!-- <Parameter Name="CharacteristicIDList">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ConditionList">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="Country">'Germany'</Parameter> --> | ||
+ | <!-- <Parameter Name="OutputIntoOneID">0</Parameter> --> | ||
+ | <!-- <Parameter Name="SearchOnlyMembersInOneID">0</Parameter> --> | ||
+ | <!-- <Parameter Name="FilterByBinaryCategoryID">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="LastNickname">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="Next">1</Parameter> --> | ||
+ | <!-- <Parameter Name="SeparatorInIdentVals">'¶'</Parameter> --> | ||
+ | <!-- <Parameter Name="SeparatorInConditionList">'¶'</Parameter> --> | ||
+ | </Parameters> | ||
+ | </Procedure> | ||
+ | </Batch> | ||
+ | </ListOfBatches></code> | ||