Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:fo_searchpostings_pu

fo_SearchPostings_Pu

Prozedur zur Suche von Beiträgen in einem Forum.

Wie immer werden natürlich eine Identifizierung durchgeführt und die Berechtigungen (es müssen Lese-Rechte vorhanden sein) der entsprechenden Person für das Forum, zu dem der Beitrag gehört, überprüft.
Falls die Identifizierung fehlschlägt oder in „UniqueID“ der Wert „defaultUniqueID“ angegeben wird, werden die Rechte für die anonyme Person (mit der speziellen „PersonID = 0“) gecheckt.

Es wird grundsätzlich nach zwei Arten von Suchen unterschieden :

A) Suche anhand der „Wörter“ der Beiträge und/oder dem Erstellungs-Zeitpunkt.
Anmerkung : Grundlage ist die Tabelle „SearchPostings“, die NUR gepflegt wird, wenn beim Erstellen/Ändern eines Beitrags (fo_InsertPosting_Pu bzw. fo_ModifyPosting_Pu) die Suchbegriffe (in der Regel die Wörter, aus denen „Subject“ und „Body“ bestehen) angegeben werden und der Parameter „MaintainSearchPostings“ auf „1“ gesetzt ist !

B) Suche anhand von „Properties“. Dabei handelt es sich um Eigenschaften zu Beiträgen.
Anmerkung : Diese werden ebenfalls von der jeweiligen „Client-Anwendung“ gepflegt, sieht z.B. fo_ModifyPostingProperties_Pu

Hinweise zur „Suchvariante“ A)

Diese Suchvariante wird genau dann angewendet, wenn „NULL“ für den Parameter „PostingCharacteristicIDList“ angegeben ist.

Die Wörter bzw. Wortteile, nach denen gesucht werden soll, sind über „tempdb.dbo.AnyValues“ anzugeben, wobei folgendes gilt :
„Value“s mit gleicher „ID“ stellen einen „Bedingungsblock“ dar und werden mit „und“ verknüpft; die Bedingungsblöcke werden mit „oder“ verknüpft. Seit Version 4.0.0 ist es aber auch möglich, keine Suchbegriffe zu übergeben und nur nach dem Datum zu suchen (→ „FromDate“, „ToDate“) !

Beispiel :

ID Value
—————
1 hallo
1 welt
2 42

Bedeutet : Suche alle Postings, in denen die Wörter „hallo“ UND „welt“ vorkommen ODER in denen das Wort „42“ vorkommt.

WICHTIGE Anmerkungen:
1. Die Wörter bzw. Wortteile, nach denen gesucht werden soll, sind KOMPLETT in KLEINBUCHSTABEN („lowercase“) anzugeben, weil intern alle Wörter (gespeichert in der Tabelle „SearchPostings_Words“) in Kleinbuchstaben hinterlegt sind !
2.Die Wörter in „SearchPostings_Words“ sind maximal 100 Zeichen lang (d.h. man kann die mehr als 200 möglichen Zeichen in „tempdb.dbo.AnyValues“ NICHT voll nutzen).
3. Möchte man die Postings suchen, die ein Wort enthalten, das mit einer bestimmten Zeichenfolge BEGINNT, muß in „Value“ der Wert mit einem '%' am Ende stehen UND der Parameter „SearchWithLikeOperator“ muß auf „1“ gesetzt sein. Bei diesem Vorgehen muß jedoch darauf geachtet werden, dass der Suchbegriff nicht mit einem der Wildcards '%', '_', '[', ']' oder '^' beginnt, da sonst der Index auf SearchPostingsWords nicht benutzt werden kann. Es ist tatsächlich ein Performance-Unterschied, ob man z.B. mit „… LIKE 'hallo' …“ oder „… = 'hallo' …“ sucht, deswegen sollte dieser Parameter nur wenn unbedingt gewünscht auf „1“ gesetzt sein !

Hinweise zur „Suchvariante“ B)

