Ermittelt den (aktuellen) Einzelpreis für ein oder mehrere Elemente im Artikelbaum - die genaue Doku zur Preis-Ermittlung ist om_GetPrices_Pu zu entnehmen.
Hinweis zum Parameter „TreeNodeID“ :
Bei Angabe von „NULL“ erwarten wir „TreeNodeID“s in „tempdb.dbo.OneID“. Es sollten aber „nicht zu viele“ Elemente via „tempdb.dbo.OneID“ übergeben werden, da intern an einigen Stellen aus Performance-Gründen aus den übergebenen IDs eine „Liste“ erstellt wird, für die (derzeit) maximal 16384 Bytes zur Verfügung stehen. Sind die IDs im Schnitt beispielsweise 9-stellige Zahlen, bedeutet „nicht zu viele“ konkret : ca. 1.600 Elemente. Werden mehr Elemente übergeben (als in einer Liste speicherbar), gibt es einen Fehler („-504“) !
| 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 |
|---|---|---|---|---|
| TreeNodeID | ID des Elementes im Artikelbaum, zu dem der Einzelpreis ermittelt werden soll. Falls „NULL“ angegeben wird, erwartet die Prozedur IDs in „tempdb.dbo.OneID“. | integer | 6.5.2 | |
| PersonID | NULL | Falls der Preis für eine bestimmte Person (relevant hinsichtlich Rabatte) errechnet werden soll, ist hier die entsprechende ID zu übergeben | integer | 6.5.2 |
| CurrencyID | NULL | ID einer Währung („UnitID“ aus der Kategorie „Währung“, mögliche Werte s. mi_GetUnits), in der die Preis-Rückgabespalten zu verstehen sein sollen. Bei „NULL“ wird die Standardwährung (Eintrag in „Settings“ zum Schlüssel „DefaultCurrencyID“) gewählt. | tinyint | 6.5.2 |
| PriceNodeCharacteristicID | NULL | ID eines Merkmals. Die Preisermittlung läuft i.d.R. über die rekursiven Merkmale „Verkaufspreis…“. Möchte man aber z.B. sowohl Einzel- als auch Großhandel über denselben Artikelstamm abwickeln, kann man hierdurch ein anderes „Preis-Merkmal“ angeben. | smallint | 6.5.2 |
| Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
|---|---|---|---|
| TreeNodeID | ID eines Elementes im Artikelbaum, zu dem der Einzelpreis ermittelt wurde | integer | 6.5.2 |
| NodeID | ID des zur „TreeNodeID“ zugehörigen Artikel-Elementes | integer | 6.5.2 |
| UnitNetPrice | Netto-Preis von „NodeID“, wenn man (bzw. „PersonID“) den Artikel EINMAL bestellt | money | 6.5.2 |
| UnitGrossPrice | Brutto-Preis von „NodeID“, wenn man (bzw. „PersonID“) den Artikel EINMAL bestellt | money | 6.5.2 |
| AbsoluteUnitNetSurcharge | Absoluter Rabatt/Aufschlag, der im „UnitNetPrice“ ENTHALTEN ist | money | 6.5.2 |
| AbsoluteUnitGrossSurcharge | Absoluter Rabatt/Aufschlag, der im „UnitGrossPrice“ ENTHALTEN ist | money | 6.5.2 |
| RelativeSurcharge | Prozentualer Rabatt/Aufschlag, der in den Preisen (Spalten „…Price“) bereits enthalten (!) ist | decimal(16,6) | 6.5.2 |
| SurchargeGeneratedByCampIDs | Liste von „CampaignID“s der Verkaufsaktionen, die zur Rabattierung des Artikels geführt haben | varchar(255) | 6.5.2 |
Die Prozedur hat keine Output-Parameter.
| Code | Beschreibung | Quelle 5) |
|---|---|---|
| -1204 | Fehlender oder falscher Eintrag in CampaignSettings | nur indirekt |
| -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 | nur 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 |
| -503 | Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabe | nur indirekt |
| -500 | Falsche Parameter | direkt und indirekt |
| -333 | Ein benötigter Steuersatz ist nicht bekannt oder konnte nicht ermittelt werden | nur indirekt |
| -283 | Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu ermitteln | nur indirekt |
| -221 | Es konnte kein rekursives Merkmal mit der Standardwährung als Einheit ermittelt werden | nur indirekt |
| -110 | Das (die) Element(e) ist (sind) nicht vorhanden | 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.2 | 2013-02-26 | 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_GetPrices_Ad?TreeNodeID=<value>'
Mit xmllint 6) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/om_GetPrices_Ad?TreeNodeID=<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'), 'om_GetPrices_Ad', array( 'TreeNodeID' => <value>, // 'PersonID' => NULL, // 'CurrencyID' => NULL, // 'PriceNodeCharacteristicID' => 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_GetPrices_Ad"> <Parameters> <Parameter Name="TreeNodeID"><!-- integer value --></Parameter> <!-- <Parameter Name="PersonID">NULL</Parameter> --> <!-- <Parameter Name="CurrencyID">NULL</Parameter> --> <!-- <Parameter Name="PriceNodeCharacteristicID">NULL</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>