Ermittelt zu Artikel-Elementen bzw. Elementen des Artikelbaums den/die Einkaufs-Preis(e).
Im folgenden eine kurze Erläuterung des Algorithmus für die Einkaufspreis-Ermittlung:
A) Sofern KEIN konkreter Lieferant (→ „SupplierID“) angegeben ist, werden zu den gewünschten Artikel-Elementen die
Eigenschaften zu allen Merkmalen ermittelt, die in der Kategorie eingeordnet sind, die in „Settings“ zum Schlüssel „NodeCharacCategoryID_PurchasePriceCharacs“ hinterlegt ist. Dabei werden die somit in Frage kommenden Merkmale aber wie folgt gefiltert :
Grund : Wir geben ausschließlich Netto-Preise zurück, da die Berechnung von Steuern kompliziert sein kann bzw. ohne Kenntnis des Zielorts der Lieferung u.U. überhaupt nicht möglich ist !
Hinweis : Dies bestimmt sich pro Personen-Typ über den „PersonTypeSettings“-Eintrag zum Schlüssel „PurchasePriceCharacteristicID“. Zu einem solchen konfigurierten Merkmal muß ein „Lieferant“ eine Eigenschaft besitzen, die auf eine der in Frage kommenden Merkmal-ID„s „referenziert“ (s. Parameter „GetReferencesForTableID“ von pm_GetPersonPredefinedVals_Ad) !
B) Wenn ein Lieferant angegeben ist (→ „SupplierID“), ermitteln wir dessen „Einkaufs-Preis-Merkmal“ (ergibt sich aus „PersonTypeSettings“ zum Personen-Typ des Lieferanten zum Schlüssel „PurchasePriceCharacteristicID“ - die Eigenschaft des Lieferanten zu diesem Merkmal muß dann auf eine Artikel-Merkmal-ID referenzieren, s. Parameter „GetReferencesForTableID“ von pm_GetPersonPredefinedVals_Ad), zu dem wir dann wiederum für die gewünschten Artikel-Elemente die jeweiligen Eigenschaften bestimmen.
Anmerkung zum Parameter „TreeNodeOrNodeID“ :
Wurde „NULL“ für „TreeNodeOrNodeID“ übergeben, erwarten wir in „tempdbo.dbo.TwoIDs“ die Elemente, für die der/die jeweiligen Einkaufs-Preis(e) bestimmt werden sollen - zusammen mit der jeweils gewünschten Menge :
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 |
---|---|---|---|---|
TreeNodeOrNodeID | Je nach „IsTreeNodeID“ ein Artikel-Element oder ein Element im Artikelbaum, zu dem der/die Einkaufs-Preis(e) zu ermitteln ist/sind. Falls „NULL“, erwarten wir in „tempdb.dbo.TwoID“s die Elemente (zusammen mit den jeweiligen Mengen) - s. Beschreibung ! | integer | 5.1.9 | |
IsTreeNodeID | 1 | Bei „TreeNodeOrNodeID“ bzw. den IDs in der Spalte „ID1“ von „tempdb.dbo.TwoIDs“ handelt es sich um… „0“ : (ein) Artikel-Element(e), also „NodeID(s)“ aus der Tabelle „dStore“ „1“ : (ein) Element(e) des Artikelbaums, also „TreeNodeID(s)“ aus „TreeView“ | bit | 5.1.9 |
Quantity | 1 | Hier wird die einzukaufende Menge übergeben. Anmerkung : Die Menge kann natürlich prinzipiell den Preis beeinflussen, derzeit ist jedoch keinerlei Logik diesbezüglich implementiert ! | integer | 5.1.9 |
SupplierID | NULL | ID eines Lieferanten, bei dem bestellt werden soll (also eine „PersonID“). Falls angegeben, wird/werden nur der/die Einkaufs-Preis(e) dieses Lieferanten ermittelt. | integer | 5.1.9 |
DateForPropertyDetermination | NULL | Im Standard-Fall werden die AKTUELLEN Einkaufs-Preise ermittelt. Hierdurch kann aber auch ein anderer Zeitpunkt angegeben werden, zu dem die Preise bestimmt werden sollen. | datetime | 5.1.9 |
NodeCharacteristicID | NULL | ID eines Artikel-Merkmals. Wenn hier eine ID übergeben wird, ermittelt die Prozedur für den jeweiligen Artikel die Eigenschaft zu diesem Merkmal (→ Rückgabespalte „ItemProperty“). | smallint | 5.1.9 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
NodeID | ID eines Artikel-Elementes | integer | 5.1.9 |
TreeNodeID | ID eines zur „NodeID“ gehörenden Elementes im Artikel-Baum | integer | 5.1.9 |
HTreeNodeID | ID des aktuell zu „TreeNodeID“ zugehörigen Elementes aus „HistoryTreeView“ (in dieser ist die Historie des gesamten Artikelbaums abgebildet) | integer | 5.1.9 |
NodeDescription | Bezeichnung des Artikel-Elementes „NodeID“ | varchar(100) | 5.1.9 |
ItemNo | Eigenschaft des Artikel-Elementes „NodeID“ zum Merkmal mit der ID „6“ (also die Artikelnummer) | varchar(1000) | 5.1.9 |
ItemProperty | Eigenschaft des Artikel-Elementes „NodeID“ zum Merkmal „NodeCharacteristicID“ (wenn „NULL“ für „NodeCharacteristicID“ angegeben wurde, steht hier auch „NULL“) | varchar(1000) | 5.1.9 |
Quantity | Wieviel vom Artikel „NodeID“ bestellt werden soll | integer | 5.1.9 |
SupplierID | ID eines Lieferanten (also eine „PersonID“), bei dem der Artikel bestellt werden kann | integer | 5.1.9 |
SupplierCharacteristicValue1 | Eigenschaft von „SupplierID“ zum Merkmal mit der 1. ID, die in „PersonTypSettings“ zu „PersonOutputCharacteristics“ (zum entsprechenden Typ) konfiguriert und nicht für den Aufrufer komplett lesend gesperrt (s. pm_GetPChAccRestrForUsers_Ad) ist | varchar(100) | 5.1.9 |
SupplCharacVal1RestrByPattern | Was enthält „SupplCharacVal1RestrByPattern“ (womögl. wg. Zugriffsbeschr. nur einen Teil) ? - NULL : den vollst. Wert - “#left(<n>)#„ : die ERSTEN n Zeich. - “#right(<n>)#„ : die LETZTEN n Zeich. („n = 0“ ⇒ „SupplCharacVal1RestrByPattern“ dann „NULL“) | varchar(100) | 6.5.4 |
SupplierCharacteristicValue2 | Eigenschaft von „SupplierID“ zum Merkmal mit der 2. ID, die in „PersonTypSettings“ zu „PersonOutputCharacteristics“ (zum entsprechenden Typ) konfiguriert und nicht für den Aufrufer komplett lesend gesperrt (s. pm_GetPChAccRestrForUsers_Ad) ist | varchar(100) | 5.1.9 |
SupplCharacVal2RestrByPattern | Wie „SupplCharacVal1RestrByPattern“ - nur eben auf „SupplierCharacteristicValue2“ bezogen | varchar(100) | 6.5.4 |
UnitNetPrice | Netto-Preis (in der durch „CurrencyID“ angegebenen Währung) für „NodeID“, wenn man den Artikel EINMAL beim Lieferanten „SupplierID“ bestellt | money | 5.1.9 |
TotalNetPrice | Gesamt-Netto-Preis (in der durch „CurrencyID“ angegebenen Währung) für „NodeID“, wenn man den Artikel in der Menge „Quantity“ beim Lieferanten „SupplierID“ bestellt | money | 5.1.9 |
CurrencyID | ID der Währung, in der „UnitNetPrice“ und „TotalNetPrice“ angegeben sind | tinyint | 5.1.9 |
CurrencySymbol | Symbol (im Regelfall der ISO-Code) der Einheit „CurrencyID“ | varchar(10) | 5.1.9 |
(parameterunabängige Sortierung)
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 5) |
---|---|---|
-661 | Die Person besitzt keine oder eine ungültige Eigenschaft zu einem bestimmten Merkmal | nur indirekt |
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | 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 |
-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 | direkt und indirekt |
-500 | Falsche Parameter | direkt und indirekt |
-283 | Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu ermitteln | nur indirekt |
-120 | Der Benutzer hat keine Berechtigung für das (die) Element(e) | 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 | Datentyp der Rückgabespalten „ItemNo“ und „ItemProperty“ hat sich erweitert ⇒ Auch Anpassung der Doku |
6.5.4 | 2013-04-29 | 1. Beachtung der neuen Zugriffs-Beschränkungen für Merkmale [⇒ Doku-Anpassung Rückgabespalten „SupplierCharacteristicValue…“] 2. Zwei neue „SupplCharacVal…RestrByPattern“-Rückgabespalten [wg. des neuen features „Zugriffsbeschränkung“] |
5.1.9 | 2007-01-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_GetPurchasePrices_Ad?TreeNodeOrNodeID=<value>'
Mit xmllint 6) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/om_GetPurchasePrices_Ad?TreeNodeOrNodeID=<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_GetPurchasePrices_Ad', array( 'TreeNodeOrNodeID' => <value>, // 'IsTreeNodeID' => 1, // 'Quantity' => 1, // 'SupplierID' => NULL, // 'DateForPropertyDetermination' => NULL, // 'NodeCharacteristicID' => 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_GetPurchasePrices_Ad"> <Parameters> <Parameter Name="TreeNodeOrNodeID"><!-- integer value --></Parameter> <!-- <Parameter Name="IsTreeNodeID">1</Parameter> --> <!-- <Parameter Name="Quantity">1</Parameter> --> <!-- <Parameter Name="SupplierID">NULL</Parameter> --> <!-- <Parameter Name="DateForPropertyDetermination">NULL</Parameter> --> <!-- <Parameter Name="NodeCharacteristicID">NULL</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>