Ermittelt werden alle Beiträge, deren Eigenschaften zu den durch „PostingCharacteristicIDList“ angegebenen Merkmalen die in „ConditionList“ aufgeführten Bedingungen erfüllen (die Elemente in den Listen sind jeweils durch „¶“ zu trennen).
Für Vergleichsoperationen müssen die einzelnen Bedingungen in „ConditionList“ ein entsprechendes Format haben :

  • Wert : „Like“ Wert
  • ~Wert : „Like“ Wert, aber case-INsensitiv
  • ^Wert : „soundex(Wert)“
  • {Wert : „<>“ Wert
  • (Wert : „>=“ Wert
  • Wert) : „⇐“ Wert
  • [Wert : „>“ Wert
  • Wert] : „<“ Wert
  • (Wert1|Wert2) : „>=“ Wert1 und „⇐“ Wert2
  • (Wert1|Wert2] : „>=“ Wert1 und „<“ Wert2
  • [Wert1|Wert2) : „>“ Wert1 und „⇐“ Wert2
  • [Wert1|Wert2] : „>“ Wert1 und „<“ Wert2

  • {} oder {) oder {] oder (} oder () oder (] oder [} oder [) oder [] : Postings, die KEINE Eigenschaft zum Mermal haben

Sofern eine Bedingung (in „ConditionList“) eines der Formate <Wert> oder <~Wert> („LIKE“-Suche nach <Wert>) hat, können sogenannte „Platzhalter“ (o.a. „wildcards“) verwendet werden :

  • '_' oder '?' : Platzhalter für EIN Zeichen
  • '%' oder '*' : Platzhalter für eine ZeichenKETTE

Weitere Hinweise :
1. 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)
2. Soll nach einem Platzhalter-Zeichen gesucht werden, ist dieses Zeichen 2mal hintereinander einzugeben (z.B. würde durch Angabe von „%%%“ nach Werten gesucht werden, die mit „%“ beginnen)
3. Im Falle einer „LIKE“-Suche (Format „Wert“ oder „~Wert“) 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)
  • “%%„ durch “[%] (um nach dem Zeichen „%“ selbst suchen zu können)

⇒ Daher wird z.B. „?_“ sowie „_?“ durch „[_]“ ersetzt, oder „*%“ sowie „%*“ durch „[%]“. Allerdings wird z.B. „__?“ durch „[_]_“ ersetzt !

Posting-Eigenschaften sind grundsätzlich immer an eine „PersonID“ gebunden (die besondere ID „0“ bedeutet, daß die Eigenschaft „allgemein“ zum Beitrag hinterlegt ist), daher bietet der Parameter „FilterByPersonIDList“ die Möglichkeit, hiernach zu filtern.
In diesem Parameter muß eine Liste von Elementen (durch „¶“ getrennt) angegeben werden, die jeweils zur an entsrechender Stelle in „PostingCharacteristicIDList“ befindlichen Merkmal-ID korrespondiert.
Diese Elemente müssen jeweils die Form <PersonID>_<FilterCriteria> haben, wobei <FilterCriteria> ein „tinyint“-Wert ist, der angibt, WIE nach der <PersonID> zu filtern ist :

  • „0“ : Nur Eigenschaften, die zur „PersonID“ hinterlegt sind
  • „1“ : Nur Eigenschaften, die NICHT zur „PersonID“ hinterlegt sind
  • „2“ : Nur Eigenschaften, die zur „PersonID“ ODER zur „PersonID = 0“ hinterlegt sind

Weitere Hinweise :
1. Ist für eine Suchbedingung KEINE Filterung nach einer „PersonID“ angegeben, wird implizit IMMER eine Einschränkung nach der identifizierten Person vorgenommen (im folgenden abgekürzt durch „IdentifiedPersonID“), und zwar mit dem Filter-Kriterium „2“. D.h. es werden dann nur Eigenschaften berücksichtigt, die zur „IdentifiedPersonID“ ODER zur „PersonID = 0“ hinterlegt sind !
2. Derzeit ist es nur erlaubt in EIGENEN oder ALLGEMEINEN Eigenschaften zu suchen, d.h. bei „PersonID“ MUSS es sich entweder um „IdentifiedPersonID“ oder um die ID „0“ handeln !

