Gibt hinterlegte Preisrabatte bzw. -aufschläge für Personen aus.
Anmerkungen zu den Parametern „OutputCharacteristicID…“ :
1. Hier müssen Pflicht-Merkmale übergeben werden. Dies überprüft die Prozedur aber nicht ! Sollte daher eine Person KEINE Eigenschaft zu einem dieser Merkmale besitzen, fehlen alle Datensätze dieser Person in der Ergebnismenge, obwohl vielleicht „Surcharges“ hinterlegt sind !
2. Merkmale, die nicht für den Benutzer, der diese Prozedur aufruft, „sichtbar“ sind (aufgrund von Zugriffsbeschränkungen, s. pm_GetPChAccRestrForUsers_Ad), werden grundsätzlich ignoriert ! D.h. es gibt zwar keinen Fehler, aber die entsprechende(n) Eigenschaft(en) werden natürlich nicht zurückgegeben !
Grundsätzliches zu „Surcharges“ :
1. Der „dStore“ versteht „Surcharges“ („Aufschläge“) als Prinzip, um zusätzlich entstehende Kosten oder aber Formen von Rabatten abzubilden - diese können sowohl relativ (also prozentual) als auch absolut angegeben werden (siehe om_GetSurchargeTypes_Ad). Rabatte zeichnen sich einfach dadurch aus, daß die Kosten mit negativem Vorzeichen behaftet sind.
2. Mögliche „Surcharges“ bei der Preisermittlung für Auftrags-Positionen (→ om_GetPrices_Pu) werden aus den Tabellen „PersonSurcharges“ (für Personen) und „GroupSourcharges“ (für Gruppen) ermittelt. „Surcharges“ sind in diesem Kontext immer für bestimmte Elemente des Artikelbaums definiert, wobei diese sich immer auf die NACHFOLGER übertragen und nicht - wie bei den Artikeleigenschaften - auf die „ERBEN“ (d.h. hier wird die „Predecessor“-Spalte aus „TreeView“ herangezogen und nicht die „InheritsFrom“-Spalte) !
Es gelten hierbei folgende Prioritäten:
3. Es gibt seit Version 6.0.2 auch das Konzept von „Surcharges“ für einen gesamten Warenkorb bzw. Auftrag (→ om_GetTrolleySurcharges_Pu, om_GetOrderSurcharges_Ad). Dabei handelt es sich um Dinge wie Versandkosten, Skonti, Guthabenverrechnung oder ein (Gesamt-)Auftrags-Rabatt. Letzterer kann zwar auch in den meisten Fällen als Rabatt für alle Auftrags-Positionen abgebildet werden (s. 2.), aber bei absoluten Rabatten ist dies steuerlich nicht korrekt, falls unterschiedliche Steuersätze im Auftrag vorkommen !
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | order management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
PersonTypeID | 1 | ID eines Personen-Typs. Falls angegeben, werden nur die „Surcharges“ für Personen diesen Typs ausgegeben. Es muß entweder dieser oder der Parameter „PersonID“ angegeben sein ! | tinyint | 3.5.3 |
PersonID | NULL | ID einer Person. Falls angegeben, gibt die Prozedur nur die für diese Person hinterlegten „Surcharges“ zurück. Es muß entweder dieser oder der Parameter „PersonTypeID“ angegeben sein ! | integer | 3.5.3 |
TreeNodeID | NULL | ID eines Elementes im Artikelbaum, nach dem optional gefiltert werden kann (d.h. es werden dann nur „Surcharges“ ausgegeben, die direkt für das angegebene Element hinterlegt sind) | integer | 3.5.3 |
OutputCharacteristicID1 | NULL | ID eines Merkmals. Falls angegeben, enthält die Rückgabemenge in der Spalte „Value1“ die Eigenschaft der jeweiligen Person zu diesem Merkmal. | smallint | 3.5.3 |
OutputCharacteristicID2 | NULL | ID eines Merkmals. Falls angegeben, enthält die Rückgabemenge in der Spalte „Value2“ die Eigenschaft der jeweiligen Person zu diesem Merkmal. | smallint | 3.5.3 |
OutputCharacteristicID3 | NULL | ID eines Merkmals. Falls angegeben, enthält die Rückgabemenge in der Spalte „Value3“ die Eigenschaft der jeweiligen Person zu diesem Merkmal. | smallint | 3.5.3 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
PersonID | ID einer Person (des Typs „PersonTypeID“ oder gleich „PersonID“), der „Surcharges“ zugewiesen sind | integer | 3.5.3 |
Value1 | Eigenschaft der Person „PersonID“ zum Merkmal „OutputCharacteristicID1“ | varchar(100) | 3.5.3 |
Value1RestrictedByPattern | Was enthält „Value1“ (womöglich wegen Zugriffsbeschränkungen nur einen Teil) ? - NULL : den vollständigen Wert - „#left(<n>)#“ : nur die ERSTEN n Zeichen - „#right(<n>)#“ : nur die LETZTEN n Zeichen Anmerkung : „n = 0“ möglich, „Value1“ ist dann NULL | varchar(100) | 6.5.4 |
Value2 | Eigenschaft der Person „PersonID“ zum Merkmal „OutputCharacteristicID2“ | varchar(100) | 3.5.3 |
Value2RestrictedByPattern | Wie „Value1RestrictedByPattern“ - nur eben auf „Value2“ bezogen | varchar(5) | 6.5.4 |
Value3 | Eigenschaft der Person „PersonID“ zum Merkmal „OutputCharacteristicID3“ | varchar(100) | 3.5.3 |
Value3RestrictedByPattern | Was enthält „Value3“ (womöglich wegen Zugriffsbeschränkungen nur einen Teil) ? - NULL : den vollständigen Wert - „#left(<n>)#“ : nur die ERSTEN n Zeichen - „#right(<n>)#“ : nur die LETZTEN n Zeichen Anmerkung : „n = 0“ möglich, „Value3“ ist dann NULL | varchar(100) | 6.5.4 |
TreeNodeID | ID eines Elementes im Artikelbaum, auf das sich der Rabatt/-Aufschlag „SurchargeTypeID“ für die Person „PersonID“ bezieht. Dieser gilt dann auch für alle NACHFOLGER (bis auf die, denen direkt eine andere „SurchargeTypeID“ zugwiesen ist). | integer | 3.5.3 |
NodeID | ID des zur „TreeNodeID“ zugehörigen Artikel-Elementes | integer | 3.5.3 |
NodeDescription | Bezeichnung der „NodeID“ | varchar(100) | 3.5.3 |
LevelID | ID der Hierarchie der „NodeID“ | tinyint | 3.5.3 |
Active | Ist „TreeNodeID“ z.Zt. aktiviert ? („0“ : Nein, „1“ : Ja) | bit | 3.5.3 |
SurchargeTypeID | ID einer Preis-Aufschlags/Rabatt-Art (z.B. „Sonder-Rabatt“, „Händler-Rabatt“ o.ä.), die der Person „PersonID“ für das Element „TreeNodeID“ (und deren Nachfolger) zugewiesen ist | tinyint | 3.5.3 |
SurchargeTypeDescription | Bezeichnung der „SurchargeTypeID“ | varchar(100) | 3.5.3 |
Relative | Ist der Rabatt/Aufschlag „SurchargeValue“ ein absoluter Wert („0“) oder eine relative (d.h. Prozent-) Angabe („1“) ? | bit | 3.5.3 |
Brutto | Der Parameter hat nur Bedeutung, wenn „Relative = 0“ ist. Er gibt an, ob der Rabatt/Aufschlag „SurchargeValue“ als Brutto- oder Nettobetrag angegeben ist. | bit | 3.5.3 |
UnitID | ID einer Währungs-Einheit (wenn „Relative = 0“) oder der Prozent-Einheit (wenn „Relative = 1“ ist) - also die Einheit, in der „SurchargeValue“ angegeben ist | tinyint | 3.5.3 |
UnitSymbol | Symbol (im Regelfall der ISO-Code) der Einheit „UnitID“ | varchar(10) | 3.5.3 |
SurchargeValue | Der zur Person „PersonID“ für das Element „TreeNodeID“ hinterlegte Rabatt/Aufschlag. Ein negativer Wert bedeutet, daß es sich um einen Rabatt handelt (z.B. wenn die Rabatt-/Aufschlagsart „Sonder-Rabatt“ o.ä. ist). | decimal(16,6) | 3.5.3 |
(parameterunabängige Sortierung)
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 5) |
---|---|---|
-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 |
-500 | Falsche Parameter | direkt und 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.4 | 2013-04-29 | 1. Anpassungen an den aktuellen Standard 2. Implementierung des neuen Merkmal-Zugriffsbeschränkungen-Features 3. Neue Rückgabespalten „Value…RestrictedByPattern“ 4. Fehlende Index-Angabe an einigen Stellen |
6.0.2 | 2011-06-08 | Tabelle „SurchargeTypes“ hat sich geändert [andere bzw. neue Spalten] ⇒ Anpassungen im Quellcode |
4.0.14 | 2004-06-03 | 1. Aufruf der Prozeduren „_mi_StartProcedure“ und „_mi_FinishProcedure“ 2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur |
4.0.3 | 2003-07-10 | 1. Falsche Datentypen für die „Output…“-Parameter 2. Datensätze fallen nicht mehr heraus, weil evtl. ein „Output…“-Parameter kein Pflicht-Merkmal ist 3. Ab jetzt wird nach „PersonID“ sortiert 4. Interne Vereinfachung bzgl. „if-else“-Fällen |
4.0.0 | 2003-04-03 | 1. Entgegen der Doku wurde nicht sortiert ! 2. In einem Fall wurde nicht nach der „TreeNodeID“ gefiltert |
3.5.3 | 2001-02-11 | 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/om_GetPersonSurcharges_Ad'
Mit xmllint 6) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/om_GetPersonSurcharges_Ad' | 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'), 'om_GetPersonSurcharges_Ad', array( // 'PersonTypeID' => 1, // 'PersonID' => NULL, // 'TreeNodeID' => NULL, // 'OutputCharacteristicID1' => NULL, // 'OutputCharacteristicID2' => NULL, // 'OutputCharacteristicID3' => NULL ) ); $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="om_GetPersonSurcharges_Ad"> <Parameters> <!-- <Parameter Name="PersonTypeID">1</Parameter> --> <!-- <Parameter Name="PersonID">NULL</Parameter> --> <!-- <Parameter Name="TreeNodeID">NULL</Parameter> --> <!-- <Parameter Name="OutputCharacteristicID1">NULL</Parameter> --> <!-- <Parameter Name="OutputCharacteristicID2">NULL</Parameter> --> <!-- <Parameter Name="OutputCharacteristicID3">NULL</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>