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) :
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 :
2.) In „NodeModifDef_MetaInfoTypeIDs“ kann die ID „5“ angegeben werden, was bedeutet :
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 :
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 :
2.) Ist man nur an Elementen interessiert, bei denen eine Änderung an der Zuordnung von „Binaries“ vorgenommen wurde, übergibt man diese Werte :
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…
Sofern nach Artikel-Elementen gesucht wurde („GetTreeNodeIDs = 0“), kann hier auch „NULL“ zurückkommen, und zwar wenn…
Anmerkung zur Rückgabespalte „MatchedInfoTypeIDs_Node“
Im Fall der Suche nach Elementen im Artikelbaum („GetTreeNodeIDs = 1“) kann hier „NULL“ zurückkommen, wenn…
Sofern nach Artikel-Elementen gesucht wurde („GetTreeNodeIDs = 0“), kann hier auch „NULL“ zurückkommen, und zwar wenn…
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | item management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
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 | datetime | 6.0.5 | |
ToDateAndTime | NULL | Falls angegeben, wird nur nach Elementen gesucht, bei denen eine „Änderung“ BIS (einschließlich) zu diesem Zeitpunkt vorliegt | datetime | 6.0.5 |
DomainTreeNodeID | 0 | 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) | integer | 6.0.5 |
GetTreeNodeIDs | 1 | 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) | bit | 6.0.5 |
FilterIDsInOneID | 0 | 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“ | bit | 6.0.5 |
OutputIntoOneID | 0 | 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. | tinyint | 6.0.5 |
IncludeDeactivatedNodes | 0 | 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. | bit | 6.0.5 |
LevelID | NULL | 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 | tinyint | 6.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 |
StartAtRowNo | 1 | Erste Zeile der Ausgabe innerhalb des gesamten Suchergebnisses. Zusammen mit „RowCount“ kann man sich so durch das gesamte Ergebnis „blättern“. | integer | 6.0.5 |
RowCount | 100 | 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“. | integer | 6.0.5 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
NodeID | ID eines gefundenen Artikel-Elementes | integer | 6.0.5 |
NodeDescription | Bezeichnung von „NodeID“ | varchar(100) | 6.0.5 |
LevelID | ID der Hierarchie von „NodeID“ (immer „LevelID“ wenn angegeben) | tinyint | 6.0.5 |
MatchedInfoTypeIDs_TNode | Liste 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_Node | Liste 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 |
(parameterunabängige Sortierung)
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“ | smallint | 6.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“ | smallint | 6.0.5 |
PrePredecessorsTreeNodeID | TreeNodeID des Vor-Vorgängers | integer | 6.0.5 |
PrePredecessorsDescription | Beschreibung des Vor-Vorgängers des gefundenen Elementes | varchar(100) | 6.0.5 |
PredecessorsTreeNodeID | TreeNodeID des Vorgängers | integer | 6.0.5 |
PredecessorsDescription | Beschreibung des Vorgängers des gefundenen Elementes | varchar(100) | 6.0.5 |
TreeNodeID | ID eines gefundenen Elementes im Artikelbaum | integer | 6.0.5 |
Active | Ist das Element aktiviert oder nicht ? | bit | 6.0.5 |
NodeID | ID des zugehörigen Artikel-Elementes | integer | 6.0.5 |
NodeDescription | Bezeichnung von „NodeID“ | varchar(100) | 6.0.5 |
LevelID | ID der Hierarchie von „NodeID“ (immer „LevelID“ wenn angegeben) | tinyint | 6.0.5 |
MatchedInfoTypeIDs_TNode | Liste 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_Node | Liste 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 |
(parameterunabängige Sortierung)
NumberOfElementsInResult | Ausgabeparameter, um zu erfahren, wieviele Elemente insgesamt gefunden wurden |
Code | Beschreibung | Quelle 8) |
---|---|---|
-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 |
-120 | Der Benutzer hat keine Berechtigung für das (die) Element(e) | nur 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] |
6.5.3 | 2013-03-18 | Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung |
6.5.1 | 2012-11-02 | Neue Möglichkeiten für „NodeModifDef_MetaInfoTypeIDs“ ⇒ entsprechender Hinweis in der Doku |
6.5.0 | 2012-09-17 | Keine Änderungen - Versehentlich neu übersetzt |
6.0.7 | 2012-05-08 | Ab 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-13 | 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 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 -
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();
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>