Anmerkungen zum Parameter „Visibility“ :
1. Sofern auch gelöschte Beiträge berücksichtigt werden sollen, muß die identifizierte Person für das Forum mindestens eines der folgenden Rechte besitzen :
„16“ : „löschen eigener Postings, sofern keine Replies vorhanden“
„32“ : „löschen eigener Postings (inkl. Replies)„
„128“ : „löschen aller Postings des Forums, sofern keine Replies vorhanden“
„256“ : „löschen aller Postings des Forums (inkl. Replies)„
Besitzt die Person nur das Recht „16“ oder „32“ wird zudem nur in EIGENEN (Author entspricht der identifizierten Person) gelöschten Beiträge gesucht !
2. Sollen nicht bestätigte Beiträge berücksichtigt werden, benötigt die identifizierte Person das Recht
„64“ : „bestätigen von Postings des Forums“
für das Forum.
3. Falls die Identifizierung fehlschlägt, werden die Rechte für die anonyme Person (mit der speziellen „PersonID = 0“) gecheckt.

Anmerkungen zum Parameter „OutputIntoOneID“ :
Alternativ zu einer Rückgabemenge kann man sich die „PostingID“s auch in „tempdb.dbo.OneID“ einfügen lassen (für einen anschließenden Aufruf von fo_GetPostingProperties_Pu z.B.). Dazu ist „OutputIntoOneID“ auf „1“ zu setzen. Möchte man sowohl eine Ergebnismenge erhalten, als auch die „PostingID“s in „OneID“ einfügen lassen, übergibt man für besagten Parameter den Wert „2“.
Möchte man quasi „ODER“-Suchen durchführen, macht es Sinn, daß man das Suchergebnis zu evtl. bereits vorhandenen „PostingID“s in „tempdb.dbo.OneID“ HINZUfügen läßt. Dazu ist für „OutputIntoOneID“ der Wert „3“ anzugeben. Um gleichzeitig wiederum auch eine Ergebnismenge zu erhalten, setzt man den Parameter auf „4“.

