Die Prozedur generiert unterhalb eines Elementes im Artikelbaum „Varianten“ dieses Elementes. Das zugehörige Artikel-Element („NodeID“) muß allerdings auf der Produkt-Hierarchie (siehe „Settings“-Eintrag „ProductLevelID“) sein !
Durch den Parameter „HowManyVariantCharacteristics“ gibt man die Zahl der Merkmale an, aus denen die Varianten generiert werden; hieraus ergibt sich auch, aus welcher der temporären Tabellen „tempdb.dbo.OneID“, „tempdb.dbo.TwoIDs“ oder „tempdb.dbo.ThreeIDs“ die Eigenschaften übergeben werden. Das bedeutet insbesondere, daß genau so viele Varianten erzeugt werden, wie Datensätze in der jeweiligen „tempdb“-Tabelle angegeben sind, wobei die jeweilige Variante eben die in ID1 bzw. ID2 bzw. ID3 angegebene(n) Eigenschaft(en), sprich „ValueID(s)“, hat. Die „ValueID“s müssen je Spalte (ID1 bzw. ID2 bzw. ID3) alle zu genau einem Merkmal gehören !
Die Bezeichnung der generierten Elemente („NodeDescription“) besteht aus den angegebenen Eigenschaften, die die Variante hat (und durch die sich die Varianten untereinander unterscheiden); die Eigenschaften werden in der Bezeichnung dabei durch eine bestimmte Zeichenkette (→ „Delimiter“) voneinander getrennt.
Beispiel:
1. „Delimiter = '/'„
2. „HowManyVariantCharacteristics = 2“ und in „tempdb.dbo.TwoIDs“ wurden Eigenschaften zu den Merkmalen „Farbe“ und „Größe“ übergeben
=⇒ Dann sähe die Bezeichnung einer Variante, die die Eigenschaften „schwarz“ und „XL“ besitzt, so aus : „schwarz/XL“.
HTTP-Method | POST |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | item management |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
HowManyVariantCharacteristics | 2 | Anzahl der Merkmale, in denen sich die Varianten unterscheiden. Dadurch ergibt sich auch, in welcher Schnittstellen-Tabelle (in „tempdb“ : „OneID“, „TwoIDs“, „ThreeIDs“ ) die Eigenschaften, aus denen die Varianten zu generieren sind, übergeben wurden. | tinyint | 3.5.0 |
Predecessor | ID eines Elementes im Artikelbaum, zu dem Varianten generiert werden sollen | integer | 3.5.0 | |
Delimiter | '/' | Trennzeichen für die Bezeichnungen („NodeDescription“) der neuen Elemente. Es werden nämlich alle Eigenschaften (durch die sich die Varianten voneinander unterscheiden) „Delimiter“-getrennt in die Bezeichnung aufgenommen. | varchar(4) | 3.5.0 |
Die Prozedur hat keine Rückgaben.
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 4) |
---|---|---|
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | nur indirekt |
-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 |
-550 | Fehlender oder falscher Eintrag in Settings | direkt und indirekt |
-540 | Falsches Format | 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 |
-285 | Der Benutzer hat keine Berechtigung, vergangene Eigenschaften zu diesem(n) Merkmal(en) zu ändern | nur indirekt |
-284 | Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu modifizieren | nur indirekt |
-245 | Einige Artikel-Eigenschaften sind ungültig | nur indirekt |
-242 | Relative Änderung nicht möglich, da es eine Eigenschaft gibt, deren Gültigkeit in d. Zukunft beginnt | nur indirekt |
-241 | Änderung(en) der Eigenschaft(en) konnte(n) aufgrund paralleler Änderungen nicht durchgeführt werden | nur indirekt |
-220 | Es konnte keine Merkmal-ID für die Produktbezeichnung ermittelt werden | 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] |
7.0.1 | 2013-08-07 | Interne Anpassungen wegen der Datentyp-Erweiterung der „Value“-Spalte von „NodeCharacteristicValues“ |
6.5.3 | 2013-03-18 | Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung |
6.0.4 | 2011-10-21 | 1. Pflege von „TreeViewDistributionStatistics“ ist entfallen 2. Pflege der neuen „TreeNodeMetaInformation“-Tabelle 3. „Settings“-Eintrag „AssignmentMethodForListVariables“ wird nicht mehr beachtet (da Unterstützung f. ASE 11 weggefallen ist) |
6.0.2 | 2011-06-08 | 1. Bugfix : Settings-Eintrag „AssignmentMethodForListVariables“ wurde nicht beachtet (bei der Gelegenheit interne Ermittlung auf „_im_GetProductDescrCharacID“ umgestellt) 2. Anpassung des Quellcodes an den aktuellen Standard |
5.1.0 | 2006-02-08 | Verlagerung des Codes bzgl. Eigenschaften-Änderungen auf die neue Prozedur „_im_ModifyNodeProperties“ |
4.0.11 | 2004-03-31 | 1. „_mi_StartProcedure“, „_mi_FinishProcedure“ u. „_mi_ChooseParamValueSeperator“ 2. „set transaction isolation level 1“, „set rowcount 0“ zu Beginn 3. Konsequente Fehlerbehandlung 4. Falsche Index-Angabe |
4.0.1 | 2003-05-16 | 1. Ab jetzt wird berücksichtigt, daß in „NodeProperties“ auch Gültigkeitszeiträume in der Zukunft vorhanden sein können ! 2. Aktualisierung von „TreeViewDistributionStatistics“ und „NodeCharacteristicSearch“ 3. Benutzung von mi_GetSettingEntry |
3.5.0 | 2000-11-23 | 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 POST 'http://<partner>-<project>.dstore.de/default/engine/im_GenerateVariants_Ad?Predecessor=<value>'
Mit xmllint 5) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/im_GenerateVariants_Ad?Predecessor=<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_GenerateVariants_Ad', array( 'Predecessor' => <value>, // 'HowManyVariantCharacteristics' => 2, // 'Delimiter' => '/' ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray();
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_GenerateVariants_Ad"> <Parameters> <Parameter Name="Predecessor"><!-- integer value --></Parameter> <!-- <Parameter Name="HowManyVariantCharacteristics">2</Parameter> --> <!-- <Parameter Name="Delimiter">'/'</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>