Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_movetreenodes_ad

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-MethodPOST
HTTP-AuthOptional
Tags
Engine-Kategorieitem management
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) 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“)
integer3.5.0
Resort0 „0“ : Die Elemente sollen nicht neu sortiert werden
„1“ : Die Elemente sollen neu sortiert werden
(siehe auch Beschreibung)
bit3.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 4)
-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
-563Abbruch der Prozedur, da ein Teil der Daten von einem parallel laufenden Prozeß verändert wurdenur direkt
-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
-500Falsche Parameterdirekt und indirekt
-180Falsche Hierarchie : Ein Element muß immer eine niedrigere Hierarchiestufe als sein Vorgänger habennur direkt
-110Das (die) Element(e) ist (sind) nicht vorhandennur direkt

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]
7.0.4 2014-03-19Kleine Kosmetik-Korrektur : Bei einigen Code-Zeilen war am Ende ein CR-Zeichen, was wir entfernt haben
6.0.4 2011-10-211. Anpassungen an den aktuellen Quellcode-Standard
2. Pflege der neuen „TreeNodeMetaInformation“-Tabelle
3. Pflege von „TreeViewDistributionStatistics“ ist entfallen
6.0.0 2010-03-26Falscher Index in einem Fall
4.0.13 2004-05-181. 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-111. 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-23Erstmalig 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/im_MoveTreeNodes_Ad?TargetTreeNodeID=<value>'

Mit xmllint 5) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/im_MoveTreeNodes_Ad?TargetTreeNodeID=<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'),
	'im_MoveTreeNodes_Ad',
		array(
			'TargetTreeNodeID' => <value>,
			// 'Resort' => 0
		)
);
 
$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="im_MoveTreeNodes_Ad">
			<Parameters>
				<Parameter Name="TargetTreeNodeID"><!-- integer value --></Parameter>
				<!-- <Parameter Name="Resort">0</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
5)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/im_movetreenodes_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)