Verwaltet Benutzer-spezifische Einstellungen zu Elementen im „Anwendungs-Baum“. Damit ist die hierarchische Struktur von Teilen einer registrierten „dStore-Anwendung“ (s. mi_GetApplications_Ad bzw. mi_GetApplicationParts_Ad) gemeint.
Anmerkung zum Parameter „DataInTempdb“ :
Es können mehrere Einstellungen gleichzeitig verarbeitet werden, indem man „DataInTempdb“ auf „1“ setzt. In „tempdb.dbo.CharacteristicConditions“ erwartet die Prozedur dann „ApplicationPartTreeID-KeyVariable-Value“-Werte, die so übergeben werden :
Alle anderen Spalten können beliebige Werte enthalten, diese werden nicht weiter beachtet (Achtung : „CharacteristicID“ muß eindeutig sein, d.h. hier verwendet man am besten eine Art „Zeilennummer“).
Des Weiteren kann man die Daten auch über die Input-Schnittstelle von mi_ModifyAppPartTreeSetts_Ad übergeben, was den Vorteil hat, dass „Value“ größere Datenmengen enthalten kann (bis zu 3500 Bytes). Um die Schnittstelle zu füllen, wird „if_mi_ModifyAppPartTreeSetts_Ad“ verwendet und anschliessend diese Prozedur mit „ApplicationPartTreeID = NULL“ und „DataInTempdb = 0“ aufgerufen (siehe Dokumentation von „if_mi_ModifyAppPartTreeSetts_Ad“ ).
HTTP-Method | POST |
HTTP-Auth | Optional |
Alias | mi_ModifyApplicationPartTreeSettings_Ad |
Tags | |
Engine-Kategorie | basics |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
ApplicationPartTreeID | ID eines Elementes im „Anwendungs-Baum“. Wird nur beachtet, wenn „DataInTempdb = 0“ ist ! Wird „NULL“ angegeben und ist „DataInTempdb = 0“, müssen die Daten zuvor via „if_mi_ModifyAppPartTreeSetts_Ad“ in die Schnittstelle eingefügt worden sein. | integer | 4.0.8 | |
UserID | NULL | ID eines in „UserInfo“ registrierten „dStore“-Benutzers (bei „NULL“ : der Benutzer, der die Prozedur aufruft), für den die Einstellung gilt. „-1“ bedeutet, daß die Einstellung für alle Benutzer (die keinen eigenen Eintrag zu „KeyVariable“ haben) gilt. | smallint | 4.0.8 |
KeyVariable | Ein Schlüssel, auf den sich „Value“ bezieht, bzw. zu dem ein evtl. bereits vorhandener Wert gelöscht werden soll (falls „Delete = 1“) | varchar(100) | 4.0.8 | |
Value | Der Wert zum Schlüssel „KeyVariable“, der zum Benutzer „UserID“ für das Element „ApplicationPartTreeID“ hinterlegt werden soll | varchar(3500) | 4.0.8 | |
Delete | 0 | „0“ : Die angegebene(n) Einstellung(en) für den Benutzer „UserID“ hinterlegen „1“ : Evtl. vorhandene Einstellung(en) zu(m) angegebenen Schlüssel(n) für den Benutzer „UserID“ löschen | bit | 4.0.8 |
DataInTempdb | 0 | Wird „1“ angegeben, ignoriert die Prozedur „ApplicationPartTreeID“, „KeyVariable“ und „Value“. Stattdessen werden Daten in „tempdb.dbo.CharacteristicConditions“ erwartet - siehe Beschreibung. | bit | 4.0.8 |
Die Prozedur hat keine Rückgaben.
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 4) |
---|---|---|
-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 |
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.5 | 2014-05-26 | Neue Möglichkeit der Datenübergabe via „dstoreifin.dbo.mi_mi_ModifyAppPartTreeSetts_Ad“ und Parameter „Value“ auf „varchar[3500]“ erweitert |
7.0.2 | 2013-08-29 | Ab jetzt werden „KeyVariable“- und „Value“-Werte bei Übergabe über „tempdb.dbo.CharacteristicConditions“ hinsichtlich der maximalen Länge geprüft und es gibt ggf. einen Fehler [vorher wurden Werte abgeschnitten] ⇒ Auch entsprechender Doku-Hinweis |
6.5.4 | 2013-04-29 | Anpassungen an aktuellen Code-Standard |
6.5.3 | 2013-03-18 | Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung |
4.0.9 | 2004-03-03 | 1. Verwendung von „_mi_ChooseParamValueSeperator“ als Vorbereitung von „_mi_StartProcedure“ 2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur |
4.0.8 | 2004-02-20 | 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 POST 'http://<partner>-<project>.dstore.de/default/engine/mi_ModifyAppPartTreeSetts_Ad?ApplicationPartTreeID=<value>&KeyVariable=<value>&Value=<value>'
Mit xmllint 5) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/mi_ModifyAppPartTreeSetts_Ad?ApplicationPartTreeID=<value>&KeyVariable=<value>&Value=<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'), 'mi_ModifyAppPartTreeSetts_Ad', array( 'ApplicationPartTreeID' => <value>, 'KeyVariable' => '<value>', 'Value' => '<value>', // 'UserID' => NULL, // 'Delete' => 0, // 'DataInTempdb' => 0 ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray();
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="mi_ModifyAppPartTreeSetts_Ad"> <Parameters> <Parameter Name="ApplicationPartTreeID"><!-- integer value --></Parameter> <Parameter Name="KeyVariable"><!-- varchar value --></Parameter> <Parameter Name="Value"><!-- varchar value --></Parameter> <!-- <Parameter Name="UserID">NULL</Parameter> --> <!-- <Parameter Name="Delete">0</Parameter> --> <!-- <Parameter Name="DataInTempdb">0</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>