Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:fo_modifypostingcharacs_ad

fo_ModifyPostingCharacs_Ad

Prozedur, um Posting-Merkmale (zu denen Foren-Beiträge Eigenschaften haben können) zu verwalten.

Grundsätzliches zu Posting-Eigenschaften :
1. Eigenschaften eines Beitrags sind immer an eine „PersonID“ gebunden. Dies bedeutet, daß eine Eigenschaft entweder „allgemein“ gültigt ist - nämlich wenn „PersonID = 0“ ist - oder die Eigenschaft hat nur Gültigkeit für die durch „PersonID“ angegebene Person. Pro Merkmal ist durch das sogenannte „CommonCharacteristic“-Flag (s. gleichnamiger Parameter dieser Prozedur) konfiguriert, ob

  • nur
  • auch
  • keine

allgemeine(n) Eigenschaften hinterlegt werden können.
2. Genau wie im „Item-“ und „Person-Management“ gehören Eigenschaften immer zu einem Merkmal - Merkmale charakterisieren sozusagen die Eigenschaften.
Wenn für das zugehörige Forum eines Beitrags mindestens ein Merkmal zugeordnet ist (→ fo_ModifyCharacsForForums_Ad), können diesem Beitrag ausschließlich Eigenschaften zu Merkmalen hinzugefügt werden, die dem Forum zugeordnet sind.
3. Sind dem Forum eines Beitrags direkt KEINE Merkmale zugeordnet (→ fo_ModifyCharacsForForums_Ad), können diesem Beitrag ausschließlich Eigenschaften zu Merkmalen hinzugefügt werden, die wenigestens einer Kategorie, in die das Forum DIREKT eingeordnet ist, zugeordnet sind (→ fo_ModifyCharacForForumCats_Ad).

Anmerkungen :
1. „PostingCharacteristicID“s unter 50 sind für interne Zwecke vom „dStore“ reserviert. Diese können derzeit nicht geändert oder gelöscht werden, und neue Merkmale erhalten daher immer eine ID größer als „50“.
2. Wenn versucht wird, ein neues Merkmal mit einem „Ja-Nein“-Basisfeldtyp anzulegen, wird in jedem Fall „PredefinedValues“ und „MaxNumberOfProperties“ auf „1“ gesetzt und dafür gesorgt, daß zwei Eigenschaften „0“ und „1“ zu dem neuen Merkmal angelegt werden.
3. Im Falle von Änderungen gibt es einige Dinge zu beachten :
a) Änderungen der „FieldTypeID“, wenn die zugehörige „BasicFieldTypeID“ ANDERS ist oder aber die Länge oder Genauigkeit ERNIEDRIGT wird, können NICHT vorgenommen werden. Ausnahme : Alle Eigenschaften erfüllen die neuen Bedingungen.
Ein Wechsel des Basis-Feldtyps ist aber grundsätzlich verboten, wenn es in einer aktiven oder gerade in der Initialisierung befindlichen Sortierung von Hauptbeiträgen (s. fo_GetMainPostSortCriteria_Ad) verwendet wird !
b) Änderungen des „CommonCharacteristic“-Flags können nur vorgenommen werden, wenn sie nicht mit bestehenden Eigenschaften kollidieren
c) Änderungen von „MaxNumberOfProperties“ hängen natürlich ebenfalls von bestehenden Eigenschaften ab (Erhöhungen gehen immer, Erniedrigungen bedingt)
d) Bei einigen Änderungen müssen evtl. vorhandene Eigenschaften überprüft werden, was etwas Zeit in Anspruch nehmen kann !
4. Wird das Merkmal in einer aktiven oder gerade in der Initialisierung befindlichen Sortierung von Hauptbeiträgen (s. fo_GetMainPostSortCriteria_Ad) verwendet, ist das Löschen grundsätzlich verboten !

HTTP-MethodPOST
HTTP-AuthOptional
Aliasfo_ModifyPostingCharacteristics_Ad
Tags
Engine-Kategorieconfigurations
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