HTTP-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieforums
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
PersonIdentificationValues Liste von Werten, die den Forum-Teilnehmer identifizieren. Diese Werte müssen Eigenschaften zu den Merkmal-IDs sein, die in „PersonTypeSettings“ zur „PersonTypeID“ zum Schlüssel „PersonIdentificationIDs“ hinterlegt sind.
varchar(255)3.5.7
PersonTypeID ID des Personen-Typs dem der zu identifizierende Forum-Teilnehmer angehört. Dieser muß bei einer Identifizierung immer mit angegeben werden, da die Merkmale zur Identifizierung pro Personentyp variieren können.
tinyint3.5.7
UniqueID Eindeutige ID eines Besuchers, die dem zu identifizierenden Forum-Teilnehmer aktuell zugeordnet ist. Falls die Identifizierungsdaten zur Person in „SessionManagement“ (zur „UniqueID“) gespeichert sind, darf „PersonIdentificationValues“ „NULL“ sein.
varchar(50)3.5.7
ForumID ID eines Forums, in dem gesucht werden soll
smallint3.5.7
SearchWithLikeOperator0 Gibt an, wie die in „tempdb.dbo.AnyValues“ angegebenen Suchwörter verglichen werden sollen
„0“ : Direkter Vergleich
„1“ : Es wird mit dem LIKE-Operator verglichen (wildcards müssen aber explizit angegeben werden !)
bit3.5.7
IncludePostingBodies0 Gibt an, ob in der Rückgabemenge auch der „Body“ (d.h. der Beitrag selbst) des jeweiligen Postings ausgegeben werden soll
bit3.5.7
RowCount50 Beschränkung der Anzahl Datensätze in der Rückgabemenge (bzw. der IDs, die in „OneID“ eingefügt werden, s. „OutputIntoOneID“).
„0“ angeben, um alle Daten zu erhalten/berücksichtigen.
Hinweis : „NULL“ oder ein Wert kleiner „0“ ist nicht erlaubt !
integer3.5.7
IncludeAdditionalInfos0 Wenn hier „1“ angegeben wird, gibt es zusätzliche Rückgabespalten
bit3.5.7
FromDateNULL Falls angegeben, werden nur Beiträge berücksichtigt, die NACH diesem Datum verfaßt wurden
datetime3.5.7
ToDateNULL Falls angegeben, werden nur Beiträge berücksichtigt, die VOR diesem Datum verfaßt wurden
datetime3.5.7
Visibility12 Nur Postings beachten, die einen bestimmten „Sichtbarkeitsstatus“ („Visible“ in „ForumPostings“) haben; für eine Filterung nach mehreren „Visible“-Status gibt man einfach die entsprechende Summe an. Mögliche Werte : siehe fo_GetPostingVisibilities.
tinyint4.0.5
GetOwnNotApprovedPostings0 Konnte eine Person identifiziert werden und wird hier „1“ übergeben, werden nicht nur „Visibility“ entsprechende Beiträge berücksichtigt, sondern auch eigene (d.h. Autor ist die identif. Person), unbestätigte Beiträge (dazu ist lesend. Zugr. erforderl.)
bit4.0.5
OutputIntoOneID0 Genaueres : s. Beschreibung !
Kurzerläuterung :
„0“ : Ergebnismenge
„1“ : IDs in „OneID“ einfügen lassen
„2“ : Ergebnismenge + IDs in „OneID“ einfügen
„3“ : IDs in „OneID“ HINZUfügen lassen
„4“ : Ergebnismenge + IDs „OneID“ HINZUfügen
tinyint4.0.16
PostingCharacteristicIDListNULL Liste (durch „¶“ getrennt) von Merkmal-IDs (zu denen „Postings“ Eigenschaften besitzen können). Pro ID muß an entsprechender Stelle in „ConditionList“ und „FilterByPersonIDList“ eine Bedingungen angegeben sein, die erfüllt sein muß (s. Beschreibung).
varchar(255)5.0.3
ConditionListNULL Die zur „PostingCharacteristicIDList“ korrespondierenden Suchbedingungen (durch '¶' getrennt, pro ID in „PostingCharacteristicIDList“ muß auch eine Bedingung angegeben sein) - siehe Beschreibung !
varchar(255)5.0.3
FilterByPersonIDListNULL Die zur „PostingCharacteristicIDList“ korrespondierenden Einschränkungen hinsichtlich der „PersonID“ (Posting-Eigenschaften sind nämlich immer an eine „PersonID“ gebunden). Die Elemente müssen die Form <PersonID>_<FilterCriteria> haben - s. Beschreibung
varchar(255)5.0.3
Country'Germany' Falls eine Bedingung in „ConditionList“ ein Datums-/Uhrzeitformat hat, muß angegeben sein, um welches Länderformat es sich handelt (Groß-/Kleinschreibung wird nicht beachtet) :
'german', 'germany' : Tag-Monat-Jahr
'english', 'england' : Monat-Tag-Jahr
varchar(10)5.0.3
SearchOnlyPostingsInOneID0 Möchte man nicht in allen Beiträgen des Forums „ForumID“ suchen, sondern nur in bestimmten Beiträgen, übergibt man für den Parameter „SearchOnlyPostingsInOneID“ den Wert „1“ und fügt in die Tabelle „tempdb.dbo.OneID“ die entsprechenden „PostingIDs“ ein.
bit5.0.3
SeparatorInIdentVals'¶' Gibt an, durch welche Zeichen die Werte in „PersonIdentificationValues“ getrennt sind
varchar(4)5.5.0

