Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— |
engine:procedures:im_getitemconditiongroups_ad [11.01.2016 ] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== im_GetItemConditionGroups_Ad ===== | ||
+ | |||
+ | Gibt (Artikel-)Bedingungs-Gruppen zurück.\\ | ||
+ | |||
+ | |||
+ | |||
+ | Eine Bedingungs-Gruppe ist Bestandteil einer sogenannten Artikel-Bedingung, deren Aufbau kurz beschrieben so aussieht :\\ | ||
+ | |||
+ | Eine Artikel-Bedingung besteht aus Bedingungs-Gruppen, die jeweils aus Bedingungs-Teilen bestehen, die ihrerseits immer drei Bedingungs-Arten (Hierarchie-Bedingung, Vorgänger-Bedingung und Eigenschafts-Bedingung) definieren.\\ | ||
+ | |||
+ | Im folgenden werden die Bestandteile einzeln erläutert. Beginnen wir mit der "kleinsten Einheit" :\\ | ||
+ | |||
+ | |||
+ | |||
+ | 1.) Ein sogenannter Bedingungs-Teil ("ItemConditionPart") definiert drei Bedingungs-Arten :\\ | ||
+ | |||
+ | a) Hierarchie-Bedingung ("LevelIDs")\\ | ||
+ | |||
+ | Diese besteht aus einer Menge von Hierarchien ("LevelIDs"), wobei es auch möglich ist, den Wert ",," zu definieren, der für "beliebige Hierarchie" steht.\\ | ||
+ | |||
+ | b) Vorgänger-Bedingung ("DomainTreeNodeIDs")\\ | ||
+ | |||
+ | Dabei handelt es sich um eine Menge von Vorgänger-IDs ("TreeNodeIDs"), wobei es auch möglich ist, den Wert ",," zu definieren, der "beliebiger Vorgänger" bedeutet.\\ | ||
+ | |||
+ | c) Eigenschafts-Bedingung\\ | ||
+ | |||
+ | Sie ist immer zu einem Merkmal ("NodeCharacteristicID") definiert und besteht aus einem "Operator1" und der dazugehörigen "Condition1", sowie optional aus einem weiteren "Operator2" und der dazugehörigen "Condition2". Dazu können Optionen hinsichtlich Vererbung und rekursiver Auswertung bei der Ermittlung der Eigenschaft definiert werden.\\ Es ist auch möglich, den Wert "-1" als Merkmal ("NodeCharacteristicID") zu definieren, was den speziellen Fall "KEINE Eigenschafts-Bedingung" darstellen soll.\\ | ||
+ | |||
+ | Ein Artikel-Element erfüllt einen Bedingungs-Teil genau dann, wenn alle drei Bedingungs-Arten erfüllt sind. Der spezielle (in einer Standard-Installation bereits definierte) Teil ... | ||
+ | * "beliebige Hierarchie" und | ||
+ | * "beliebiger Vorgänger" und | ||
+ | * "KEINE Eigenschafts-Bedingung" | ||
+ | wird von jedem (nicht gelöschten) Artikel-Element erfüllt.\\ | ||
+ | |||
+ | Hinweis : Der "Active"-Status eines Elementes spielt grundsätzlich keine Rolle !\\ | ||
+ | |||
+ | |||
+ | |||
+ | 2.) Durch eine logische Verknüpfung entweder mit "AND" oder "OR" von solchen Bedingungs-Teilen ergibt sich eine sogenannte Bedingungs-Gruppe ("ItemConditionGroup").\\ Artikel-Elemente erfüllen also eine solche Bedingungs-Gruppe, wenn sie entweder alle (bei "AND") oder mindestens einen (bei "OR") ihrer Bedingungs-Teile erfüllen.\\ | ||
+ | |||
+ | |||
+ | |||
+ | 3.) Mehrere solcher Gruppen können dann ihrerseits wiederum entweder mit "AND" oder "OR" verknüpft werden und bilden letztlich eine Artikel-Bedingung.\\ Artikel-Elemente erfüllen also eine solche (Gesamt-)Artikel-Bedingung, wenn sie entweder alle (bei "AND") oder mindestens eine (bei "OR") ihrer Bedingungs-Gruppen erfüllen.\\ | ||
+ | |||
+ | |||
+ | |||
+ | Somit lassen sich einfache und komplexe Bedingungen formulieren. Beispiele :\\ | ||
+ | |||
+ | 1.) "Artikel-Elemente der Kategorie X oder Y der Marke Z"\\ => Dies ließe sich mit einem Bedingungs-Teil ...\\ "Beliebige Hierarchie UND X,Y als DomainTreeNodeIDs UND Eigenschaft Z zum Merkmal Marke"\\ ... abbilden, der als einziger Teil einer Bedingungs-Gruppe angehören würde, die ihrerseits alleine dann schon die gesamte Bedingung darstellt.\\ | ||
+ | |||
+ | 2.) "Rot gefärbte Produkte der Marke X oder blau gefärbte Produkte in Kategorie A der Marke Y"\\ => Dieses etwas kompliziertere Beispiel läßt sich beispielsweise wie folgt mit vier Bedingungs-Teilen und zwei -Gruppen abbilden :\\ Die beiden Teile ... | ||
+ | * "Produkt-Hierarchie UND beliebiger Vorgänger UND Eigenschaft rot zum Merkmal Farbe" | ||
+ | und | ||
+ | * "Produkt-Hierarchie UND beliebiger Vorgänger UND Eigenschaft X zum Merkmal Marke" | ||
+ | ... werden mit "AND" zu einer Gruppe "1" verknüpft.\\ Außerdem verknüpft man die beiden Teile ... | ||
+ | * "Produkt-Hierarchie UND A als DomainTreeNodeID UND Eigenschaft blau zum Merkmal Farbe" | ||
+ | und | ||
+ | * "Produkt-Hierarchie UND A als DomainTreeNodeID UND Eigenschaft Y zum Merkmal Marke" | ||
+ | ... wiederum mit "AND" zu einer Gruppe "2".\\ Durch eine "OR"-Verknüpfung der beiden Gruppen ist dann schließlich die gesamte Bedingung definiert.\\ Anmerkung : Es gibt oftmals mehrere Möglichkeiten der Abbildung, da gerade z.B. die Hierarchie-Bedingung bei einer Verknüpfung zweier Bedinungs-Teile mit "UND" nur bei einer der Teile definiert werden muß - in unserem obigen Beispiel 2 haben wir die Hierarchie hingegen bei ALLEN Bedingungs-Teilen definiert.\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zum Parameter "ConditionGroupDescriptionLike" :\\ | ||
+ | |||
+ | Ist man "auf der Suche" nach definierten Bedingungs-Gruppen, gibt es die Möglichkeit, in der Beschreibung dieser Gruppen zu suchen. Dazu ist "NULL" für "ConditionGroupID" zu übergeben, "GetUnusedConditionGroups" und "FilterByCondPartIDsInOneID" auf "0" zu setzen, und in "ConditionGroupDescriptionLike" muß dann der mit dem "LIKE"-Operator anzuwendende Ausdruck (die üblichen wildcards "%" und "_" sowie durch "[" und "]" eingeschlossene Zeichenmengen etc. sind also möglich) stehen. In diesem Fall wird die Rückgabemenge zum einen immer nach der "ConditionGroupDescription" sortiert, zum anderen werden maximal "RowCount" ("NULL" ist nicht erlaubt) Datensätze ausgegeben - "0" angeben, um ALLE Datensätze zu erhalten.\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zum Parameter "GetUnusedConditionGroups" :\\ | ||
+ | |||
+ | Als weitere Alternative kann man sich noch nicht verwendete (wieder werden aber maximal "RowCount" Gruppen zurückgegeben) Bedingungs-Gruppen ausgeben lassen. Dazu ist "1" für "GetUnusedConditionGroups" anzugeben - "ConditionGroupID" und "ConditionGroupDescriptionLike" werden dann nicht beachtet, "OrderBy" aber sehr wohl !\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkungen zum Parameter "FilterByCondPartIDsInOneID" :\\ | ||
+ | |||
+ | Schließlich gibt es noch die Möglichkeit, sich nur Gruppen mit bestimmten Bedingungs-Teilen ausgeben zu lassen. Die entsprechenden "ConditionPartID"s müssen vorher in "tempdb.dbo.OneID" eingefügt werden und beim Aufruf dieser Prozedur ist dann der Wert "1" im Parameter "FilterByCondPartIDsInOneID" anzugeben. Die Parameter "ConditionGroupID", "ConditionGroupDescriptionLike" und "GetUnusedConditionGroups" werden dann ignoriert, "OrderBy" wird aber berücksichtigt !\\ Anmerkung : Sollten keine IDs oder nur ungültige IDs übergeben worden sein, ist die Ergebnismenge leer, es gibt aber keinen\\ Fehler.\\ | ||
+ | |||
+ | Läßt man "ConditionGroupID" und "ConditionGroupDescriptionLike" "NULL" und ist "0" für "GetUnusedConditionGroups" und "FilterByCondPartIDsInOneID" angegeben, dann werden die ersten "RowCount" Datensätze aller (je nach "OrderBy" sortierten) Bedingungs-Gruppen ermittelt - der Wert "NULL" (für "RowCount") ist auch hier nicht erlaubt !\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zum Parameter "OrderBy" :\\ | ||
+ | |||
+ | Mit "OrderBy" bestimmt man im Falle einer Suche nach MEHREREN (Artikel-)Bedingungs-Gruppen (wenn also KEINE ID in "ConditionGroupID" angegeben ist bzw. dieser Parameter nicht beachtet wird) die Reihenfolge der Datensätze in der Ergebnismenge :\\ | ||
+ | |||
+ | * "0"/"1" : AUFsteigende bzw. ABsteigende Sortierung nach "CreatedAtDateAndTime" | ||
+ | * "2"/"3" : AUFsteigende bzw. ABsteigende Sortierung nach "EditedAtDateAndTime". Dies ist im Fall "GetUnusedConditionGroups = 0" gleichzeitig eine Filterung, da "EditedAtDateAndTime" nur gesetzt wird, wenn auch wirklich Änderungen stattfinden ! Man kann also z.B. auch ein leeres Ergebnis bekommen. Alternative Sortierung : s. Werte "5" bzw. "6" ! | ||
+ | * "4" : Aufsteigende Sortierung nach "ConditionGroupDescription" | ||
+ | * "5"/"6" : AUFsteigende bzw. ABsteigende Sortierung nach "EditedAtDateAndTime"/"CreatedAtDateAndTime". Hintergrund : "EditedAtDateAndTime" einer Bedingungs-Gruppe kann "NULL" sein, dann greift aber "CreatedAtDateAndTime" (was immer vorhanden ist) ! Wir wählen also "EditedAtDateAndTime" falls vorhanden, andernfalls "CreatedAtDateAndTime" und sortieren dann nach dem gewählten Wert. | ||
+ | |||
+ | |||
+ | ACHTUNG : Ist "ConditionGroupDescriptionLike" angegeben (und wird auch beachtet), wird immer der Wert "4" für "OrderBy" gewählt, egal was übergeben wurde !\\ | ||
+ | |HTTP-Method|GET | | ||
+ | |HTTP-Auth|Optional | | ||
+ | |Tags|{{tag>[im Get Item Condition Groups Ad]}}| | ||
+ | |Engine-Kategorie|item management | | ||
+ | |Engine-Typ|Daten-Ermittlung | | ||
+ | |Letzte Aktualisierung|7.0.7 (2015-01-29)| | ||
+ | |||
+ | ==== Parameter ==== | ||
+ | |||
+ | ^Name ((Pflichtparameter sind unterstrichen)) ^Standard-Wert ^Beschreibung ((siehe [[webservice:engine_parameterconventions|Parameter-Konventionen engine/<Prozedur-Name>]])) ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |ConditionGroupID|NULL |Wird nur beachtet, wenn "FilterByCondPartIDsInOneID = 0" und "GetUnusedConditionGroups = 0" ist ! ID einer (Artikel-)Bedingungs-Gruppe, die ausgegeben werden soll. Bei "NULL" kann mit anderen Parameter nach (Artikel-)Bedingungs-Gruppen "gesucht" werden.\\ |integer|6.0.0| | ||
+ | |ConditionGroupDescriptionLike|NULL |Wird nur beachtet, wenn "NULL" für "ConditionGroupID" angegeben wird und "FilterByCondPartIDsInOneID = 0" und "GetUnusedConditionGroups = 0" ist ! Falls angegeben, wird mit dem "LIKE"-Operator in der Beschreibung der Gruppen gesucht - s. Beschreibung !\\ |varchar(255)|6.0.0| | ||
+ | |GetUnusedConditionGroups|0 |Wird nur beachtet, wenn "FilterByCondPartIDsInOneID = 0" ist ! Ist "1" angegeben, werden alle (Artikel-)Bedingungs-Gruppen ermittelt, die noch nicht verwendet werden.\\ |bit|6.0.0| | ||
+ | |OrderBy|6 |Bestimmt die Sortierung :\\ "0"/"1" : AUFst./ABst. nach "CreatedAtDateAndTime"\\ "2"/"3" : AUFst./ABst. nach "EditedAtDateAndTime"\\ "4" : Aufst. nach "ConditionGroupDescription"\\ "5"/"6" : AUFst./ABst. nach "EditedAtDateAndTime"/"CreatedAtDateAndTime"\\ |tinyint|6.0.0| | ||
+ | |RowCount|100 |Wird nur beachtet, wenn nach MEHREREN (Artikel-)Bedingungs-Gruppen gesucht wird (wenn also "ConditionGroupID" nicht beachtet wird oder "NULL" ist) ! Wieviele Datensätze sollen maximal zurückgegeben werden ("0" für alle, "NULL" ist nicht erlaubt) ?\\ |integer|6.0.0| | ||
+ | |FilterByCondPartIDsInOneID|0 |"1" angeben, um nach (Artikel-)Bedingungs-Gruppen zu suchen, denen eine in "tempdb.dbo.OneID" übergebene "ConditionPartID" (Bedingungs-Teil) zugeordnet ist. Die anderen "Filter-/Such-"Parameter werden dann ignoriert !\\ |bit|6.0.0| | ||
+ | ==== Rückgabe ==== | ||
+ | |||
+ | === wenn ConditionGroupID is NOT NULL und GetUnusedConditionGroups = 0 und FilterByCondPartIDsInOneID = 0 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |ConditionGroupDescription|Bezeichnung der (Artikel-)Bedingungs-Gruppe "ConditionGroupID"\\ |varchar(255)|6.0.0 | | ||
+ | |UsedInAnItemCondition|Wird die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" in einer Artikel-Bedingung verwendet ("1") oder nicht ("0") ?\\ |bit|6.0.0 | | ||
+ | |UsedInCampaignItemCondGroups|Wird die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" in einer Verkaufs-Aktion (eine sog. "Campaign") um zusätzliche Kriterien erweitert ("1") oder nicht ("0") ?\\ |bit|6.0.0 | | ||
+ | |CreatedAtDateAndTime|Zeitpunkt, an dem die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" erstellt wurde\\ |datetime|6.0.0 | | ||
+ | |EditedAtDateAndTime|Zeitpunkt, an dem die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" zuletzt geändert wurde (kann "NULL" sein)\\ |datetime|6.0.0 | | ||
+ | |CombinePartsWithANDOperator|Gibt an, ob die der "ConditionGroupID" zugeordneten (Artikel-)Bedingungs-Teile logisch mit UND verknüpft werden ("1") oder mit ODER ("0")\\ |bit|6.0.0 | | ||
+ | |ConditionPartID|ID eines (Artikel-)Bedingungs-Teils, das der (Artikel-)Bedingungs-Gruppe "ConditionGroupID" zugeordnet ist\\ |integer|6.0.0 | | ||
+ | |PartSortNo|Bestimmt die Reihenfolge von "ConditionPartID" innerhalb aller der (Artikel-)Bedingungs-Gruppe "ConditionGroupID" zugeordneten (Artikel-)Bedingungs-Teile\\ |tinyint|6.0.0 | | ||
+ | |ConditionPartDescription|Bezeichnung des (Artikel-)Bedingungs-Teils "ConditionPartID"\\ |varchar(255)|6.0.0 | | ||
+ | |LevelIDs|Um den (Artikel-)Bedingungs-Teil "ConditionPartID" zu erfüllen, muß die Hierarchie ("LevelID") eines Artikel-Elementes aus der hier angegebenen Menge der Hierarchien ("LevelID"s) kommen. Sonderfall ",," bedeutet "beliebige Hierarchie".\\ |varchar(50)|6.0.0 | | ||
+ | |DomainTreeNodeIDs|Um den (Artikel-)Bedingungs-Teil "ConditionPartID" zu erfüllen, muß ein Element im Artikelbaum ein Vorgänger-Element besitzen, dessen "TreeNodeID" aus der hier angegebenen Menge von IDs kommt. Sonderfall ",," bedeutet "beliebiger Vorgänger".\\ |varchar(200)|6.0.0 | | ||
+ | |NodeCharacteristicID|ID eines Merkmals. Um "ConditionPartID" zu erfüllen, muß ein Element im Artikelbaum eine Eigenschaft zu diesem Merkmal besitzen, die der Bedingung ("Operator1" etc.) genügt. Sonderfall "-1" : "KEINE Eigenschafts-Bedingung" (ist also immer erfüllt).\\ |smallint|6.0.0 | | ||
+ | |Operator1|Operator für die Bedingung "Condition1". Mögliche Werte :\\ - "="\\ - "!=" / "<>" \\ - "~" / "!~" (LIKE / NOT LIKE)\\ - ">"\\ - "<"\\ - ">="\\ - "<="\\ - "IN" / "!I" (in / NICHT in Menge von "Value"-Werten)\\ - "E" / "!E" (IRGENDEINE / KEINE Eigenschaft)\\ |varchar(2)|6.0.0 | | ||
+ | |Condition1|Bedingung, die in Verbindung mit "Operator1" anzuwenden ist ("NULL", falls "Operator1" den Wert "E" oder "!E" hat)\\ |varchar(2000)|6.0.0 | | ||
+ | |Operator2|Operator für die Bedingung "Condition2". Mögliche Werte :\\ - "<" oder "<=", falls "Operator1" ">" oder ">=" enthält\\ - bel. Zeichen (Trennzeichen für Werte-Menge), falls "Operator1" "IN" oder "!I" enthält\\ |varchar(2)|6.0.0 | | ||
+ | |Condition2|Bedingung, die in Verbindung mit "Operator2" anzuwenden ist (nur belegt, wenn "Operator2" den Wert "<" oder "<=" enthält)\\ |varchar(1000)|6.0.0 | | ||
+ | |InheritDepth|Welche Eigenschaften zu "NodeCharacteristicID" hinsichtlich Vererbung sollen bei Prüfung der Eigenschafts-Bedingung beachtet werden :\\ "-1" : Alle\\ "0" : unvererbte\\ "1" : direkte u. einfach geerbte\\ "2" : direkte u. einfach oder zweifach geerbte\\ usw.\\ |smallint|6.0.0 | | ||
+ | |RecursiveEvaluation|Was soll zwecks Prüfung der Bedingung zu "NodeCharacteristicID" (wenn rekursiv) gewählt werden ?\\ "0" : direkte Eigenschaft (also eine Merkmal-ID)\\ "1" : rekursiv ausgewertete Eigenschaft\\ "2" : zugehör. Beschreibung der Eigenschaft (also der Merkmal-ID)\\ |tinyint|6.0.0 | | ||
+ | |||
+ | == Sortierung der Rückgabe == | ||
+ | |||
+ | (parameterunabängige Sortierung) | ||
+ | * PartSortNo (aufsteigend) | ||
+ | |||
+ | === wenn GetUnusedConditionGroups = 1 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |//isnull(EditedAtDateAndTime, CreatedAtDateAndTime)((Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.))//|Wird nicht zurückgegeben, sondern zur Sortierung benötigt. Enthält "EditedAtDateAndTime" falls nicht "NULL", sonst "CreatedAtDateAndTime".\\ |datetime|6.0.0 | | ||
+ | |ConditionGroupID|ID einer (Artikel-)Bedingungs-Gruppe\\ |integer|6.0.0 | | ||
+ | |ConditionGroupDescription|Bezeichnung der (Artikel-)Bedingungs-Gruppe "ConditionGroupID"\\ |varchar(255)|6.0.0 | | ||
+ | |CombinePartsWithANDOperator|Gibt an, ob die der "ConditionGroupID" zugeordneten (Artikel-)Bedingungs-Teile logisch mit UND verknüpft werden ("1") oder mit ODER ("0")\\ |bit|6.0.0 | | ||
+ | |CreatedAtDateAndTime|Zeitpunkt, an dem die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" erstellt wurde\\ |datetime|6.0.0 | | ||
+ | |EditedAtDateAndTime|Zeitpunkt, an dem die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" zuletzt geändert wurde (kann "NULL" sein)\\ |datetime|6.0.0 | | ||
+ | |UsedInAnItemCondition|Wird diese Bedingungs-Gruppe in einer Artikel-Bedingung verwendet ("1") oder nicht ("0") ?\\ |bit|6.0.0 | | ||
+ | |UsedInCampaignItemCondGroups|Wird diese Bedingungs-Gruppe in einer Verkaufs-Aktion (eine sog. "Campaign") um zusätzliche Kriterien erweitert ("1") oder nicht ("0") ?\\ |bit|6.0.0 | | ||
+ | |||
+ | == Sortierungen der Rückgabe == | ||
+ | |||
+ | wenn OrderBy = 0 | ||
+ | * CreatedAtDateAndTime (aufsteigend) | ||
+ | wenn OrderBy = 1 | ||
+ | * CreatedAtDateAndTime (absteigend) | ||
+ | wenn OrderBy = 2 | ||
+ | * EditedAtDateAndTime (aufsteigend) | ||
+ | wenn OrderBy = 3 | ||
+ | * EditedAtDateAndTime (absteigend) | ||
+ | wenn OrderBy = 4 | ||
+ | * ConditionGroupDescription (aufsteigend) | ||
+ | wenn OrderBy = 5 | ||
+ | * isnull(EditedAtDateAndTime, CreatedAtDateAndTime) (aufsteigend) | ||
+ | wenn OrderBy = 6 | ||
+ | * isnull(EditedAtDateAndTime, CreatedAtDateAndTime) (absteigend) | ||
+ | |||
+ | === wenn FilterByCondPartIDsInOneID = 1 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |//isnull(EditedAtDateAndTime, CreatedAtDateAndTime)((Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.))//|Wird nicht zurückgegeben, sondern zur Sortierung benötigt. Enthält "EditedAtDateAndTime" falls nicht "NULL", sonst "CreatedAtDateAndTime".\\ |datetime|6.0.0 | | ||
+ | |ConditionGroupID|ID einer (Artikel-)Bedingungs-Gruppe\\ |integer|6.0.0 | | ||
+ | |ConditionGroupDescription|Bezeichnung der (Artikel-)Bedingungs-Gruppe "ConditionGroupID"\\ |varchar(255)|6.0.0 | | ||
+ | |CombinePartsWithANDOperator|Gibt an, ob die der "ConditionGroupID" zugeordneten (Artikel-)Bedingungs-Teile logisch mit UND verknüpft werden ("1") oder mit ODER ("0")\\ |bit|6.0.0 | | ||
+ | |CreatedAtDateAndTime|Zeitpunkt, an dem die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" erstellt wurde\\ |datetime|6.0.0 | | ||
+ | |EditedAtDateAndTime|Zeitpunkt, an dem die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" zuletzt geändert wurde (kann "NULL" sein)\\ |datetime|6.0.0 | | ||
+ | |UsedInAnItemCondition|Wird diese Bedingungs-Gruppe in einer Artikel-Bedingung verwendet ("1") oder nicht ("0") ?\\ |bit|6.0.0 | | ||
+ | |UsedInCampaignItemCondGroups|Wird diese Bedingungs-Gruppe in einer Verkaufs-Aktion (eine sog. "Campaign") um zusätzliche Kriterien erweitert ("1") oder nicht ("0") ?\\ |bit|6.0.0 | | ||
+ | |||
+ | == Sortierungen der Rückgabe == | ||
+ | |||
+ | wenn OrderBy = 0 | ||
+ | * CreatedAtDateAndTime (aufsteigend) | ||
+ | wenn OrderBy = 1 | ||
+ | * CreatedAtDateAndTime (absteigend) | ||
+ | wenn OrderBy = 2 | ||
+ | * EditedAtDateAndTime (aufsteigend) | ||
+ | wenn OrderBy = 3 | ||
+ | * EditedAtDateAndTime (absteigend) | ||
+ | wenn OrderBy = 4 | ||
+ | * ConditionGroupDescription (aufsteigend) | ||
+ | wenn OrderBy = 5 | ||
+ | * isnull(EditedAtDateAndTime, CreatedAtDateAndTime) (aufsteigend) | ||
+ | wenn OrderBy = 6 | ||
+ | * isnull(EditedAtDateAndTime, CreatedAtDateAndTime) (absteigend) | ||
+ | |||
+ | === wenn ConditionGroupID is NULL und GetUnusedConditionGroups = 0 und FilterByCondPartIDsInOneID = 0 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |//isnull(EditedAtDateAndTime, CreatedAtDateAndTime)((Spalte wird nicht zurückgegeben und ist hier nur aus Dokumentationsgründen aufgeführt.))//|Wird nicht zurückgegeben, sondern zur Sortierung benötigt. Enthält "EditedAtDateAndTime" falls nicht "NULL", sonst "CreatedAtDateAndTime".\\ |datetime|6.0.0 | | ||
+ | |ConditionGroupID|ID einer (Artikel-)Bedingungs-Gruppe\\ |integer|6.0.0 | | ||
+ | |ConditionGroupDescription|Bezeichnung der (Artikel-)Bedingungs-Gruppe "ConditionGroupID"\\ |varchar(255)|6.0.0 | | ||
+ | |CombinePartsWithANDOperator|Gibt an, ob die der "ConditionGroupID" zugeordneten (Artikel-)Bedingungs-Teile logisch mit UND verknüpft werden ("1") oder mit ODER ("0")\\ |bit|6.0.0 | | ||
+ | |CreatedAtDateAndTime|Zeitpunkt, an dem die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" erstellt wurde\\ |datetime|6.0.0 | | ||
+ | |EditedAtDateAndTime|Zeitpunkt, an dem die (Artikel-)Bedingungs-Gruppe "ConditionGroupID" zuletzt geändert wurde (kann "NULL" sein)\\ |datetime|6.0.0 | | ||
+ | |UsedInAnItemCondition|Wird diese Bedingungs-Gruppe in einer Artikel-Bedingung verwendet ("1") oder nicht ("0") ?\\ |bit|6.0.0 | | ||
+ | |UsedInCampaignItemCondGroups|Wird diese Bedingungs-Gruppe in einer Verkaufs-Aktion (eine sog. "Campaign") um zusätzliche Kriterien erweitert ("1") oder nicht ("0") ?\\ |bit|6.0.0 | | ||
+ | |||
+ | == Sortierungen der Rückgabe == | ||
+ | |||
+ | wenn OrderBy = 0 | ||
+ | * CreatedAtDateAndTime (aufsteigend) | ||
+ | wenn OrderBy = 1 | ||
+ | * CreatedAtDateAndTime (absteigend) | ||
+ | wenn OrderBy = 2 | ||
+ | * EditedAtDateAndTime (aufsteigend) | ||
+ | wenn OrderBy = 3 | ||
+ | * EditedAtDateAndTime (absteigend) | ||
+ | wenn OrderBy = 4 | ||
+ | * ConditionGroupDescription (aufsteigend) | ||
+ | wenn OrderBy = 5 | ||
+ | * isnull(EditedAtDateAndTime, CreatedAtDateAndTime) (aufsteigend) | ||
+ | wenn OrderBy = 6 | ||
+ | * isnull(EditedAtDateAndTime, CreatedAtDateAndTime) (absteigend) | ||
+ | |||
+ | ==== Output-Parameter ==== | ||
+ | |||
+ | Die Prozedur hat keine Output-Parameter.==== Mögliche Return-Codes ==== | ||
+ | |||
+ | ^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber" und indirekt meint "von intern aufgerufenen Unterprozeduren")) ^ | ||
+ | |-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| | ||
+ | ==== XML-Schema ==== | ||
+ | |||
+ | Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema [[http://resources.dstore.de/xsd/webservice_SmartGate/Response/EngineProcedure_v1_0.xsd|Response/EngineProcedure_v1_0.xsd]] validiert. | ||
+ | ==== Historie ==== | ||
+ | |||
+ | |7.0.7 |2015-01-29|Interne Änderung : Datentyp-Erweiterung des "ReferenceKey" [für "_mi_StartProcedure"-Aufruf]\\ | | ||
+ | |7.0.5 |2014-05-26|Rückgabespalten "Condition1" und "Condition2" auf "varchar[2000]" bzw. "varchar[1000]" umgestellt\\ | | ||
+ | |6.5.3 |2013-03-18|Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung\\ | | ||
+ | |6.0.0 |2010-03-26|Erstmalig 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: | ||
+ | * [[http://playground.dstore.de/index.php?proc=im_GetItemConditionGroups_Ad|im_GetItemConditionGroups_Ad im Engine Playground öffnen]] | ||
+ | == cURL == | ||
+ | Unformatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/im_GetItemConditionGroups_Ad'</code>Mit xmllint ((I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org)) formatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/im_GetItemConditionGroups_Ad' | xmllint --format -</code>== dStore_php == | ||
+ | <code 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_GetItemConditionGroups_Ad', | ||
+ | array( | ||
+ | // 'ConditionGroupID' => NULL, | ||
+ | // 'ConditionGroupDescriptionLike' => NULL, | ||
+ | // 'GetUnusedConditionGroups' => 0, | ||
+ | // 'OrderBy' => 6, | ||
+ | // 'RowCount' => 100, | ||
+ | // 'FilterByCondPartIDsInOneID' => 0 | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $service->execute($request); | ||
+ | |||
+ | $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); | ||
+ | $ResultSet = $xml_result->getRowsAsArray(); | ||
+ | |||
+ | </code> | ||
+ | == engine/execute == | ||
+ | XML zur Ausführung mit der Methode [[:webservice:engine:execute|engine/execute]], z.B. per | ||
+ | curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>' | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | <ListOfBatches> | ||
+ | <Batch No="0"> | ||
+ | <Procedure Name="im_GetItemConditionGroups_Ad"> | ||
+ | <Parameters> | ||
+ | <!-- <Parameter Name="ConditionGroupID">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ConditionGroupDescriptionLike">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="GetUnusedConditionGroups">0</Parameter> --> | ||
+ | <!-- <Parameter Name="OrderBy">6</Parameter> --> | ||
+ | <!-- <Parameter Name="RowCount">100</Parameter> --> | ||
+ | <!-- <Parameter Name="FilterByCondPartIDsInOneID">0</Parameter> --> | ||
+ | </Parameters> | ||
+ | </Procedure> | ||
+ | </Batch> | ||
+ | </ListOfBatches></code> | ||