Benutzer-Werkzeuge

Webseiten-Werkzeuge

Action disabled: source

engine:procedures:if_im_modifynodeproperties_ad

if_im_ModifyNodeProperties_Ad

Fügt Daten in die Input-Schnittstelle von im_ModifyNodeProperties_Ad ein.

Dies geschieht über die „…List“-Parameter dieser Prozedur, die jeweils eine Menge von Werten enthalten. Zueinander gehörende Werte (d.h. die sich in der gleichen Position der jeweiligen Liste befinden) werden in die folgenden Spalten eingefügt :

  • NodeID :

ID eines Artikel-Elementes, für das die Eigenschaft zum Merkmal „NodeCharacteristicID“ geändert/gesetzt werden soll

  • NodeCharacteristicID :

Gibt das Merkmal an, auf das sich „Value“ bezieht

  • Value :

Auf diesen Wert soll die Eigenschaft von „NodeID“ zum Merkmal „NodeCharacteristicID“ gesetzt werden - sofern nicht durch „ModificationOptions“ anderes gewünscht ist)

  • ValidFrom :

Ab wann die Eigenschaft gültig sein soll. Bei Angabe von „NULL“ wird der aktuelle Zeitpunkt gewählt.
ACHTUNG : Für alle Datensätze darf dieser Wert maximal die Anzahl Millisekunden vor dem aktuellen Zeitpunkt des Aufrufs dieser Prozedur liegen, die in „Settings“ zum Schlüssel „NodePropertiesValidFromBeforeNowLimit_ms“ konfiguriert ist !

  • ValidTo :

Bis wann die Eigenschaft gültig sein soll. Bei Angabe von „NULL“ wird das maximal mögliche Datum gewählt.
Anmerkung : Ein Datensatz mit „ValidFrom >= ValidTo“ führt zu „-500“ !

  • ModificationOption :

Gibt an, wie „Value“ zu interpretieren ist :

  • „0“ : Der Gültigkeitszeitraum der aktuell zugewiesenen Eigenschaft von „NodeID“ zum Merkmal „NodeCharacteristicID“ soll geschlossen und Eigenschaften, die komplett in der Zukunft gültig sind, sollen gelöscht werden (das bedeutet insbesondere, daß „Value“, „ValidFrom“ und „ValidTo“ nicht beachtet werden)
  • „1“ : „NodeID“ soll der Wert „Value“ als Eigenschaft zum Merkmal „NodeCharacteristicID“ im angegebenen Zeitraum zugewiesen werden
  • „2“ : „relative Änderung“ der AKTUELL gültigen Eigenschaft von „NodeID“ zum Merkmal „NodeCharacteristicID“ wie in „Value“ angegeben (s. Erläuterungen unten) ACHTUNG : In diesem Fall werden „ValidFrom“ und „ValidTo“ ignoriert (es wird immer der Zeitraum „jetzt bis unendlich“ gewählt), daher am besten „NULL“ angegeben. Außerdem dürfen keine bestehenden Eigenschaften existieren, deren Gültigkeitszeitraum in der Zukunft beginnt !

Hinweise zu „relativen Änderungen“ (wenn „ModificationOption = 2“ ist) :

A) Ist das Merkmal vom Basis-Typ „Zahl“, muß der entsprechende Wert in „Value“ die Form…
„<Zahl-Wert inkl. Vorzeichen vom Datentyp des Merkmals>„
… besitzen. Ist kein explizites Vorzeichen angegeben, wird dies als positiver Wert interpretiert.
Dieser Zahl-Wert wird dann einfach zur bestehenden Eigenschaft (ebenfalls eine Zahl) hinzuaddiert.

B) Handelt es sich um ein „Text“-Merkmal, wird eine relative Änderung als „string“-Konkatenation ausgeführt, d.h. der entsprechende Wert in „Value“ sieht so aus : “<Vorzeichen><String>„
Das bedeutet, daß die “<String>“-Zeichenkette entweder VOR (falls „<Vorzeichen>“ gleich „-“ ist) die bestehende Eigenschaft gesetzt oder HINTEN („<Vorzeichen“ gleich „+“) an die Eigenschaft angehängt wird.

C) Beim Basis-Typ „Datum“ schließlich muß der entsprechende Wert in „Value“ diese Form haben : „<datepart><integer-Wert>„
Ist kein explizites Vorzeichen im “<integer-Wert>“ angegeben, wird dies als positiver Wert interpretiert.
„<datepart>“ muß - angelehnt an die T-SQL-Funktion „dateadd“ - einen der folgenden Werte annehmen :

  • „yy“ → Änderung der Datums-Eigenschaft um die angegebene Anzahl („<integer-Wert>“) JAHRE
  • „mm“ → Änderung der Datums-Eigenschaft um die angegebene Anzahl („<integer-Wert>“) MONATE
  • „dd“ → Änderung der Datums-Eigenschaft um die angegebene Anzahl („<integer-Wert>“) TAGE
  • „hh“ → Änderung der Datums-Eigenschaft um die angegebene Anzahl („<integer-Wert>“) STUNDEN
  • „mi“ → Änderung der Datums-Eigenschaft um die angegebene Anzahl („<integer-Wert>“) MINUTEN
  • „ss“ → Änderung der Datums-Eigenschaft um die angegebene Anzahl („<integer-Wert>“) SEKUNDEN
  • „ms“ → Änderung der Datums-Eigenschaft um die angegebene Anzahl („<integer-Wert>“) MILLISEKUNDEN

