Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_getmodifiednodes_ad

im_GetModifiedNodes_Ad

Wir suchen alle Artikel-Elemente („NodeID“s) bzw. Elemente im Artikelbaum („TreeNodeID“s), die sich SEIT (einschließlich) einem Zeitpunkt „geändert“ haben. Optional kann auch ein Zeitpunkt angegeben werden, um nur nach den Änderungen zu suchen, die BIS (einschließlich) zu diesem Datum stattfanden.

Die Definition für „geändert“ wird über zwei Parameter („NodeModifDef_MetaInfoTypeIDs“ und „TNodeModifDef_MetaInfoTypeIDs“, s.u.) übergeben, wobei im default-Fall gilt, daß mindestens eine der folgenden Bedingungen gegeben sein muß (damit ein Element als „geändert“ gilt) :

  • Das Element wurde neu angelegt - ID „1“ in „TNodeModifDef_MetaInfoTypeIDs“
  • Bei dem Element hat sich das „Active“-Flag (im Artikelbaum) geändert - ID „3“ in „TNodeModifDef_MetaInfoTypeIDs“
  • Der Vorgänger des Elementes (im Artikelbaum) hat sich geändert - ID „5“ in „TNodeModifDef_MetaInfoTypeIDs“
  • Wenigstens eine Eigenschaft des Elementes hat sich geändert (neu hinzugekommen, geändert oder gelöscht) - ID „1“ in „NodeModifDef_MetaInfoTypeIDs“
  • Es wurde eine Änderungen an der Zuordnung von „Binaries“ vorgenommen - ID „3“ in „NodeModifDef_MetaInfoTypeIDs“

Im Laufe der Zeit können noch weitere Bedingungen, sprich letztlich „Meta-InformationTypeID“s (sowohl für Artikel-Elemente als auch Elemente im Artikelbaum) hinzukommen, d.h. es können IDs, die man in „NodeModifDef_MetaInfoTypeIDs“ bzw. „TNodeModifDef_MetaInfoTypeIDs“ angeben kann, hinzukommen.
Aktuell (Stand Oktober 2012) gibt es noch zwei weitere Möglichkeiten :
1.) In „TNodeModifDef_MetaInfoTypeIDs“ kann die ID „7“ angegeben werden, was folgendes „Änderungs-Kriterium“ bedeutet :

  • Die „Deleted“-Einstellung zum Element im Artikelbaum hat sich geändert

2.) In „NodeModifDef_MetaInfoTypeIDs“ kann die ID „5“ angegeben werden, was bedeutet :

  • Es wurden Änderungen an den „Details“ einer Eigenschaft vorgenommen, die dem Artikel-Element zugewiesenen ist

Egal, ob man nach „TreeNodeID“s oder „NodeID“s sucht, es werden (im default-Fall) immer ALLE oben genannten „Änderungen“ beachtet. D.h. wenn „NodeID“s gewünscht sind („GetTreeNodeIDs = 0“), werden zu jeder „NodeID“ alle zugeordneten „TreeNodeID“s hinsichtlich Anlagedatum, „Active“-Flag-Änderungen und Vorgänger-Änderungen untersucht. Umgekehrt, wenn nach „TreeNodeID“s gesucht werden soll („GetTreeNodeIDs = 1“), schauen wir auch nach, ob sich bei der jeweils zu untersuchenden ID das zugehörige Artikel-Element (die „NodeID“) „geändert“ (also ob eine „NodeProperty“ oder eine „Binary-Zuordnung“ sich geändert) hat.

Anmerkung zum Parameter „OutputIntoOneID“ :