Rückgabe

wenn IncludeAdditionalInfos = 0 und OutputIntoOneID IN (0,2,4)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
PostDateSortNo5)Wird nur zur Sortierung verwendet. Da der ASE (11.0.3) keine Indizes mit ABsteigender Sortierung erlaubt, enthält diese Spalte immer den negativen Wert von „PostingID“ so daß indirekt absteigend nach dem Datum des Beitrags sortiert werden kann.
integer3.5.7
PostingIDID eines Beitrags, der von „PersonID“ geschrieben wurde
integer3.5.7
ReplyToPostingIDID des Postings, auf das „PostingID“ eine Antwort darstellt. Falls gleich „PostingID“, handelt es sich um einen Haupt-Beitrag, sprich „MainPosting“
integer3.5.7
MainPostingIDID des Haupt-Beitrages zu „PostingID“ (also sozusagen das Wurzel-Element des gesamten „Threads“ zu dem „PostingID“ gehört)
integer3.5.7
PostDateWann wurde der Beitrag „PostingID“ erstellt ?
datetime3.5.7
AuthorName des Verfassers („PersonID“) des Beitrags „PostingID“, also die Eigenschaft(en) des Autors „PersonID“ zu der (den) Merkmal-ID(s), die in „ForumSettings“ zum Schlüssel „CharacteristicIDsForAuthor_<PersonTypeID von PersonID>“ hinterlegt ist (sind)
varchar(100)3.5.7
AuthorPersonID(Person)ID des Verfassers „Author“ - „0“ bedeutet, daß der Verfasser anonym ist
integer3.5.7
EMailOfAuthoreMail des Verfassers „Author“
varchar(100)3.5.7
SubjectDer Titel des Beitrags „PostingID“
varchar(255)3.5.7
BodyDer Beitrag selbst - immer „NULL“ falls „IncludePostingBodies = 0“ oder wenn „SmallBody“ NICHT „NULL“ ist
text3.5.7
SmallBodyHier erscheint der Beitrag selbst, falls er weniger als 256 Zeichen enthält UND „UseSmallBody“ in „ForumSettings“ auf „1“ gesetzt UND „IncludePostingBodies = 1“ ist. D.h. mindestens EINE der Rückgabespalten „SmallBody“ und „Body“ ist IMMER „NULL“.
varchar(255)3.5.17
VisibleSichtbarkeits-Status des Postings „PostingID“ - mögliche Werte : siehe fo_GetPostingVisibilities
tinyint3.5.20
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • PostDateSortNo (aufsteigend)

wenn IncludeAdditionalInfos = 1 und OutputIntoOneID IN (0,2,4)