D) Für „Ja/Nein“-Merkmale ist keine „relative Änderung“ möglich

E) Hat ein Element noch KEINE Eigenschaft zum Merkmal, passiert je nach Basis-Datentyp folgendes :

  • Bei Zahlen „addieren“ wir den Wert zur Zahl „0“ - was quasi dem direkten Setzen der Eigenschaft auf den Wert entspricht
  • Bei Datumsangaben „addieren“ wir den Wert zum '01.01.1970'
  • Bei „strings“ konkatenieren wir den Wert zu „NULL“ - was quasi dem direkten Setzen der Eigenschaft auf den Wert entspricht

Beispiele :

1.) Ist „17“ eine ID eines Merkmals, zu dem 2-stellige Zahlen als Eigenschaften hinterlegt werden können, würde
ein Datensatz mit „NodeCharacteristicID = 17“ und „ Value = '-5' “ dazu führen, daß die aktuelle Eigenschaft der „NodeID“ zum
Merkmal „17“ um „5“ ERNIEDRIGT wird.
2.) Stellt „19“ die ID eines „Datum-Merkmals“ dar, und hat „NodeID“ aktuell als Eigenschaft den Wert „01.04.1968“, würde ein Datensatz mit „NodeCharacteristicID = 19“ und „ Value = 'yy+2' “ dazu führen, daß 2 Jahre auf das Datum hinzuaddiert würden, und somit die Eigenschaft auf „01.04.1970“ gesetzt werden würde.
3.) Bei einem Datensatz mit „NodeCharacteristicID = 20“ und „ Value = '-not ' “ würde, wenn die zugehörige „NodeID“ zu diesem Merkmal beispielsweise die „Text“-Eigenschaft „valid“ besäße, die neue Eigenschaft „not valid“ lauten.

HTTP-MethodPOST
HTTP-AuthOptional
Tags
Engine-Kategorieitem management
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.8 (2015-08-21)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
NodeIDList Eine Liste von IDs (durch das '¶'-Zeichen getrennt) von Artikel-Elementen, die in die Spalte „NodeID“ (s. Beschreibung) der Input-Schnittstelle eingefügt werden
varchar(1000)5.1.1
NodeCharacteristicIDList Liste von IDs (durch das '¶'-Zeichen getrennt) von Merkmalen, die in die Spalte „NodeCharacteristicID“ (s. Beschreibung) der Input-Schnittstelle eingefügt werden
varchar(1000)5.1.1
ValueList Liste von Werten (durch das in „SeparatorInValueList“ angegebene Zeichen getrennt), die in die Spalte „Value“ (s. Beschreibung) der Input-Schnittstelle eingefügt werden
varchar(16384)5.1.1
ValidFromList Liste von Datums-Werten (durch das '¶'-Zeichen getrennt), die in die Spalte „ValidFrom“ (s. Beschreibung) der Input-Schnittstelle eingefügt werden
varchar(16384)5.1.1
ValidToList Liste von Datums-Werten (durch das '¶'-Zeichen getrennt), die in die Spalte „ValidTo“ (s. Beschreibung) der Input-Schnittstelle eingefügt werden
varchar(16384)5.1.1
ModificationOptionList Liste von Options-Werten (durch das '¶'-Zeichen getrennt), die in die Spalte „ModificationOption“ (s. Beschreibung) der Input-Schnittstelle eingefügt werden
varchar(1000)5.1.1
Delete0 Möchte man zuvor die Input-Schnittstelle leeren, setzt man „Delete“ auf „1“.
bit5.1.1
SeparatorInValueList'¶' Gibt an, durch welche Zeichen die Werte in „ValueList“ getrennt sind
varchar(4)5.5.0
CheckByteLengthForStrings0 Gibt an, ob für die einzelnen Elemente in „ValueList“ geprüft werden soll, ob die maximale Anzahl Bytes überschritten ist („1“) oder nicht („0“)
bit7.0.8

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 4)
-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

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.8 2015-08-211. Fehler behoben : Werte in „ValueList“ wurden auf 100 Bytes abgeschnitten, obwohl seit einiger Zeit bis zu 1000
Bytes möglich sind
2. Ab jetzt können in den List-Variablen bis zu 1000 [bei IDs] bzw. 16384 Bytes übergeben werden [vorher nur 255]
7.0.7 2015-01-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
6.5.3 2013-03-181. Ereiterung des Datentyps von „SeparatorInValueList“ [von „1“ auf „4“]
2. Interne Anpassungen wg. UTF8-Unterstützung
3. Fehler : Es fehlte eine Transaktion !
4. Doku bzgl. „relative Änderungen“ fehlte !
5. Interne Quellcode-Überarbeitung
5.5.0 2008-01-071. Neuer Parameter „SeparatorInValueList“
2. Ausgabe an die Standard-Ausgabe [via „print“] im Fehler-Fall „-500“, die nähere Informationen über die Ursache enthält
5.1.1 2006-04-05Erstmalig in dieser Version erstellt

Code-Snippets

Es handelt sich um eine Methode zum Füllen von Schnittstellentabelle wie in Hintergrundinformationen zu Engine-Prozeduren erläutert. Die Methode kann ausschließlich per engine/execute in einem gemeinsamen Batch mit komplementären Prozeduren verwendet werden.

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="if_im_ModifyNodeProperties_Ad">
			<Parameters/>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
engine/procedures/if_im_modifynodeproperties_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)