Hier kann man steuern, ob eine Ergebnismenge zurückgeben werden soll, oder ob stattdessen die gefundenen „TreeNodeID“s bzw. „NodeID“s (je nach „GetTreeNodeIDs“) in die Tabelle „tempdb.dbo.OneID“ eingefügt werden sollen - um dann anschließend z.B. im_GetNodeProperties aufrufen zu können :

  • „0“ : Es wird NUR eine Ergebnismenge bereitgestellt
  • „1“ : Es wird KEINE Ergebnismenge ausgegeben, stattdessen werden ALLE gefundenen „TreeNodeID“s / „NodeID“s in „tempdb.dbo.OneID“ eingefügt (d.h. „StartAtRowNo“ und „RowCount“ werden ignoriert)
  • „2“ : Es wird KEINE Ergebnismenge ausgegeben, stattdessen werden die gefundenen „TreeNodeID“s / „NodeID“s AB dem durch „StartAtRowNo“ gekennzeichneten Datensatz in „tempdb.dbo.OneID“ eingefügt, jedoch nur soviele, wie durch „RowCount“ angegeben
  • „3“ : Es wird eine Ergebnismenge bereitgestellt (die „StartAtRowNo“ und „RowCount“ beachtet) UND ALLE gefundenen „TreeNodeID“s / „NodeID“s werden in „tempdb.dbo.OneID“ gespeichert
  • „4“ : Es wird eine Ergebnismenge bereitgestellt (die „StartAtRowNo“ und „RowCount“ beachtet) UND die in dieser Ergebnismenge enthaltenen „TreeNodeID“s / „NodeID“s werden in „tempdb.dbo.OneID“ gespeichert
  • „5“ : Es wird KEINE Ergebnismenge bereitgestellt, stattdessen werden ALLE gefundenen „TreeNodeID“s / „NodeID“s in „tempdb.dbo.OneID“ ergänzt. D.h. im Unterschied zum Fall „1“ werden bereits zur „ServerProcessID“ vorhandene IDs in „OneID“ NICHT gelöscht !
  • „6“ : Es wird eine Ergebnismenge bereitgestellt (die „StartAtRowNo“ und „RowCount“ beachtet) UND ALLE gefundenen „TreeNodeID“s / „NodeID“s werden in „tempdb.dbo.OneID“ ergänzt. D.h. im Unterschied zum Fall „3“ werden bereits zur „ServerProcessID“ vorhandene IDs in „OneID“ NICHT gelöscht !

Anmerkungen zu den Parametern „NodeModifDef_MetaInfoTypeIDs“ und „TNodeModifDef_MetaInfoTypeIDs“ :

Hier übergibt man die „MetaInformationTypeID“s (durch „¶“) getrennt), zu denen in „NodeMetaInformation“ bzw.
„TreeNodeMetaInformation“ gesucht werden soll. Die möglichen Werte erhält man durch einen Aufruf von
mi_GetMetaInformationTypes_Ad mit entsprechendem „TableID“-Wert :

Dabei dürfen aber nur IDs von „Meta-Informationen“ verwendet werden, bei denen es sich auch um eine Datums-Angabe handelt.
Hinweis : Ein Element wird gefunden, sobald zu wenigstens EINER der angegebenen IDs die zugehörige „Meta-Information“ zwischen „FromDateAndTime“ und „ToDateAndTime“ liegt !

Beispiele :
1.) Sollen nur Elemente gefunden werden, bei denen sich das „Active“-Flag (im Artikelbaum) oder wenigstens eine Eigenschaft geändert hat, ruft man diese Prozedur auf mit :

  • NodeModifDef_MetaInfoTypeIDs = '1'
  • TNodeModifDef_MetaInfoTypeIDs = '3'

2.) Ist man nur an Elementen interessiert, bei denen eine Änderung an der Zuordnung von „Binaries“ vorgenommen wurde, übergibt man diese Werte :

  • NodeModifDef_MetaInfoTypeIDs = '3'
  • TNodeModifDef_MetaInfoTypeIDs = NULL

Hinweis : Es ist natürlich nicht erlaubt, „NULL“ für BEIDE „…NodeModifDef_MetaInfoTypeIDs“-Parameter zu übergeben !

Anmerkung zur Rückgabespalte „MatchedInfoTypeIDs_TNode“

Im Fall der Suche nach Elementen im Artikelbaum („GetTreeNodeIDs = 1“) kann hier „NULL“ zurückkommen, wenn…

  • „TNodeModifDef_MetaInfoTypeIDs = NULL“ übergeben wurde oder
  • „TreeNodeID“ in „tempdb.dbo.OneID“ übergeben und der Wert „5“ oder „6“ für „OutputIntoOneID“ angegeben wurde oder
  • „TreeNodeID“ nur aufgrund von Änderungen an „NodeID“ gefunden wurde.

