Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:fo_modifypostingcharacs_ad

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

engine:procedures:fo_modifypostingcharacs_ad [11.01.2016 ]
engine:procedures:fo_modifypostingcharacs_ad [11.01.2016 ] (aktuell)
Zeile 1: Zeile 1:
 +===== 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 (-> [[dstoreproc>​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 (-> [[dstoreproc>​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 (-> [[dstoreproc>​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. [[dstoreproc>​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. [[dstoreproc>​fo_GetMainPostSortCriteria_Ad]]) verwendet, ist das Löschen grundsätzlich verboten !\\ 
 +|HTTP-Method|POST |
 +|HTTP-Auth|Optional |
 +|Alias|fo_ModifyPostingCharacteristics_Ad |
 +|Tags|{{tag>​[fo Modify Posting Characteristics Ad]}}|
 +|Engine-Kategorie|configurations |
 +|Engine-Typ|Daten-Änderung |
 +|Letzte Aktualisierung|7.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 [[dstoreproc>​mi_GetFieldTypes_Ad]]\\ |tinyint|4.0.16|
 +|PropertyModificationAllowed|7 |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\\ |tinyint|4.0.16|
 +|CommonCharacteristic|1 |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"\\ |tinyint|4.0.16|
 +|PredefinedValues|0 |Sind mögliche Eigenschaften für Postings zum Merkmal vordefiniert ("​1"​) oder nicht ("​0"​)\\ |bit|4.0.16|
 +|CheckPostingVisibility|0 |"​1"​ bedeutet, daß das LESEN von Eigenschaften zum Merkmal (über [[dstoreproc>​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\\ |bit|4.0.16|
 +|MaxNumberOfProperties|NULL |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.\\ |tinyint|4.0.16|
 +|DeleteCharacteristic|0 |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\\ |tinyint|4.0.16|
 +==== Rückgabe ====
 +
 +Die Prozedur hat keine Rückgaben.
 +==== Output-Parameter ====
 +
 +|PostingCharacteristicID|ID 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 ((direkt meint "von der Prozedur selber"​ und indirekt meint "von intern aufgerufenen Unterprozeduren"​)) ^
 +|-876|Das Merkmal kann nicht geändert/​gelöscht werden, da es zur Sortierung v. Hauptbeiträgen benutzt wird|nur direkt|
 +|-871|Das Merkmal kann nicht mehr geändert werden, da bereits Eigenschaften vorhanden sind|nur direkt|
 +|-870|Das Merkmal kann nicht gelöscht werden, da es noch verwendet wird|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|
 +==== 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 ====
 +
 +|7.0.7 |2015-01-29|Interne Änderung : Datentyp-Erweiterung des "​ReferenceKey"​ [für "​_mi_StartProcedure"​-Aufruf]\\ ​ |
 +|6.5.3 |2013-03-18|Anpassungen an aktuellen Code-Standard,​ u.a. wg. UTF8-Unterstützung\\ ​ |
 +|5.5.0 |2008-01-07|1. 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-26|Ein 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-31|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=fo_ModifyPostingCharacs_Ad|fo_ModifyPostingCharacs_Ad im Engine Playground öffnen]]
 +== cURL ==
 +Unformatierte Ausgabe:
 +<code bash>
 +curl -X POST  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​fo_ModifyPostingCharacs_Ad?​CharacteristicDescription=<​value>&​FieldTypeID=<​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 POST  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​fo_ModifyPostingCharacs_Ad?​CharacteristicDescription=<​value>&​FieldTypeID=<​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'​),​
 + '​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();</​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="​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></​code>​
  
engine/procedures/fo_modifypostingcharacs_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)