Spaltenname Beschreibung SQL-Datentyp6) ab Version
PostDateSortNo7)Wird nur zur Sortierung verwendet. Da der ASE (11.0.3) keine Indizes mit ABsteigender Sortierung erlaubt, enthält diese Spalte immer den negativen Wert von „PostingID“ so daß indirekt absteigend nach dem Datum des Beitrags sortiert werden kann.
integer3.5.7
PostingIDID eines Beitrags, der von „PersonID“ geschrieben wurde
integer3.5.7
ReplyToPostingIDID des Postings, auf das „PostingID“ eine Antwort darstellt. Falls gleich „PostingID“, handelt es sich um einen Haupt-Beitrag, sprich „MainPosting“
integer3.5.7
MainPostingIDID des Haupt-Beitrages zu „PostingID“ (also sozusagen das Wurzel-Element des gesamten „Threads“ zu dem „PostingID“ gehört)
integer3.5.7
PostDateWann wurde der Beitrag „PostingID“ erstellt ?
datetime3.5.7
AuthorName des Verfassers („PersonID“) des Beitrags „PostingID“, also die Eigenschaft(en) des Autors „PersonID“ zu der (den) Merkmal-ID(s), die in „ForumSettings“ zum Schlüssel „CharacteristicIDsForAuthor_<PersonTypeID von PersonID>“ hinterlegt ist (sind)
varchar(100)3.5.7
AuthorPersonID(Person)ID des Verfassers „Author“ - „0“ bedeutet, daß der Verfasser anonym ist
integer3.5.7
EMailOfAuthoreMail des Verfassers „Author“
varchar(100)3.5.7
SubjectDer Titel des Beitrags „PostingID“
varchar(255)3.5.7
BodyDer Beitrag selbst - immer „NULL“ falls „IncludePostingBodies = 0“ oder wenn „SmallBody“ NICHT „NULL“ ist
text3.5.7
HasSuccessorsGibt es wenigstens eine Antwort auf „PostingID“ ? Dabei zählen nur Beiträge, die einen „Visibility“ entsprechenden „Sichtbarkeits-Status“ haben bzw. unbestätigt sind, falls „GetOwnNotApprovedPosting = 1“ und der Autor die identifizierte Person ist !
bit3.5.7
HasBinariesSind „Binaries“ zu dem Posting „PostingID“ vorhanden ?
bit3.5.7
AlreadyReadWurde das Posting vor „HoursAfterPostingsAreRegardedAsRead“ (Eintrag in „ForumSettings“) Stunden verfaßt ODER gibt es zur Person, die diese Prozedur aufruft, einen Eintrag in „ReadPostingsPerPerson“, steht hier der Wert „1“
bit3.5.7
SmallBodyHier erscheint der Beitrag selbst, falls er weniger als 256 Zeichen enthält UND „UseSmallBody“ in „ForumSettings“ auf „1“ gesetzt UND „IncludePostingBodies = 1“ ist. D.h. mindestens EINE der Rückgabespalten „SmallBody“ und „Body“ ist IMMER „NULL“.
varchar(255)3.5.17
VisibleSichtbarkeits-Status des Postings „PostingID“ - mögliche Werte : siehe fo_GetPostingVisibilities
tinyint3.5.20
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • PostDateSortNo (aufsteigend)

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 8)
-805Keine Berechtigung zum Löschen von Postingsnur direkt
-802Keine Berechtigung zum Bestätigen von Postings des Forumsnur direkt
-801Kein lesender Zugriff auf das Forumnur direkt
-660Identifikation fehlgeschlagennur indirekt
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-602Zur defaultUniqueID („VisitorID = -2“) können keinerlei Daten gespeichert oder verändert werdennur indirekt
-599Lizenz ist ungültig oder abgelaufennur indirekt
-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
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-536Unerlaubte Zeichen im Suchbegriffnur 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.4 2013-04-29Bugfix: „ErrorMsg“ wurde am Ende der Prozedur nicht ausgegeben
6.5.3 2013-03-18Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung
6.5.0 2012-09-17Holger Wies : Wird in „UniqueID“ die „DefaultUniqueID“ angegeben, wird nun [ohne Aufruf von
pm_CheckPersonIdentity_Pu] der Aufrufer als „anonyme Person“ [„PersonID = 0“] identifiziert
5.5.0 2008-01-071. Neuer Parameter „SeparatorInIdentVals“
2. Ausgabe an die Standard-Ausgabe [via „print“] im Fehler-Fall “-500“, die nähere Informationen über die Ursache enthält
5.1.0 2006-02-08Ab jetzt wird explizit auf „lesendes Recht“ [„AccessLevelID = 1“] geprüft
5.0.3 2005-06-071. Neu : „PostingCharacteristicIDList“, „ConditionList“, „FilterByPersonIDList“, „Country“ zur Suche in „Properties“
2. Neu : „SearchOnlyPostingsInOneID“, neue mögliche Werte für „OutputIntoOneID“
3. „RowCount“ ist „integer“, man kann „0“ angeben
4.0.16 2004-08-311. Neuer Parameter „OutputIntoOneID“
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-04Neue Parameter „Visibility“ und „GetOwnNotApprovedPostings“
4.0.3 2003-07-101. Fehler bzgl. „RowCount“ in einem Fall
2. Ausgabe der Ergebnismenge : „set transaction isolation level 0“ entfernt, da sonst u.U. eine Endlos-Schleife entstehen kann
3. Fehler bzgl. Initialisierung von internen Variablen anhand von „Setttings“-Eintr.
4.0.0 2003-04-03Ohne Angabe von Suchbegriffen kann man jetzt auch nur nach dem Datum filtern
3.5.21 2002-08-06
3.5.20 2002-07-22
3.5.19 2002-06-17
3.5.18 2002-05-15
3.5.17 2002-05-02
3.5.12 2001-10-17
3.5.10 2001-07-14
3.5.7 2001-05-04Erstmalig 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/fo_SearchPostings_Pu?PersonIdentificationValues=<value>&PersonTypeID=<value>&UniqueID=<value>&ForumID=<value>'