Sofern nach Artikel-Elementen gesucht wurde („GetTreeNodeIDs = 0“), kann hier auch „NULL“ zurückkommen, und zwar wenn…

  • „TNodeModifDef_MetaInfoTypeIDs = NULL“ übergeben wurde oder
  • „NodeID“ nur durch eine Änderung am Element selbst (also nicht an einem zugeordneten Element im Artikelbaum) gefunden wurde.

Anmerkung zur Rückgabespalte „MatchedInfoTypeIDs_Node“

Im Fall der Suche nach Elementen im Artikelbaum („GetTreeNodeIDs = 1“) kann hier „NULL“ zurückkommen, wenn…

  • „NodeModifDef_MetaInfoTypeIDs = NULL“ übergeben wurde oder
  • keine Änderung an „NodeID“ (sondern nur an „TreeNodeID“) vorliegt.

Sofern nach Artikel-Elementen gesucht wurde („GetTreeNodeIDs = 0“), kann hier auch „NULL“ zurückkommen, und zwar wenn…

  • „NodeModifDef_MetaInfoTypeIDs = NULL“ übergeben wurde oder
  • „NodeID“ in „tempdb.dbo.OneID“ übergeben und der Wert „5“ oder „6“ für „OutputIntoOneID“ angegeben wurde oder
  • „NodeID“ nur aufgrund von Änderungen an einem zugeordneten Element im Artikelbaum gefunden wurde.
HTTP-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieitem management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
FromDateAndTime Es wird nur nach Elementen gesucht, bei denen eine „Änderung“ AB (einschließlich) diesem Zeitpunkt vorliegt
datetime6.0.5
ToDateAndTimeNULL Falls angegeben, wird nur nach Elementen gesucht, bei denen eine „Änderung“ BIS (einschließlich) zu diesem Zeitpunkt vorliegt
datetime6.0.5
DomainTreeNodeID0 ID des Elementes, unter dem die „geänderten Elemente“ liegen müssen (bei „GetTreeNodeIDs = 0“ heißt das, daß zu einer gefundenen „NodeID“ wenigstens ein Element im Artikelbaum existieren muß, die diese ID als Vorgänger besitzt)
integer6.0.5
GetTreeNodeIDs1 Gibt an, nach welchen Elementen gesucht werden soll (dementsprechend ist die Rückgabemenge unterschiedlich) :
„0“ : nach Artikel-Elementen („NodeID“s)
„1“ : Nach Elementen im Artikelbaum („TreeNodeID“s)
bit6.0.5
FilterIDsInOneID0 Soll eine Menge von Elementen GEFILTERT werden, übergibt man die entsprechenden „TreeNodeID“s („GetTreeNodeIDs = 1“) bzw. „NodeID“s („GetTreeNodeIDs = 0“) in „tempdb.dbo.OneID“ und setzt diesen Parameter auf „1“
bit6.0.5
OutputIntoOneID0 s. Beschreibung !
Ergebnismenge ? | IDs in OneID ein-/hinzufügen ?
„0“ : ja | nein
„1“ : nein | alle einf.
„2“ : nein | RowCount viele einf.
„3“ : ja | alle einf.
„4“ : ja | die des Ergebn. einf.
„5“ : nein | alle hinzuf.
„6“ : ja | alle hinzuf.
tinyint6.0.5
IncludeDeactivatedNodes0 Standardmäßig werden nur AKTIVE Elemente („GetTreeNodeIDs = 1“) bzw. nur Elemente, zu denen es ein korrespondierendes AKTIVES Element im Artikelbaum gibt („GetTreeNodeIDs = 0“), berücksichtigt. „1“ angeben, um auch inaktive Elemente beachten zu lassen.
bit6.0.5
LevelIDNULL Möchte man nur „TreeNodeID“s im Ergebnis, deren zugehöriges Artikel-Element einer bestimmten Hierarchie angehört („GetTreeNodeIDs = 1“) bzw. nur „NodeID“s einer bestimmten Hierarchie („GetTreeNodeIDs = 0“), übergibt man hier die ID dieser Hierarchie
tinyint6.0.5
NodeModifDef_MetaInfoTypeIDs'1¶3' Liste von „Node-MetaInformationID“s (durch „¶“ getrennt, mögliche Werte s. mi_GetMetaInformationTypes_Ad TableID = 17), die die „Änderungen“ zu Artikel-Elementen definieren, die in der Suche beachtet werden sollen (s. Beschreibung !)
varchar(50)6.0.5
TNodeModifDef_MetaInfoTypeIDs'1¶3¶5' Liste von „TreeNode-MetaInformationTypeID“s (durch „¶“ getrennt, mögliche Werte s. mi_GetMetaInformationTypes_Ad TableID = 3), die die „Änderungen“ zu Elementen im Artikelbaum definieren, die in der Suche beachtet werden sollen (s. Beschreibung !)
varchar(50)6.0.5
StartAtRowNo1 Erste Zeile der Ausgabe innerhalb des gesamten Suchergebnisses. Zusammen mit „RowCount“ kann man sich so durch das gesamte Ergebnis „blättern“.
integer6.0.5
RowCount100 Anzahl der auszugebenden Datensätze des Suchergebnisses („0“ für alle Datensätze). Zusammen mit „StartAtRowNo“ kann man sich so durch das gesamte Ergebnis „blättern“.
integer6.0.5