CharacteristicDescription Bezeichnung des (neuen) Merkmals
varchar(100)4.0.16
FieldTypeID ID eines „Feld-Typs“, von dem alle Eigenschaften des (neuen) Merkmals sein müssen (z.B. „Text mit maximal 20 Zeichen“) - siehe auch mi_GetFieldTypes_Ad
tinyint4.0.16
PropertyModificationAllowed7 Gibt an, ob Eigenschaften zum Merkmal nachträglich geändert werden können. Es ist eine Summe folgender Werte :
„0“ : Hinzufügen, Ändern oder Löschen ist NICHT möglich
„1“ : Hinzufügen ist möglich
„2“ : Ändern ist möglich
„4“ : Löschen ist möglich
tinyint4.0.16
CommonCharacteristic1 Gibt an, zu welchen „PersonID“s Eigenschaften zum Merkmal hinterlegt werden können :
„0“ : Nur „PersonID“s ungleich „0“
„1“ : „PersonID“ kann beliebig sein
„2“ : Nur „PersonID = 0“
tinyint4.0.16
PredefinedValues0 Sind mögliche Eigenschaften für Postings zum Merkmal vordefiniert („1“) oder nicht („0“)
bit4.0.16
CheckPostingVisibility0 „1“ bedeutet, daß das LESEN von Eigenschaften zum Merkmal (über fo_GetPostingProperties_Pu) nur erlaubt ist, wenn die identifizierte Person auch den Beitrag lesen darf - was ja vom „Visible“-Status des jeweiligen Beitrags abhängt
bit4.0.16
MaxNumberOfPropertiesNULL Gibt an, wieviele Eigenschaften zum Merkmal ein Beitrag (bei gleicher „PersonID“) maximal haben darf :
- „NULL“ : Keine Einschränkung
- „0“ : Dieser Wert ist nicht erlaubt
- „1“ : Maximal 1 Eigenschaft
- „2“ : Maximal 2 Eigenschaften
usw.
tinyint4.0.16
DeleteCharacteristic0 Wird nur beachtet, falls „PersonCharacteristicID“ angegeben ist. Gibt an, ob das Merkmal…
„0“ : geändert
„1“ : gelöscht - falls keine Eigenschaften mehr vorhanden sind -
„2“ : gelöscht - auch wenn noch Eigenschaften vorhanden sind -
… werden soll
tinyint4.0.16

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

PostingCharacteristicIDID eines Posting-Merkmals. Bei Angabe von „NULL“ wird ein neues Merkmal angelegt - die neue ID kann (bei Erfolg) dann auch über diesen Parameter ausgelesen werden.

Mögliche Return-Codes

Code Beschreibung Quelle 1)
-876Das Merkmal kann nicht geändert/gelöscht werden, da es zur Sortierung v. Hauptbeiträgen benutzt wirdnur direkt
-871Das Merkmal kann nicht mehr geändert werden, da bereits Eigenschaften vorhanden sindnur direkt
-870Das Merkmal kann nicht gelöscht werden, da es noch verwendet wirdnur 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.3 2013-03-18Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung
5.5.0 2008-01-071. Fehler : Es konnten IDs unter „50“ angelegt und gelöscht werden
2. Ausgabe an die Standard-Ausgabe [via „print“] im Fehler-Fall „-500“, die nähere Informationen über die Ursache enthält
5.0.4 2005-09-26Ein Wechsel des Basis-Feldtyps eines Merkmals ist von nun an grundsätzlich verboten, wenn es als Kriterium in einer aktiven (oder gerade in der Initialisierung befindlichen) Sortierung von Hauptbeiträgen verwendet wird !
4.0.16 2004-08-31Erstmalig 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/fo_ModifyPostingCharacs_Ad?CharacteristicDescription=<value>&FieldTypeID=<value>'

Mit xmllint 2) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/fo_ModifyPostingCharacs_Ad?CharacteristicDescription=<value>&FieldTypeID=<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_ModifyPostingCharacs_Ad',
		array(
			'CharacteristicDescription' => '<value>',
			'FieldTypeID' => <value>,
			// 'PropertyModificationAllowed' => 7,
			// 'CommonCharacteristic' => 1,
			// 'PredefinedValues' => 0,
			// 'CheckPostingVisibility' => 0,
			// 'MaxNumberOfProperties' => NULL,
			// 'DeleteCharacteristic' => 0
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
 
$OutputParams = $xml_result->getOutputParametersAsArray();
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_ModifyPostingCharacs_Ad">
			<Parameters>
				<Parameter Name="CharacteristicDescription"><!-- varchar value --></Parameter>
				<Parameter Name="FieldTypeID"><!-- tinyint value --></Parameter>
				<!-- <Parameter Name="PropertyModificationAllowed">7</Parameter> -->
				<!-- <Parameter Name="CommonCharacteristic">1</Parameter> -->
				<!-- <Parameter Name="PredefinedValues">0</Parameter> -->
				<!-- <Parameter Name="CheckPostingVisibility">0</Parameter> -->
				<!-- <Parameter Name="MaxNumberOfProperties">NULL</Parameter> -->
				<!-- <Parameter Name="DeleteCharacteristic">0</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
2)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/fo_modifypostingcharacs_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)