Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:om_getpurchaseprices_ad

om_GetPurchasePrices_Ad

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 :

  • Es werden nur „Netto-Merkmale“ (Preis-Merkmale für die konfiguriert ist, daß die Werte Netto-Angaben sind) beachtet

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 !

  • Weiter werden die Merkmale danach gefiltert, ob es auch Personen (sprich „Lieferanten“) gibt, zu denen das jeweilige Merkmal als „Einkaufs-Preis-Merkmal“ konfiguriert wurde.

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 :

  • ID1 → „NodeID“ (wenn „IsTreeNodeID = 0“) oder „TreeNodeID“ (wenn „IsTreeNodeID = 1“)
  • ID2 → „Quantity“
HTTP-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieorder management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

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 !
integer5.1.9
IsTreeNodeID1 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“
bit5.1.9
Quantity1 Hier wird die einzukaufende Menge übergeben. Anmerkung : Die Menge kann natürlich prinzipiell den Preis beeinflussen, derzeit ist jedoch keinerlei Logik diesbezüglich implementiert !
integer5.1.9
SupplierIDNULL ID eines Lieferanten, bei dem bestellt werden soll (also eine „PersonID“). Falls angegeben, wird/werden nur der/die Einkaufs-Preis(e) dieses Lieferanten ermittelt.
integer5.1.9
DateForPropertyDeterminationNULL 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.
datetime5.1.9
NodeCharacteristicIDNULL 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“).
smallint5.1.9

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
NodeIDID eines Artikel-Elementes
integer5.1.9
TreeNodeIDID eines zur „NodeID“ gehörenden Elementes im Artikel-Baum
integer5.1.9
HTreeNodeIDID des aktuell zu „TreeNodeID“ zugehörigen Elementes aus „HistoryTreeView“ (in dieser ist die Historie des gesamten Artikelbaums abgebildet)
integer5.1.9
NodeDescriptionBezeichnung des Artikel-Elementes „NodeID“
varchar(100)5.1.9
ItemNoEigenschaft des Artikel-Elementes „NodeID“ zum Merkmal mit der ID „6“ (also die Artikelnummer)
varchar(1000)5.1.9
ItemPropertyEigenschaft des Artikel-Elementes „NodeID“ zum Merkmal „NodeCharacteristicID“ (wenn „NULL“ für „NodeCharacteristicID“ angegeben wurde, steht hier auch „NULL“)
varchar(1000)5.1.9
QuantityWieviel vom Artikel „NodeID“ bestellt werden soll
integer5.1.9
SupplierIDID eines Lieferanten (also eine „PersonID“), bei dem der Artikel bestellt werden kann
integer5.1.9
SupplierCharacteristicValue1Eigenschaft 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
SupplCharacVal1RestrByPatternWas 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
SupplierCharacteristicValue2Eigenschaft 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
SupplCharacVal2RestrByPatternWie „SupplCharacVal1RestrByPattern“ - nur eben auf „SupplierCharacteristicValue2“ bezogen
varchar(100)6.5.4
UnitNetPriceNetto-Preis (in der durch „CurrencyID“ angegebenen Währung) für „NodeID“, wenn man den Artikel EINMAL beim Lieferanten „SupplierID“ bestellt
money5.1.9
TotalNetPriceGesamt-Netto-Preis (in der durch „CurrencyID“ angegebenen Währung) für „NodeID“, wenn man den Artikel in der Menge „Quantity“ beim Lieferanten „SupplierID“ bestellt
money5.1.9
CurrencyIDID der Währung, in der „UnitNetPrice“ und „TotalNetPrice“ angegeben sind
tinyint5.1.9
CurrencySymbolSymbol (im Regelfall der ISO-Code) der Einheit „CurrencyID“
varchar(10)5.1.9
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • NodeDescription (aufsteigend)
  • NodeID (aufsteigend)
  • SupplierID (aufsteigend)

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 5)
-661Die Person besitzt keine oder eine ungültige Eigenschaft zu einem bestimmten Merkmalnur indirekt
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochendirekt und indirekt
-500Falsche Parameterdirekt und indirekt
-283Der Benutzer hat keine Berechtigung, Eigenschaften zu diesem(n) Merkmal(en) zu ermittelnnur indirekt
-120Der Benutzer hat keine Berechtigung für das (die) Element(e)nur indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
7.0.1 2013-08-07Datentyp der Rückgabespalten „ItemNo“ und „ItemProperty“ hat sich erweitert ⇒ Auch Anpassung der Doku
6.5.4 2013-04-291. 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-26Erstmalig 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:

cURL

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 -
dStore_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'),
	'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();
engine/execute

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>
1)
Pflichtparameter sind unterstrichen
5)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
6)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/om_getpurchaseprices_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)