Rückgabe

wenn GetTreeNodeIDs = 0

Spaltenname Beschreibung SQL-Datentyp4) ab Version
NodeIDID eines gefundenen Artikel-Elementes
integer6.0.5
NodeDescriptionBezeichnung von „NodeID“
varchar(100)6.0.5
LevelIDID der Hierarchie von „NodeID“ (immer „LevelID“ wenn angegeben)
tinyint6.0.5
MatchedInfoTypeIDs_TNodeListe von „MetaInformationTypeID“s (durch „¶“ getrennt), zu denen es für „NodeID“ ein Element im Artikelbaum gibt, das eine „Meta-Information“ besitzt, die im angegebenen Zeitraum liegt. Kann aus diversen Gründen „NULL“ sein - s. Beschreibung.
varchar(100)6.0.5
MatchedInfoTypeIDs_NodeListe von „MetaInformationTypeID“s (durch „¶“ getrennt), zu denen „NodeID“ eine „Meta-Information“ besitzt, die im angegebenen Zeitraum liegt. Kann aus diversen Gründen „NULL“ sein - s. Beschreibung.
varchar(100)6.0.5
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • NodeID (aufsteigend)

wenn GetTreeNodeIDs = 1

Spaltenname Beschreibung SQL-Datentyp5) ab Version
SortNo6)Wird nicht zurückgegeben, aber zur Sortierung der Rückgabemenge verwendet. Bestimmt die Reihenfolge des Elementes „TreeNodeID“ innerhalb aller Nachfolger von „PredecessorsTreeNodeID“
smallint6.0.5
PredecessorSortNo7)Wird nicht zurückgegeben, aber zur Sortierung der Rückgabemenge verwendet. Bestimmt die Reihenfolge des Elementes „PredecessorsTreeNodeID“ innerhalb aller Nachfolger von „PrePredecessorsTreeNodeID“
smallint6.0.5
PrePredecessorsTreeNodeIDTreeNodeID des Vor-Vorgängers
integer6.0.5
PrePredecessorsDescriptionBeschreibung des Vor-Vorgängers des gefundenen Elementes
varchar(100)6.0.5
PredecessorsTreeNodeIDTreeNodeID des Vorgängers
integer6.0.5
PredecessorsDescriptionBeschreibung des Vorgängers des gefundenen Elementes
varchar(100)6.0.5
TreeNodeIDID eines gefundenen Elementes im Artikelbaum
integer6.0.5
ActiveIst das Element aktiviert oder nicht ?
bit6.0.5
NodeIDID des zugehörigen Artikel-Elementes
integer6.0.5
NodeDescriptionBezeichnung von „NodeID“
varchar(100)6.0.5
LevelIDID der Hierarchie von „NodeID“ (immer „LevelID“ wenn angegeben)
tinyint6.0.5
MatchedInfoTypeIDs_TNodeListe von „MetaInformationTypeID“s (durch „¶“ getrennt), zu denen „TreeNodeID“ eine „Meta-Information“ besitzt, die im angegebenen Zeitraum liegt. Kann aus diversen Gründen „NULL“ sein - s. Beschreibung.
varchar(100)6.0.5
MatchedInfoTypeIDs_NodeListe von „MetaInformationTypeID“s (durch „¶“ getrennt), zu denen „NodeID“ eine „Meta-Information“ besitzt, die im angegebenen Zeitraum liegt. Kann aus diversen Gründen „NULL“ sein - s. Beschreibung.
varchar(100)6.0.5
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • PrePredecessorsTreeNodeID (aufsteigend)
  • PredecessorSortNo (absteigend)
  • SortNo (absteigend)