Mit xmllint 9) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/fo_SearchPostings_Pu?PersonIdentificationValues=<value>&PersonTypeID=<value>&UniqueID=<value>&ForumID=<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'),
	'fo_SearchPostings_Pu',
		array(
			'PersonIdentificationValues' => '<value>',
			'PersonTypeID' => <value>,
			'UniqueID' => '<value>',
			'ForumID' => <value>,
			// 'SearchWithLikeOperator' => 0,
			// 'IncludePostingBodies' => 0,
			// 'RowCount' => 50,
			// 'IncludeAdditionalInfos' => 0,
			// 'FromDate' => NULL,
			// 'ToDate' => NULL,
			// 'Visibility' => 12,
			// 'GetOwnNotApprovedPostings' => 0,
			// 'OutputIntoOneID' => 0,
			// 'PostingCharacteristicIDList' => NULL,
			// 'ConditionList' => NULL,
			// 'FilterByPersonIDList' => NULL,
			// 'Country' => 'Germany',
			// 'SearchOnlyPostingsInOneID' => 0,
			// 'SeparatorInIdentVals' => '¶'
		)
);
 
$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="fo_SearchPostings_Pu">
			<Parameters>
				<Parameter Name="PersonIdentificationValues"><!-- varchar value --></Parameter>
				<Parameter Name="PersonTypeID"><!-- tinyint value --></Parameter>
				<Parameter Name="UniqueID"><!-- varchar value --></Parameter>
				<Parameter Name="ForumID"><!-- smallint value --></Parameter>
				<!-- <Parameter Name="SearchWithLikeOperator">0</Parameter> -->
				<!-- <Parameter Name="IncludePostingBodies">0</Parameter> -->
				<!-- <Parameter Name="RowCount">50</Parameter> -->
				<!-- <Parameter Name="IncludeAdditionalInfos">0</Parameter> -->
				<!-- <Parameter Name="FromDate">NULL</Parameter> -->
				<!-- <Parameter Name="ToDate">NULL</Parameter> -->
				<!-- <Parameter Name="Visibility">12</Parameter> -->
				<!-- <Parameter Name="GetOwnNotApprovedPostings">0</Parameter> -->
				<!-- <Parameter Name="OutputIntoOneID">0</Parameter> -->
				<!-- <Parameter Name="PostingCharacteristicIDList">NULL</Parameter> -->
				<!-- <Parameter Name="ConditionList">NULL</Parameter> -->
				<!-- <Parameter Name="FilterByPersonIDList">NULL</Parameter> -->
				<!-- <Parameter Name="Country">'Germany'</Parameter> -->
				<!-- <Parameter Name="SearchOnlyPostingsInOneID">0</Parameter> -->
				<!-- <Parameter Name="SeparatorInIdentVals">'¶'</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
5) , 7)
Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.
8)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
9)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/fo_searchpostings_pu.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)