Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— |
engine:procedures:mi_getconvertfactor [11.01.2016 ] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== mi_GetConvertFactor ===== | ||
+ | |||
+ | Dient der Umrechnung zwischen zwei verschiedenen Einheiten (hauptsächlich Währungen). Man erhält vier Ausgaben, die über die "out"-Parameter abgefragt werden können. Die Umrechnung sollte nach dem Aufruf dieser Prozedur dann nach folgender Formel erfolgen :\\ | ||
+ | |||
+ | <umgerechneter Wert> = <Ursprünglicher Wert> * factor1 / divisor1 * factor2 / divisor2\\ | ||
+ | |||
+ | Hintergrund für dieses Vorgehen ist die "Dreiecks"-Umrechnung, bei der eine zu große Rechen-Ungenauigkeit entstehen könnte, wenn man nur einen Faktor und einen Divisor hätte.\\ | ||
+ | |||
+ | Beispiel für eine "Dreiecks"-Umrechnung war die Übergangszeit vor der Euro-Umstellung : Um z.B. vom Österreichischen Schilling in die Deutsche Mark umzurechnen, mußte man über den jeweiligen Umrechnungsfaktor zum Euro der beiden Währungen gehen.\\ | ||
+ | |||
+ | Wichtiger Hinweis :\\ Wir beachten nur Umrechnungen, die entweder "für immer" gültig sind (diese haben die spezielle "DateIntervallID = 0") oder die einen Gültigkeitszeitraum mit festem Beginn besitzen (d.h. "FromDate" des zugehörigen Datensatzen in "DateIntervalls" ist NICHT "NULL") !\\ | ||
+ | |||
+ | Weitere Anmerkungen :\\ 1. Die Prozedur sucht zuerst immer nach einer direkten Umrechnung von der Ursprungs-Einheit (-> "FromUnitID") in die Ziel-Einheit (-> "ToUnitID"). Ist keine aktuelle Umrechnung vorhanden, wird nach einer Umrechnung von Ziel- in Ursprungs-Einheit gesucht und dann der Kehrwert gebildet.\\ 2. Einheiten, die für eine Dreiecks-Umrechnung gekennzeichnet sind (siehe [[dstoreproc>mi_GetUnits_Ad]], Rückgabespalte "TriangleConvert"), DÜRFEN in der Umrechnungstabelle "UnitConverts" (siehe [[dstoreproc>mi_ModifyUnitConverts_Ad]]) NUR als ZIEL-Einheit ("ToUnitID") auftauchen !\\ | ||
+ | |HTTP-Method|GET | | ||
+ | |HTTP-Auth|Optional | | ||
+ | |Tags|{{tag>[mi Get Convert Factor]}}| | ||
+ | |Engine-Kategorie|miscellaneous | | ||
+ | |Engine-Typ|Daten-Ermittlung | | ||
+ | |Letzte Aktualisierung|5.1.1 (2006-04-05)| | ||
+ | |||
+ | ==== 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 ^ | ||
+ | |__FromUnitID__| |ID der Ausgangseinheit\\ |tinyint|3.5.0| | ||
+ | |__ToUnitID__| |ID der Zieleinheit\\ |tinyint|3.5.0| | ||
+ | |Date|NULL |Zeitpunkt für die korrekte Kursermittlung. Wenn "NULL" angegeben ist, wird die AKTUELLE Umrechnung ermittelt.\\ |datetime|3.5.0| | ||
+ | ==== Rückgabe ==== | ||
+ | |||
+ | Die Prozedur hat keine Rückgaben. | ||
+ | ==== Output-Parameter ==== | ||
+ | |||
+ | |factor1|Ausgabeparameter für den ersten Faktor| | ||
+ | |factor2|Ausgabeparameter für den zweiten Faktor| | ||
+ | |divisor1|Ausgabeparameter für den ersten Divisor| | ||
+ | |divisor2|Ausgabeparameter für den zweiten Divisor| | ||
+ | ==== Mögliche Return-Codes ==== | ||
+ | |||
+ | ^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber" und indirekt meint "von intern aufgerufenen Unterprozeduren")) ^ | ||
+ | |-530|Der Wert ist nicht konvertierbar|nur direkt| | ||
+ | |-503|Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabe|nur direkt| | ||
+ | |-500|Falsche Parameter|nur direkt| | ||
+ | ==== 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 ==== | ||
+ | |||
+ | |5.1.1 |2006-04-05|Neukodierung aufgrund zahlreicher Fehler, u.a.:\\ - Fehler falls "ToDate" in "UnitConverts" "NULL" war\\ - Fehlende Initialisierung der Ausgabeparameter\\ - Falsche Datentypen für "FromUnitID" und "ToUnitID"\\ | | ||
+ | |4.0.0 |2003-04-03|Änderung der Doku\\ | | ||
+ | |3.5.0 |2000-11-23|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=mi_GetConvertFactor|mi_GetConvertFactor im Engine Playground öffnen]] | ||
+ | == cURL == | ||
+ | Unformatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/mi_GetConvertFactor?FromUnitID=<value>&ToUnitID=<value>'</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/mi_GetConvertFactor?FromUnitID=<value>&ToUnitID=<value>' | 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'), | ||
+ | 'mi_GetConvertFactor', | ||
+ | array( | ||
+ | 'FromUnitID' => <value>, | ||
+ | 'ToUnitID' => <value>, | ||
+ | // 'Date' => NULL | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $service->execute($request); | ||
+ | |||
+ | $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); | ||
+ | $ResultSet = $xml_result->getRowsAsArray(); | ||
+ | |||
+ | $OutputParams = $xml_result->getOutputParametersAsArray();</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="mi_GetConvertFactor"> | ||
+ | <Parameters> | ||
+ | <Parameter Name="FromUnitID"><!-- tinyint value --></Parameter> | ||
+ | <Parameter Name="ToUnitID"><!-- tinyint value --></Parameter> | ||
+ | <!-- <Parameter Name="Date">NULL</Parameter> --> | ||
+ | </Parameters> | ||
+ | </Procedure> | ||
+ | </Batch> | ||
+ | </ListOfBatches></code> | ||