Output-Parameter

NumberOfElementsInResultAusgabeparameter, um zu erfahren, wieviele Elemente insgesamt gefunden wurden

Mögliche Return-Codes

Code Beschreibung Quelle 8)
-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
-120Der Benutzer hat keine Berechtigung für das (die) Element(e)nur 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
6.5.1 2012-11-02Neue Möglichkeiten für „NodeModifDef_MetaInfoTypeIDs“ ⇒ entsprechender Hinweis in der Doku
6.5.0 2012-09-17Keine Änderungen - Versehentlich neu übersetzt
6.0.7 2012-05-08Ab jetzt werden auch „gelöschte“ Elemente beachtet, sofern ID „7“ in „TNodeModifDef_MetaInfoTypeIDs“ angegeben ist
[heißt : „Suche nach Elementen, bei denen sich die „Deleted“-Einstellung zum Element im Artikelbaum geändert hat“]
6.0.5 2011-12-13Erstmalig 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 GET  'http://<partner>-<project>.dstore.de/default/engine/im_GetModifiedNodes_Ad?FromDateAndTime=<value>'

Mit xmllint 9) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/im_GetModifiedNodes_Ad?FromDateAndTime=<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_GetModifiedNodes_Ad',
		array(
			'FromDateAndTime' => <value>,
			// 'ToDateAndTime' => NULL,
			// 'DomainTreeNodeID' => 0,
			// 'GetTreeNodeIDs' => 1,
			// 'FilterIDsInOneID' => 0,
			// 'OutputIntoOneID' => 0,
			// 'IncludeDeactivatedNodes' => 0,
			// 'LevelID' => NULL,
			// 'NodeModifDef_MetaInfoTypeIDs' => '1¶3',
			// 'TNodeModifDef_MetaInfoTypeIDs' => '1¶3¶5',
			// 'StartAtRowNo' => 1,
			// 'RowCount' => 100
		)
);
 
$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="im_GetModifiedNodes_Ad">
			<Parameters>
				<Parameter Name="FromDateAndTime"><!-- datetime value --></Parameter>
				<!-- <Parameter Name="ToDateAndTime">NULL</Parameter> -->
				<!-- <Parameter Name="DomainTreeNodeID">0</Parameter> -->
				<!-- <Parameter Name="GetTreeNodeIDs">1</Parameter> -->
				<!-- <Parameter Name="FilterIDsInOneID">0</Parameter> -->
				<!-- <Parameter Name="OutputIntoOneID">0</Parameter> -->
				<!-- <Parameter Name="IncludeDeactivatedNodes">0</Parameter> -->
				<!-- <Parameter Name="LevelID">NULL</Parameter> -->
				<!-- <Parameter Name="NodeModifDef_MetaInfoTypeIDs">'1¶3'</Parameter> -->
				<!-- <Parameter Name="TNodeModifDef_MetaInfoTypeIDs">'1¶3¶5'</Parameter> -->
				<!-- <Parameter Name="StartAtRowNo">1</Parameter> -->
				<!-- <Parameter Name="RowCount">100</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
6) , 7)
Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.
8)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
9)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/im_getmodifiednodes_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)