Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
engine:procedures:im_movetreenodes_ad [11.01.2016 ] |
engine:procedures:im_movetreenodes_ad [11.01.2016 ] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== im_MoveTreeNodes_Ad ===== | ||
+ | |||
+ | Verschiebt eine Menge von Elementen des Artikelbaums an eine andere Stelle im Artikelbaum ("TargetTreeNodeID"). Wenn das Ziel-Element den gleichen Vorgänger wie die übergebenen Elemente hat UND "Resort = 1" übergeben wurde, werden die Elemente umsortiert.\\ | ||
+ | |||
+ | Die Elemente sind via "tempdb.dbo.OneID" zu übergeben - allerdings kann im Falle eines Umsortierens ("Resort = 1") auch "tempdb.dbo.TwoIDs" verwendet werden : in "ID2" ist dann die aktuelle "SortNo" anzugeben (ansonsten ermittelt die Prozedur die bestehenden "SortNo"s selbst).\\ | ||
+ | |||
+ | Die relative Reihenfolge der übergebenen Elemente bleibt immer bestehen.\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkungen:\\ | ||
+ | |||
+ | 1.) Bei einer Umsortierung werden immer die "SortNo"s ALLER "Geschwister"-Elemente von "TargetTreeNodeID" aktualisiert.\\ Lücken in den "SortNo"s, die durch tatsächliches Löschen von Elementen entstanden sind, werden also quasi repariert.\\ 2.) Wenn "Resort = 1" und die Elemente via "tempdb.dbo.OneID" übergeben werden, ist "tempdb.dbo.TwoIDs" unbedingt vorher explizit zu löschen.\\ 3.) Im Falle einer Umsortierung wird wie folgt vorgegangen ("MinSortNo" soll die kleinste, "MaxSortNo" die größte "SortNo" der übergebenen Elemente bezeichnen, "SortNo" sei die "SortNo" des Ziel-Elementes ["TargetTreeNodeID"]) :\\ Wenn "MaxSortNo > SortNo" ist, dann wird "TargetTreeNodeID" direkt VOR dem Element mit "MaxSortNo" einsortiert, sonst wird "TargetTreeNodeID" direkt NACH dem Element mit "MinSortNo" eingeordnet.\\ | ||
+ | |HTTP-Method|POST | | ||
+ | |HTTP-Auth|Optional | | ||
+ | |Tags|{{tag>[im Move Tree Nodes Ad]}}| | ||
+ | |Engine-Kategorie|item management | | ||
+ | |Engine-Typ|Daten-Änderung | | ||
+ | |Letzte Aktualisierung|7.0.7 (2015-01-29)| | ||
+ | |||
+ | ==== Parameter ==== | ||
+ | |||
+ | ^Name ((Pflichtparameter sind unterstrichen)) ^Standard-Wert ^Beschreibung ((siehe [[webservice:engine_parameterconventions|Parameter-Konventionen engine/<Prozedur-Name>]])) ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |__TargetTreeNodeID__| |ID des Elementes im Artikelbaum, unter das die in "tempdb.dbo.OneID" angegebenen Elemente verschoben werden sollen (bzw. unter dem die Elemente umsortiert werden sollen, je nach "Resort")\\ |integer|3.5.0| | ||
+ | |Resort|0 |"0" : Die Elemente sollen nicht neu sortiert werden\\ "1" : Die Elemente sollen neu sortiert werden\\ (siehe auch Beschreibung)\\ |bit|3.5.0| | ||
+ | ==== Rückgabe ==== | ||
+ | |||
+ | Die Prozedur hat keine Rückgaben. | ||
+ | ==== Output-Parameter ==== | ||
+ | |||
+ | Die Prozedur hat keine Output-Parameter.==== Mögliche Return-Codes ==== | ||
+ | |||
+ | ^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber" und indirekt meint "von intern aufgerufenen Unterprozeduren")) ^ | ||
+ | |-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| | ||
+ | |-563|Abbruch der Prozedur, da ein Teil der Daten von einem parallel laufenden Prozeß verändert wurde|nur direkt| | ||
+ | |-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| | ||
+ | |-500|Falsche Parameter|direkt und indirekt| | ||
+ | |-180|Falsche Hierarchie : Ein Element muß immer eine niedrigere Hierarchiestufe als sein Vorgänger haben|nur direkt| | ||
+ | |-110|Das (die) Element(e) ist (sind) nicht vorhanden|nur direkt| | ||
+ | ==== 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]\\ | | ||
+ | |7.0.4 |2014-03-19|Kleine Kosmetik-Korrektur : Bei einigen Code-Zeilen war am Ende ein CR-Zeichen, was wir entfernt haben\\ | | ||
+ | |6.0.4 |2011-10-21|1. Anpassungen an den aktuellen Quellcode-Standard\\ 2. Pflege der neuen "TreeNodeMetaInformation"-Tabelle\\ 3. Pflege von "TreeViewDistributionStatistics" ist entfallen\\ | | ||
+ | |6.0.0 |2010-03-26|Falscher Index in einem Fall\\ | | ||
+ | |4.0.13 |2004-05-18|1. Aufruf der Prozeduren "_mi_StartProcedure" und "_mi_FinishProcedure"\\ 2. Ausführen von "set transaction isolation level 1" und "set rowcount 0" zu Beginn der Prozedur\\ | | ||
+ | |4.0.2 |2003-06-11|1. Konsequente Fehlerbehandlung auch außerhalb der Transaktion\\ 2. In "HistoryTreeView" entstanden fehlerhafte Datensätze, wenn die Prozedur mit den gleichen Elementen "gleichzeitig" aufgerufen wurde !\\ 3. Diverse interne Änderungen (Kommentare, etc.)\\ | | ||
+ | |3.5.20 |2002-07-22|\\ | | ||
+ | |3.5.15 |2002-03-12|\\ | | ||
+ | |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=im_MoveTreeNodes_Ad|im_MoveTreeNodes_Ad im Engine Playground öffnen]] | ||
+ | == cURL == | ||
+ | Unformatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/im_MoveTreeNodes_Ad?TargetTreeNodeID=<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/im_MoveTreeNodes_Ad?TargetTreeNodeID=<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'), | ||
+ | 'im_MoveTreeNodes_Ad', | ||
+ | array( | ||
+ | 'TargetTreeNodeID' => <value>, | ||
+ | // 'Resort' => 0 | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $service->execute($request); | ||
+ | |||
+ | $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); | ||
+ | $ResultSet = $xml_result->getRowsAsArray(); | ||
+ | |||
+ | </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="im_MoveTreeNodes_Ad"> | ||
+ | <Parameters> | ||
+ | <Parameter Name="TargetTreeNodeID"><!-- integer value --></Parameter> | ||
+ | <!-- <Parameter Name="Resort">0</Parameter> --> | ||
+ | </Parameters> | ||
+ | </Procedure> | ||
+ | </Batch> | ||
+ | </ListOfBatches></code> | ||